equal
deleted
inserted
replaced
2944 case True |
2944 case True |
2945 with hyp_if have hyp_e1: "PROP ?TypeSafe s1 s2 (In1l e1) (In1 v)" |
2945 with hyp_if have hyp_e1: "PROP ?TypeSafe s1 s2 (In1l e1) (In1 v)" |
2946 by simp |
2946 by simp |
2947 from da_e1 s0_s1 True obtain E1' where |
2947 from da_e1 s0_s1 True obtain E1' where |
2948 "\<lparr>prg=G,cls=accC,lcl=L\<rparr>\<turnstile> (dom (locals (store s1)))\<guillemotright>In1l e1\<guillemotright> E1'" |
2948 "\<lparr>prg=G,cls=accC,lcl=L\<rparr>\<turnstile> (dom (locals (store s1)))\<guillemotright>In1l e1\<guillemotright> E1'" |
2949 by - (rule da_weakenE, auto iff del: Un_subset_iff le_sup_iff) |
2949 by - (rule da_weakenE, auto iff del: Un_subset_iff sup.bounded_iff) |
2950 with conf_s1 wt_e1 |
2950 with conf_s1 wt_e1 |
2951 obtain |
2951 obtain |
2952 "s2\<Colon>\<preceq>(G, L)" |
2952 "s2\<Colon>\<preceq>(G, L)" |
2953 "(normal s2 \<longrightarrow> G,L,store s2\<turnstile>In1l e1\<succ>In1 v\<Colon>\<preceq>Inl T1)" |
2953 "(normal s2 \<longrightarrow> G,L,store s2\<turnstile>In1l e1\<succ>In1 v\<Colon>\<preceq>Inl T1)" |
2954 "error_free s2" |
2954 "error_free s2" |
2963 case False |
2963 case False |
2964 with hyp_if have hyp_e2: "PROP ?TypeSafe s1 s2 (In1l e2) (In1 v)" |
2964 with hyp_if have hyp_e2: "PROP ?TypeSafe s1 s2 (In1l e2) (In1 v)" |
2965 by simp |
2965 by simp |
2966 from da_e2 s0_s1 False obtain E2' where |
2966 from da_e2 s0_s1 False obtain E2' where |
2967 "\<lparr>prg=G,cls=accC,lcl=L\<rparr>\<turnstile> (dom (locals (store s1)))\<guillemotright>In1l e2\<guillemotright> E2'" |
2967 "\<lparr>prg=G,cls=accC,lcl=L\<rparr>\<turnstile> (dom (locals (store s1)))\<guillemotright>In1l e2\<guillemotright> E2'" |
2968 by - (rule da_weakenE, auto iff del: Un_subset_iff le_sup_iff) |
2968 by - (rule da_weakenE, auto iff del: Un_subset_iff sup.bounded_iff) |
2969 with conf_s1 wt_e2 |
2969 with conf_s1 wt_e2 |
2970 obtain |
2970 obtain |
2971 "s2\<Colon>\<preceq>(G, L)" |
2971 "s2\<Colon>\<preceq>(G, L)" |
2972 "(normal s2 \<longrightarrow> G,L,store s2\<turnstile>In1l e2\<succ>In1 v\<Colon>\<preceq>Inl T2)" |
2972 "(normal s2 \<longrightarrow> G,L,store s2\<turnstile>In1l e2\<succ>In1 v\<Colon>\<preceq>Inl T2)" |
2973 "error_free s2" |
2973 "error_free s2" |