equal
deleted
inserted
replaced
368 \<rbrakk> \<Longrightarrow> G,s\<turnstile>obj \<lparr>values:=init_vals (var_tys G (tag obj) r)\<rparr>\<Colon>\<preceq>\<surd>r" |
368 \<rbrakk> \<Longrightarrow> G,s\<turnstile>obj \<lparr>values:=init_vals (var_tys G (tag obj) r)\<rparr>\<Colon>\<preceq>\<surd>r" |
369 apply (auto simp add: oconf_def) |
369 apply (auto simp add: oconf_def) |
370 apply (drule_tac var_tys_Some_eq [THEN iffD1]) |
370 apply (drule_tac var_tys_Some_eq [THEN iffD1]) |
371 defer |
371 defer |
372 apply (subst obj_ty_cong) |
372 apply (subst obj_ty_cong) |
373 apply(auto dest!: fields_table_SomeD obj_ty_CInst1 obj_ty_Arr1 |
373 apply (auto dest!: fields_table_SomeD split add: sum.split_asm obj_tag.split_asm) |
374 split add: sum.split_asm obj_tag.split_asm) |
|
375 done |
374 done |
376 |
375 |
377 section "state conformance" |
376 section "state conformance" |
378 |
377 |
379 definition |
378 definition |
428 "((raise_if c xn x, s)\<Colon>\<preceq>(G, L)) = ((x, s)\<Colon>\<preceq>(G, L))" |
427 "((raise_if c xn x, s)\<Colon>\<preceq>(G, L)) = ((x, s)\<Colon>\<preceq>(G, L))" |
429 by (auto simp: abrupt_if_def) |
428 by (auto simp: abrupt_if_def) |
430 |
429 |
431 lemma conforms_error_if [iff]: |
430 lemma conforms_error_if [iff]: |
432 "((error_if c err x, s)\<Colon>\<preceq>(G, L)) = ((x, s)\<Colon>\<preceq>(G, L))" |
431 "((error_if c err x, s)\<Colon>\<preceq>(G, L)) = ((x, s)\<Colon>\<preceq>(G, L))" |
433 by (auto simp: abrupt_if_def split: split_if) |
432 by (auto simp: abrupt_if_def) |
434 |
433 |
435 lemma conforms_NormI: "(x, s)\<Colon>\<preceq>(G, L) \<Longrightarrow> Norm s\<Colon>\<preceq>(G, L)" |
434 lemma conforms_NormI: "(x, s)\<Colon>\<preceq>(G, L) \<Longrightarrow> Norm s\<Colon>\<preceq>(G, L)" |
436 by (auto simp: conforms_def Let_def) |
435 by (auto simp: conforms_def Let_def) |
437 |
436 |
438 lemma conforms_absorb [rule_format]: |
437 lemma conforms_absorb [rule_format]: |