author | wenzelm |
Sun, 30 Jan 2011 13:02:18 +0100 | |
changeset 41648 | 6d736d983d5c |
parent 41589 | bbd861837ebc |
child 42174 | d0be2722ce9f |
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 |
||
14 |
types |
|
15 |
val = nat -- "or anything else, @{text nat} used in examples" |
|
16 |
state = "loc \<Rightarrow> val" |
|
17 |
aexp = "state \<Rightarrow> val" |
|
18 |
bexp = "state \<Rightarrow> bool" |
|
19 |
-- "arithmetic and boolean expressions are not modelled explicitly here," |
|
20 |
-- "they are just functions on states" |
|
924
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
21 |
|
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
22 |
datatype |
12431 | 23 |
com = SKIP |
24 |
| Assign loc aexp ("_ :== _ " 60) |
|
25 |
| Semi com com ("_; _" [60, 60] 10) |
|
26 |
| Cond bexp com com ("IF _ THEN _ ELSE _" 60) |
|
27 |
| While bexp com ("WHILE _ DO _" 60) |
|
28 |
||
27362 | 29 |
notation (latex) |
30 |
SKIP ("\<SKIP>") and |
|
31 |
Cond ("\<IF> _ \<THEN> _ \<ELSE> _" 60) and |
|
32 |
While ("\<WHILE> _ \<DO> _" 60) |
|
924
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
33 |
|
806721cfbf46
new version of HOL/IMP with curried function application
clasohm
parents:
diff
changeset
|
34 |
end |