doc-src/TutorialI/CodeGen/CodeGen.thy
changeset 10171 59d6633835fa
parent 9933 9feb1e0c4cb3
child 10795 9e888d60d3e5
--- a/doc-src/TutorialI/CodeGen/CodeGen.thy	Mon Oct 09 09:33:45 2000 +0200
+++ b/doc-src/TutorialI/CodeGen/CodeGen.thy	Mon Oct 09 10:18:21 2000 +0200
@@ -14,7 +14,7 @@
 appropriate function itself.
 *}
 
-types 'v binop = "'v \\<Rightarrow> 'v \\<Rightarrow> 'v";
+types 'v binop = "'v \<Rightarrow> 'v \<Rightarrow> 'v";
 datatype ('a,'v)expr = Cex 'v
                      | Vex 'a
                      | Bex "'v binop"  "('a,'v)expr"  "('a,'v)expr";
@@ -27,7 +27,7 @@
 values is easily defined:
 *}
 
-consts value :: "('a,'v)expr \\<Rightarrow> ('a \\<Rightarrow> 'v) \\<Rightarrow> 'v";
+consts value :: "('a,'v)expr \<Rightarrow> ('a \<Rightarrow> 'v) \<Rightarrow> 'v";
 primrec
 "value (Cex v) env = v"
 "value (Vex a) env = env a"
@@ -53,13 +53,13 @@
 unchanged:
 *}
 
-consts exec :: "('a,'v)instr list \\<Rightarrow> ('a\\<Rightarrow>'v) \\<Rightarrow> 'v list \\<Rightarrow> 'v list";
+consts exec :: "('a,'v)instr list \<Rightarrow> ('a\<Rightarrow>'v) \<Rightarrow> 'v list \<Rightarrow> 'v list";
 primrec
 "exec [] s vs = vs"
 "exec (i#is) s vs = (case i of
-    Const v  \\<Rightarrow> exec is s (v#vs)
-  | Load a   \\<Rightarrow> exec is s ((s a)#vs)
-  | Apply f  \\<Rightarrow> exec is s ((f (hd vs) (hd(tl vs)))#(tl(tl vs))))";
+    Const v  \<Rightarrow> exec is s (v#vs)
+  | Load a   \<Rightarrow> exec is s ((s a)#vs)
+  | Apply f  \<Rightarrow> exec is s ((f (hd vs) (hd(tl vs)))#(tl(tl vs))))";
 
 text{*\noindent
 Recall that @{term"hd"} and @{term"tl"}
@@ -74,7 +74,7 @@
 definition is pretty much obvious:
 *}
 
-consts comp :: "('a,'v)expr \\<Rightarrow> ('a,'v)instr list";
+consts comp :: "('a,'v)expr \<Rightarrow> ('a,'v)instr list";
 primrec
 "comp (Cex v)       = [Const v]"
 "comp (Vex a)       = [Load a]"
@@ -90,7 +90,7 @@
 This theorem needs to be generalized to
 *}
 
-theorem "\\<forall>vs. exec (comp e) s vs = (value e s) # vs";
+theorem "\<forall>vs. exec (comp e) s vs = (value e s) # vs";
 
 txt{*\noindent
 which is proved by induction on @{term"e"} followed by simplification, once
@@ -99,7 +99,7 @@
 *}
 (*<*)oops;(*>*)
 lemma exec_app[simp]:
-  "\\<forall>vs. exec (xs@ys) s vs = exec ys s (exec xs s vs)"; 
+  "\<forall>vs. exec (xs@ys) s vs = exec ys s (exec xs s vs)"; 
 
 txt{*\noindent
 This requires induction on @{term"xs"} and ordinary simplification for the
@@ -107,8 +107,8 @@
 that contains two @{text"case"}-expressions over instructions. Thus we add
 automatic case splitting as well, which finishes the proof:
 *}
-by(induct_tac xs, simp, simp split: instr.split);
-
+apply(induct_tac xs, simp, simp split: instr.split);
+(*<*)done(*>*)
 text{*\noindent
 Note that because \isaindex{auto} performs simplification, it can
 also be modified in the same way @{text simp} can. Thus the proof can be
@@ -116,10 +116,10 @@
 *}
 (*<*)
 declare exec_app[simp del];
-lemma [simp]: "\\<forall>vs. exec (xs@ys) s vs = exec ys s (exec xs s vs)"; 
+lemma [simp]: "\<forall>vs. exec (xs@ys) s vs = exec ys s (exec xs s vs)"; 
 (*>*)
-by(induct_tac xs, auto split: instr.split);
-
+apply(induct_tac xs, auto split: instr.split);
+(*<*)done(*>*)
 text{*\noindent
 Although this is more compact, it is less clear for the reader of the proof.
 
@@ -129,7 +129,7 @@
 its instance.
 *}
 (*<*)
-theorem "\\<forall>vs. exec (comp e) s vs = (value e s) # vs";
+theorem "\<forall>vs. exec (comp e) s vs = (value e s) # vs";
 by(induct_tac e, auto);
 end
 (*>*)