author | clasohm |
Thu, 14 Mar 1996 12:19:49 +0100 | |
changeset 1577 | a84cc626ea69 |
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) ]); |