[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Repost] Instantiating multiple theories simultaneously



Michael,

This is a bug, the TCC should be as you suggest.
I'm looking into it now.

Regards,
Sam

> From:    Michael Hohmuth <hohmuth@inf.tu-dresden.de>
> Subject: [Repost] Instantiating multiple theories simultaneously
> Date:    Thu, 08 May 2003 12:15:32 +0200
> To:      pvs-help@csl.sri.com
> 
> [ I am reposting this message because I did not receive a single reply
>   to my first posting.  Maybe it got lost somewhere?  --m ]
> 
> Dear PVS experts,
> 
> I have written a number of specifications, formulated in a set of PVS
> theories.  These specifications also contain a number of axioms that
> express relationships various theories' elements.  Now I want to write
> another set of theories that refine my specifications.  For this I'd
> like to use PVS' new theory instantiations.  
> 
> However, it is unclear to me how my instantiations should be
> expressed and how I best avoid all the theory-instantiation bugs that
> Hendrik Tews has recently uncovered:  See PR#'s 757--760 in
> http://pvs.csl.sri.com/cgi-bin/pvs/pvs-bug-list/pvs-bug-list?bugs=open&bugs=analyzed&originator=tews&dates=all&order=normal
> 
> Here is a simplified example of what I want to do:
> 
>   A : THEORY
>   BEGIN
>     a : int
>   END A
>   
>   B : THEORY
>   BEGIN
>     IMPORTING A
>     b : int
>   
>     ab : AXIOM a = b
>   END B
>   
>   Aimplementation : THEORY
>   BEGIN
>     IMPORTING A{{a:=5}}
>   END Aimplementation
>   
>   Bimplementation : THEORY
>   BEGIN
>     IMPORTING Aimplementation
>     IMPORTING B{{b:=5}}
>   END Bimplementation
> 
> With these specifications, PVS generates the following TCC for
> Bimplementation:
> 
>   % Mapped-axiom TCC generated (at line 23, column 14) for  B{{ b := 5 }}
>     % unfinished
>   IMP_B_ab_TCC1: OBLIGATION a = 5;
> 
> where (according to show-expanded-sequent) "a" refers to "A.a", not
> "Aimplementation.a", of course, rendering the TCC unprovable.
> 
> So my question is: How can I instantiate theories A and B
> simultaneously such that I get a TCC obligation like
> "Aimplementation.a = 5" (or "5 = 5")?
> 
> Thanks much in advance,
> Michael
> -- 
> hohmuth@sax.de, hohmuth@inf.tu-dresden.de
> http://home.pages.de/~hohmuth/