1 (* Title: HOL/IMP/Com.thy
3 Author: Heiko Loetzbeyer & Robert Sandner & Tobias Nipkow, TUM
4 Isar Version: Gerwin Klein, 2001
8 header "Syntax of Commands"
10 theory Com imports Main begin
13 -- "an unspecified (arbitrary) type of locations
14 (adresses/names) for variables"
17 val = nat -- "or anything else, @{text nat} used in examples"
18 state = "loc \<Rightarrow> val"
19 aexp = "state \<Rightarrow> val"
20 bexp = "state \<Rightarrow> bool"
21 -- "arithmetic and boolean expressions are not modelled explicitly here,"
22 -- "they are just functions on states"
26 | Assign loc aexp ("_ :== _ " 60)
27 | Semi com com ("_; _" [60, 60] 10)
28 | Cond bexp com com ("IF _ THEN _ ELSE _" 60)
29 | While bexp com ("WHILE _ DO _" 60)
33 Cond ("\<IF> _ \<THEN> _ \<ELSE> _" 60) and
34 While ("\<WHILE> _ \<DO> _" 60)