equal
deleted
inserted
replaced
2849 obtain |
2849 obtain |
2850 wt_e: "Env\<turnstile>e\<Colon>- PrimT Boolean" and |
2850 wt_e: "Env\<turnstile>e\<Colon>- PrimT Boolean" and |
2851 wt_c1: "Env\<turnstile>c1\<Colon>\<surd>" and |
2851 wt_c1: "Env\<turnstile>c1\<Colon>\<surd>" and |
2852 wt_c2: "Env\<turnstile>c2\<Colon>\<surd>" |
2852 wt_c2: "Env\<turnstile>c2\<Colon>\<surd>" |
2853 by (elim wt_elim_cases) |
2853 by (elim wt_elim_cases) |
2854 from wt_e da_e G |
|
2855 obtain nrm_s1: "?NormalAssigned s1 E" and |
|
2856 brk_s1: "?BreakAssigned (Norm s0) s1 E" and |
|
2857 res_s1: "?ResAssigned (Norm s0) s1" |
|
2858 by (elim If.hyps [elim_format]) simp+ |
|
2859 from If.hyps have |
2854 from If.hyps have |
2860 s0_s1:"dom (locals (store ((Norm s0)::state))) \<subseteq> dom (locals (store s1))" |
2855 s0_s1:"dom (locals (store ((Norm s0)::state))) \<subseteq> dom (locals (store s1))" |
2861 by (elim dom_locals_eval_mono_elim) |
2856 by (elim dom_locals_eval_mono_elim) |
2862 show ?case |
2857 show ?case |
2863 proof (cases "normal s1") |
2858 proof (cases "normal s1") |
2928 next |
2923 next |
2929 case False |
2924 case False |
2930 then obtain abr where abr: "abrupt s1 = Some abr" |
2925 then obtain abr where abr: "abrupt s1 = Some abr" |
2931 by (cases s1) auto |
2926 by (cases s1) auto |
2932 moreover |
2927 moreover |
2933 from eval_e _ wt_e have "\<And> l. abrupt s1 \<noteq> Some (Jump (Break l))" |
2928 from eval_e _ wt_e have "\<And> j. abrupt s1 \<noteq> Some (Jump j)" |
2934 by (rule eval_expression_no_jump) (simp_all add: G wf) |
2929 by (rule eval_expression_no_jump) (simp_all add: G wf) |
2935 moreover |
2930 moreover |
2936 have "s2 = s1" |
2931 have "s2 = s1" |
2937 proof - |
2932 proof - |
2938 have "G\<turnstile>s1 \<midarrow>(if the_Bool b then c1 else c2)\<rightarrow> s2" . |
2933 have "G\<turnstile>s1 \<midarrow>(if the_Bool b then c1 else c2)\<rightarrow> s2" . |
2939 with abr show ?thesis |
2934 with abr show ?thesis |
2940 by (cases s1) simp |
2935 by (cases s1) simp |
2941 qed |
2936 qed |
2942 ultimately show ?thesis using res_s1 by simp |
2937 ultimately show ?thesis by simp |
2943 qed |
2938 qed |
2944 next |
2939 next |
2945 -- {* |
2940 -- {* |
2946 \par |
2941 \par |
2947 *} (* dummy text command to break paragraph for latex; |
2942 *} (* dummy text command to break paragraph for latex; |