# HG changeset patch # User nipkow # Date 1035437026 -7200 # Node ID 01fc1fc6138401a8ee2051319a3188aaf693405a # Parent f4c64597fb023023899c62e9f4faed90eca98794 ASIN -> SET diff -r f4c64597fb02 -r 01fc1fc61384 src/HOL/IMP/Compiler.thy --- a/src/HOL/IMP/Compiler.thy Wed Oct 23 16:10:42 2002 +0200 +++ b/src/HOL/IMP/Compiler.thy Thu Oct 24 07:23:46 2002 +0200 @@ -11,11 +11,11 @@ consts compile :: "com \ instr list" primrec "compile \ = []" -"compile (x:==a) = [ASIN x a]" +"compile (x:==a) = [SET x a]" "compile (c1;c2) = compile c1 @ compile c2" "compile (\ b \ c1 \ c2) = [JMPF b (length(compile c1) + 1)] @ compile c1 @ - [JMPF (%x. False) (length(compile c2))] @ compile c2" + [JMPF (\x. False) (length(compile c2))] @ compile c2" "compile (\ b \ c) = [JMPF b (length(compile c) + 1)] @ compile c @ [JMPB (length(compile c)+1)]" @@ -68,12 +68,12 @@ constdefs forws :: "instr \ nat set" "forws instr == case instr of - ASIN x a \ {0} | + SET x a \ {0} | JMPF b n \ {0,n} | JMPB n \ {}" backws :: "instr \ nat set" "backws instr == case instr of - ASIN x a \ {} | + SET x a \ {} | JMPF b n \ {} | JMPB n \ {n}" @@ -263,7 +263,7 @@ proof cases assume b: "b s" then obtain m where m: "n = Suc m" - and 1: "\?C @ [?j2],[?j1],s\ -m\ \[],rev ?W,t\" + and "\?C @ [?j2],[?j1],s\ -m\ \[],rev ?W,t\" using H by fastsimp then obtain r n1 n2 where n1: "\?C,[],s\ -n1\ \[],rev ?C,r\" and n2: "\[?j2],rev ?C @ [?j1],r\ -n2\ \[],rev ?W,t\" diff -r f4c64597fb02 -r 01fc1fc61384 src/HOL/IMP/Machines.thy --- a/src/HOL/IMP/Machines.thy Wed Oct 23 16:10:42 2002 +0200 +++ b/src/HOL/IMP/Machines.thy Thu Oct 24 07:23:46 2002 +0200 @@ -27,14 +27,13 @@ subsection "Instructions" text {* There are only three instructions: *} -datatype instr = ASIN loc aexp | JMPF bexp nat | JMPB nat +datatype instr = SET loc aexp | JMPF bexp nat | JMPB nat types instrs = "instr list" subsection "M0 with PC" -consts exec01 :: "instr list \ ((nat\state) \ (nat\state))set" - +consts exec01 :: "instr list \ ((nat\state) \ (nat\state))set" syntax "_exec01" :: "[instrs, nat,state, nat,state] \ bool" ("(_/ |- (1<_,/_>)/ -1-> (1<_,/_>))" [50,0,0,0,0] 50) @@ -58,7 +57,7 @@ inductive "exec01 P" intros -ASIN: "\ n \ P \ \n,s\ -1\ \Suc n,s[x\ a s]\" +SET: "\ n \ P \ \n,s\ -1\ \Suc n,s[x\ a s]\" JMPFT: "\ n \ P \ \n,s\ -1\ \Suc n,s\" JMPFF: "\ nb s; m=n+i+1; m \ size P \ \ P \ \n,s\ -1\ \m,s\" @@ -98,7 +97,7 @@ inductive "stepa1" intros - "\ASIN x a#p,q,s\ -1\ \p,ASIN x a#q,s[x\ a s]\" + "\SET x a#p,q,s\ -1\ \p,SET x a#q,s[x\ a s]\" "b s \ \JMPF b i#p,q,s\ -1\ \p,JMPF b i#q,s\" "\ \ b s; i \ size p \ \ \JMPF b i # p, q, s\ -1\ \drop i p, rev(take i p) @ JMPF b i # q, s\" @@ -109,7 +108,7 @@ lemma exec_simp[simp]: "(\i#p,q,s\ -1\ \p',q',t\) = (case i of - ASIN x a \ t = s[x\ a s] \ p' = p \ q' = i#q | + SET x a \ t = s[x\ a s] \ p' = p \ q' = i#q | JMPF b n \ t=s \ (if b s then p' = p \ q' = i#q else n \ size p \ p' = drop n p \ q' = rev(take n p) @ i # q) | JMPB n \ n \ size q \ t=s \ p' = rev(take n q) @ i # p \ q' = drop n q)" @@ -150,7 +149,7 @@ "\q,p,s\ -1\ \q',p',t\ \ rev p' @ q' = rev p @ q \ rev p @ q \ \size p,s\ -1\ \size p',t\" apply(erule stepa1.induct) - apply(simp add:exec01.ASIN) + apply(simp add:exec01.SET) apply(fastsimp intro:exec01.JMPFT) apply simp apply(rule exec01.JMPFF)