| author | oheimb | 
| Fri, 11 Dec 1998 17:16:23 +0100 | |
| changeset 6026 | 649b98cf9bc3 | 
| 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: 
496diff
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: 
496diff
changeset | 19 | "[| b:bexp; c1:com; sigma:loc->nat;\ | 
| 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 nipkow parents: 
496diff
changeset | 20 | \ <b,sigma> -b-> 1; <c0,sigma> -c-> sigma1 |] ==> \ | 
| 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 nipkow parents: 
496diff
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: 
496diff
changeset | 22 | "[| b:bexp; c0:com; sigma:loc->nat;\ | 
| 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 nipkow parents: 
496diff
changeset | 23 | \ <b,sigma> -b-> 0; <c1,sigma> -c-> sigma1 |] ==> \ | 
| 
093665669f52
Simplified some proofs. Added some type assumptions to the introduction rules.
 nipkow parents: 
496diff
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: 
496diff
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: 
496diff
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) ]); |