author | wenzelm |
Tue, 05 Apr 2011 14:25:18 +0200 | |
changeset 42224 | 578a51fae383 |
parent 42174 | d0be2722ce9f |
child 43141 | 11fce8564415 |
permissions | -rw-r--r-- |
12431 | 1 |
(* Title: HOL/IMP/Com.thy |
2 |
Author: Heiko Loetzbeyer & Robert Sandner & Tobias Nipkow, TUM |
|
41589 | 3 |
Author: Gerwin Klein |
924
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
4 |
*) |
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
5 |
|
12431 | 6 |
header "Syntax of Commands" |
7 |
||
16417 | 8 |
theory Com imports Main begin |
924
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
9 |
|
12431 | 10 |
typedecl loc |
11 |
-- "an unspecified (arbitrary) type of locations |
|
12 |
(adresses/names) for variables" |
|
13 |
||
42174 | 14 |
type_synonym val = nat -- "or anything else, @{text nat} used in examples" |
15 |
type_synonym state = "loc \<Rightarrow> val" |
|
16 |
type_synonym aexp = "state \<Rightarrow> val" |
|
17 |
type_synonym bexp = "state \<Rightarrow> bool" |
|
12431 | 18 |
-- "arithmetic and boolean expressions are not modelled explicitly here," |
19 |
-- "they are just functions on states" |
|
924
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
20 |
|
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
21 |
datatype |
12431 | 22 |
com = SKIP |
23 |
| Assign loc aexp ("_ :== _ " 60) |
|
24 |
| Semi com com ("_; _" [60, 60] 10) |
|
25 |
| Cond bexp com com ("IF _ THEN _ ELSE _" 60) |
|
26 |
| While bexp com ("WHILE _ DO _" 60) |
|
27 |
||
27362 | 28 |
notation (latex) |
29 |
SKIP ("\<SKIP>") and |
|
30 |
Cond ("\<IF> _ \<THEN> _ \<ELSE> _" 60) and |
|
31 |
While ("\<WHILE> _ \<DO> _" 60) |
|
924
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
32 |
|
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
33 |
end |