src/HOL/Induct/Com.thy
changeset 4264 5e21f41ccd21
parent 3146 922a60451382
child 5102 8c782c25a11e
--- a/src/HOL/Induct/Com.thy	Fri Nov 21 11:54:23 1997 +0100
+++ b/src/HOL/Induct/Com.thy	Fri Nov 21 11:57:58 1997 +0100
@@ -34,6 +34,12 @@
 
 translations  "csig -[eval]-> s" == "(csig,s) : exec eval"
 
+syntax  eval'   :: "[exp*state,nat*state] => 
+		    ((exp*state) * (nat*state)) set => bool"
+						   ("_/ -|[_]-> _" [50,0,50] 50)
+translations
+    "esig -|[eval]-> ns" => "(esig,ns) : eval"
+
 constdefs assign :: [state,nat,loc] => state    ("_[_'/_]" [95,0,0] 95)
   "s[m/x] ==  (%y. if y=x then m else s y)"
 
@@ -43,20 +49,20 @@
   intrs
     Skip    "(SKIP,s) -[eval]-> s"
 
-    Assign  "((e,s), (v,s')) : eval ==> (x := e, s) -[eval]-> s'[v/x]"
+    Assign  "(e,s) -|[eval]-> (v,s') ==> (x := e, s) -[eval]-> s'[v/x]"
 
     Semi    "[| (c0,s) -[eval]-> s2; (c1,s2) -[eval]-> s1 |] 
             ==> (c0 ;; c1, s) -[eval]-> s1"
 
-    IfTrue "[| ((e,s), (0,s')) : eval;  (c0,s') -[eval]-> s1 |] 
+    IfTrue "[| (e,s) -|[eval]-> (0,s');  (c0,s') -[eval]-> s1 |] 
             ==> (IF e THEN c0 ELSE c1, s) -[eval]-> s1"
 
-    IfFalse "[| ((e,s), (1,s')) : eval;  (c1,s') -[eval]-> s1 |] 
+    IfFalse "[| (e,s) -|[eval]->  (1,s');  (c1,s') -[eval]-> s1 |] 
              ==> (IF e THEN c0 ELSE c1, s) -[eval]-> s1"
 
-    WhileFalse "((e,s), (1,s1)) : eval ==> (WHILE e DO c, s) -[eval]-> s1"
+    WhileFalse "(e,s) -|[eval]-> (1,s1) ==> (WHILE e DO c, s) -[eval]-> s1"
 
-    WhileTrue  "[| ((e,s), (0,s1)) : eval;
+    WhileTrue  "[| (e,s) -|[eval]-> (0,s1);
                 (c,s1) -[eval]-> s2;  (WHILE e DO c, s2) -[eval]-> s3 |] 
                 ==> (WHILE e DO c, s) -[eval]-> s3"