src/HOL/Bali/Conform.thy
changeset 46222 cb3f370e66e1
parent 46212 d86ef6b96097
child 55417 01fbfb60c33e
equal deleted inserted replaced
46221:6dcb2cea827d 46222:cb3f370e66e1
   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]: