| author | mueller | 
| Thu, 17 Jul 1997 12:44:16 +0200 | |
| changeset 3522 | a34c20f4bf44 | 
| parent 510 | 093665669f52 | 
| permissions | -rw-r--r-- | 
| 482 | 1  | 
(* Title: ZF/IMP/Evalc.ML  | 
2  | 
ID: $Id$  | 
|
3  | 
Author: Heiko Loetzbeyer & Robert Sandner, TUM  | 
|
4  | 
Copyright 1994 TUM  | 
|
5  | 
*)  | 
|
6  | 
||
7  | 
structure Evalc = Inductive_Fun  | 
|
8  | 
(  | 
|
9  | 
val thy = Evalc0.thy;  | 
|
10  | 
val thy_name = "Evalc"  | 
|
11  | 
  val rec_doms = [("evalc","com * (loc -> nat) * (loc -> nat)")];
 | 
|
12  | 
val sintrs =  | 
|
13  | 
[  | 
|
14  | 
"[| sigma: loc -> nat |] ==> <skip,sigma> -c-> sigma",  | 
|
| 
510
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
15  | 
"[| m: nat; x: loc; a:aexp; <a,sigma> -a-> m |] ==> \  | 
| 482 | 16  | 
\ <X(x) := a,sigma> -c-> sigma[m/x]" ,  | 
17  | 
"[| <c0,sigma> -c-> sigma2; <c1,sigma2> -c-> sigma1 |] ==> \  | 
|
18  | 
\ <c0 ; c1, sigma> -c-> sigma1",  | 
|
| 
510
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
19  | 
"[| b:bexp; c1:com; sigma:loc->nat;\  | 
| 
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
20  | 
\ <b,sigma> -b-> 1; <c0,sigma> -c-> sigma1 |] ==> \  | 
| 
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
21  | 
\ <ifc b then c0 else c1, sigma> -c-> sigma1 ",  | 
| 
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
22  | 
"[| b:bexp; c0:com; sigma:loc->nat;\  | 
| 
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
23  | 
\ <b,sigma> -b-> 0; <c1,sigma> -c-> sigma1 |] ==> \  | 
| 
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
24  | 
\ <ifc b then c0 else c1, sigma> -c-> sigma1 ",  | 
| 
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
25  | 
"[| b:bexp; c:com; <b, sigma> -b-> 0 |] ==> \  | 
| 482 | 26  | 
\ <while b do c,sigma> -c-> sigma ",  | 
| 
510
 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 
nipkow 
parents: 
496 
diff
changeset
 | 
27  | 
"[| b:bexp; c:com; <b,sigma> -b-> 1; <c,sigma> -c-> sigma2; \  | 
| 482 | 28  | 
\ <while b do c, sigma2> -c-> sigma1 |] ==> \  | 
29  | 
\ <while b do c, sigma> -c-> sigma1 "];  | 
|
30  | 
||
31  | 
val monos = [];  | 
|
32  | 
val con_defs = [assign_def];  | 
|
| 496 | 33  | 
val type_intrs = Bexp.intrs@Com.intrs@[if_type,lam_type,apply_type];  | 
34  | 
val type_elims = [make_elim(Evala.dom_subset RS subsetD),  | 
|
35  | 
make_elim(Evalb.dom_subset RS subsetD) ]);  |