equal
deleted
inserted
replaced
7 subsection "Computable Abstract Interpretation" |
7 subsection "Computable Abstract Interpretation" |
8 |
8 |
9 text{* Abstract interpretation over type @{text st} instead of |
9 text{* Abstract interpretation over type @{text st} instead of |
10 functions. *} |
10 functions. *} |
11 |
11 |
12 context Val_abs |
12 context Gamma |
13 begin |
13 begin |
14 |
14 |
15 fun aval' :: "aexp \<Rightarrow> 'av st \<Rightarrow> 'av" where |
15 fun aval' :: "aexp \<Rightarrow> 'av st \<Rightarrow> 'av" where |
16 "aval' (N n) S = num' n" | |
16 "aval' (N n) S = num' n" | |
17 "aval' (V x) S = lookup S x" | |
17 "aval' (V x) S = lookup S x" | |
24 |
24 |
25 text{* The for-clause (here and elsewhere) only serves the purpose of fixing |
25 text{* The for-clause (here and elsewhere) only serves the purpose of fixing |
26 the name of the type parameter @{typ 'av} which would otherwise be renamed to |
26 the name of the type parameter @{typ 'av} which would otherwise be renamed to |
27 @{typ 'a}. *} |
27 @{typ 'a}. *} |
28 |
28 |
29 locale Abs_Int = Val_abs \<gamma> for \<gamma> :: "'av::SL_top \<Rightarrow> val set" |
29 locale Abs_Int = Gamma where \<gamma>=\<gamma> for \<gamma> :: "'av::SL_top \<Rightarrow> val set" |
30 begin |
30 begin |
31 |
31 |
32 fun step' :: "'av st option \<Rightarrow> 'av st option acom \<Rightarrow> 'av st option acom" where |
32 fun step' :: "'av st option \<Rightarrow> 'av st option acom \<Rightarrow> 'av st option acom" where |
33 "step' S (SKIP {P}) = (SKIP {S})" | |
33 "step' S (SKIP {P}) = (SKIP {S})" | |
34 "step' S (x ::= e {P}) = |
34 "step' S (x ::= e {P}) = |