diff -r 23a8c5ac35f8 -r 69916a850301 src/HOL/IMP/Compiler.thy --- a/src/HOL/IMP/Compiler.thy Sat Oct 17 01:05:59 2009 +0200 +++ b/src/HOL/IMP/Compiler.thy Sat Oct 17 14:43:18 2009 +0200 @@ -1,5 +1,4 @@ (* Title: HOL/IMP/Compiler.thy - ID: $Id$ Author: Tobias Nipkow, TUM Copyright 1996 TUM *) @@ -262,32 +261,32 @@ assume H: "\?W,[],s\ -n\ \[],rev ?W,t\" show "\?w,s\ \\<^sub>c t" proof cases - assume b: "b s" - then obtain m where m: "n = Suc m" + assume b: "b s" + then obtain m where m: "n = Suc m" 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\" + 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\" and n12: "m = n1+n2" - using execn_decomp[of _ "[?j2]"] - by(simp del: execn_simp) fast - have n2n: "n2 - 1 < n" using m n12 by arith - note b - moreover - { from n1 have "\?C,[],s\ -*\ \[],rev ?C,r\" - by (simp add:rtrancl_is_UN_rel_pow) fast - hence "\c,s\ \\<^sub>c r" by(rule IHc) - } - moreover - { have "n2 - 1 < n" using m n12 by arith - moreover from n2 have "\?W,[],r\ -n2- 1\ \[],rev ?W,t\" by fastsimp - ultimately have "\?w,r\ \\<^sub>c t" by(rule IHm) - } - ultimately show ?thesis .. + using execn_decomp[of _ "[?j2]"] + by(simp del: execn_simp) fast + have n2n: "n2 - 1 < n" using m n12 by arith + note b + moreover + { from n1 have "\?C,[],s\ -*\ \[],rev ?C,r\" + by (simp add:rtrancl_is_UN_rel_pow) fast + hence "\c,s\ \\<^sub>c r" by(rule IHc) + } + moreover + { have "n2 - 1 < n" using m n12 by arith + moreover from n2 have "\?W,[],r\ -n2- 1\ \[],rev ?W,t\" by fastsimp + ultimately have "\?w,r\ \\<^sub>c t" by(rule IHm) + } + ultimately show ?thesis .. next - assume b: "\ b s" - hence "t = s" using H by simp - with b show ?thesis by simp + assume b: "\ b s" + hence "t = s" using H by simp + with b show ?thesis by simp qed qed }