# HG changeset patch # User wenzelm # Date 1154550428 -7200 # Node ID 267917c7cec3c0e75babcd72a8d7d0587200c275 # Parent bf9101cc43852dc9a8d33f1d765fb0b66c3cf433 lemma da_good_approx: adapted induction (was exploting lifted obtain result); diff -r bf9101cc4385 -r 267917c7cec3 src/HOL/Bali/DefiniteAssignmentCorrect.thy --- a/src/HOL/Bali/DefiniteAssignmentCorrect.thy Wed Aug 02 22:27:07 2006 +0200 +++ b/src/HOL/Bali/DefiniteAssignmentCorrect.thy Wed Aug 02 22:27:08 2006 +0200 @@ -1611,16 +1611,13 @@ qed qed -lemma dom_locals_eval_mono_elim [consumes 1]: - assumes eval: "G\ s0 \t\\ (v,s1)" and - hyps: "\dom (locals (store s0)) \ dom (locals (store s1)); - \ vv s val. \v=In2 vv; normal s1\ - \ dom (locals (store s)) - \ dom (locals (store ((snd vv) val s)))\ \ P" - shows "P" -using eval -proof (rule dom_locals_eval_mono [THEN conjE]) -qed (rule hyps,auto) +lemma dom_locals_eval_mono_elim: + assumes eval: "G\ s0 \t\\ (v,s1)" + obtains "dom (locals (store s0)) \ dom (locals (store s1))" and + "\ vv s val. \v=In2 vv; normal s1\ + \ dom (locals (store s)) + \ dom (locals (store ((snd vv) val s)))" + using eval by (rule dom_locals_eval_mono [THEN conjE]) (rule that, auto) lemma halloc_no_abrupt: assumes halloc: "G\s0\halloc oi\a\s1" and @@ -2660,11 +2657,11 @@ \ Env T A. ?Wt Env t T \ ?Da Env s0 t A \ prg Env = G \ ?NormalAssigned s1 A \ ?BreakAssigned s0 s1 A \ ?ResAssigned s0 s1" -- {* Goal in object logic variant *} - from eval - show "\ Env T A. \?Wt Env t T; ?Da Env s0 t A; prg Env = G\ - \ ?NormalAssigned s1 A \ ?BreakAssigned s0 s1 A \ ?ResAssigned s0 s1" - (is "PROP ?Hyp t s0 s1") - proof (induct) + let ?Hyp = "\t s0 s1. (\ Env T A. \?Wt Env t T; ?Da Env s0 t A; prg Env = G\ + \ ?NormalAssigned s1 A \ ?BreakAssigned s0 s1 A \ ?ResAssigned s0 s1)" + from eval and wt da G + show ?thesis + proof (induct fixing: Env T A) case (Abrupt s t xc Env T A) have da: "Env\ dom (locals s) \t\ A" using Abrupt.prems by simp have "?NormalAssigned (Some xc,s) A"