src/HOL/MicroJava/BV/JType.thy
changeset 23757 087b0a241557
parent 22422 ee19cdb07528
child 25363 fbdfceb8de15
equal deleted inserted replaced
23756:14008ce7df96 23757:087b0a241557
    76     moreover    
    76     moreover    
    77     from R wf ty
    77     from R wf ty
    78     have "R \<noteq> ClassT Object \<Longrightarrow> ?thesis"
    78     have "R \<noteq> ClassT Object \<Longrightarrow> ?thesis"
    79      by (auto simp add: is_ty_def is_class_def split_tupled_all
    79      by (auto simp add: is_ty_def is_class_def split_tupled_all
    80                elim!: subcls1.cases
    80                elim!: subcls1.cases
    81                elim: converse_rtranclE'
    81                elim: converse_rtranclpE
    82                split: ref_ty.splits)
    82                split: ref_ty.splits)
    83     ultimately    
    83     ultimately    
    84     show ?thesis by blast
    84     show ?thesis by blast
    85   qed
    85   qed
    86 qed
    86 qed
   144 apply (frule widen_RefT)
   144 apply (frule widen_RefT)
   145 apply (erule exE)
   145 apply (erule exE)
   146 apply (case_tac t)
   146 apply (case_tac t)
   147  apply simp
   147  apply simp
   148 apply simp
   148 apply simp
   149 apply (insert rtrancl_r_diff_Id' [symmetric, standard, of "subcls1 G"])
   149 apply (insert rtranclp_r_diff_Id [symmetric, standard, of "subcls1 G"])
   150 apply simp
   150 apply simp
   151 apply (erule rtrancl.cases)
   151 apply (erule rtranclp.cases)
   152  apply blast
   152  apply blast
   153 apply (drule rtrancl_converseI')
   153 apply (drule rtranclp_converseI)
   154 apply (subgoal_tac "(inf (subcls1 G) op \<noteq>)^--1 = (inf ((subcls1 G)^--1) op \<noteq>)")
   154 apply (subgoal_tac "(inf (subcls1 G) op \<noteq>)^--1 = (inf ((subcls1 G)^--1) op \<noteq>)")
   155  prefer 2
   155  prefer 2
   156  apply (simp add: converse_meet)
   156  apply (simp add: converse_meet)
   157 apply simp
   157 apply simp
   158 apply (blast intro: rtrancl_into_trancl2')
   158 apply (blast intro: rtranclp_into_tranclp2)
   159 done 
   159 done 
   160 
   160 
   161 lemma closed_err_types:
   161 lemma closed_err_types:
   162   "\<lbrakk> ws_prog G; single_valuedP (subcls1 G); acyclicP (subcls1 G) \<rbrakk> 
   162   "\<lbrakk> ws_prog G; single_valuedP (subcls1 G); acyclicP (subcls1 G) \<rbrakk> 
   163   \<Longrightarrow> closed (err (types G)) (lift2 (sup G))"
   163   \<Longrightarrow> closed (err (types G)) (lift2 (sup G))"