10 val thy_name = "Evalc" |
10 val thy_name = "Evalc" |
11 val rec_doms = [("evalc","com * (loc -> nat) * (loc -> nat)")]; |
11 val rec_doms = [("evalc","com * (loc -> nat) * (loc -> nat)")]; |
12 val sintrs = |
12 val sintrs = |
13 [ |
13 [ |
14 "[| sigma: loc -> nat |] ==> <skip,sigma> -c-> sigma", |
14 "[| sigma: loc -> nat |] ==> <skip,sigma> -c-> sigma", |
15 "[| m: nat; x: loc; <a,sigma> -a-> m |] ==> \ |
15 "[| m: nat; x: loc; a:aexp; <a,sigma> -a-> m |] ==> \ |
16 \ <X(x) := a,sigma> -c-> sigma[m/x]" , |
16 \ <X(x) := a,sigma> -c-> sigma[m/x]" , |
17 "[| <c0,sigma> -c-> sigma2; <c1,sigma2> -c-> sigma1 |] ==> \ |
17 "[| <c0,sigma> -c-> sigma2; <c1,sigma2> -c-> sigma1 |] ==> \ |
18 \ <c0 ; c1, sigma> -c-> sigma1", |
18 \ <c0 ; c1, sigma> -c-> sigma1", |
19 "[| c1: com; <b,sigma> -b-> 1; <c0,sigma> -c-> sigma1 |] ==> \ |
19 "[| b:bexp; c1:com; sigma:loc->nat;\ |
20 \ <ifc b then c0 else c1, sigma> -c-> sigma1 ", |
20 \ <b,sigma> -b-> 1; <c0,sigma> -c-> sigma1 |] ==> \ |
21 "[| c0 : com; <b,sigma> -b-> 0; <c1,sigma> -c-> sigma1 |] ==> \ |
21 \ <ifc b then c0 else c1, sigma> -c-> sigma1 ", |
22 \ <ifc b then c0 else c1, sigma> -c-> sigma1 ", |
22 "[| b:bexp; c0:com; sigma:loc->nat;\ |
23 "[| c: com; <b, sigma> -b-> 0 |] ==> \ |
23 \ <b,sigma> -b-> 0; <c1,sigma> -c-> sigma1 |] ==> \ |
|
24 \ <ifc b then c0 else c1, sigma> -c-> sigma1 ", |
|
25 "[| b:bexp; c:com; <b, sigma> -b-> 0 |] ==> \ |
24 \ <while b do c,sigma> -c-> sigma ", |
26 \ <while b do c,sigma> -c-> sigma ", |
25 "[| c : com; <b,sigma> -b-> 1; <c,sigma> -c-> sigma2; \ |
27 "[| b:bexp; c:com; <b,sigma> -b-> 1; <c,sigma> -c-> sigma2; \ |
26 \ <while b do c, sigma2> -c-> sigma1 |] ==> \ |
28 \ <while b do c, sigma2> -c-> sigma1 |] ==> \ |
27 \ <while b do c, sigma> -c-> sigma1 "]; |
29 \ <while b do c, sigma> -c-> sigma1 "]; |
28 |
30 |
29 val monos = []; |
31 val monos = []; |
30 val con_defs = [assign_def]; |
32 val con_defs = [assign_def]; |