src/HOL/Bali/Example.thy
changeset 67613 ce654b0e6d69
parent 62390 842917225d56
child 68451 c34aa23a1fb6
equal deleted inserted replaced
67610:4939494ed791 67613:ce654b0e6d69
   285                         (Acc (arr_viewed_from Main Ext).[Lit (Intg 2)])) Skip))"
   285                         (Acc (arr_viewed_from Main Ext).[Lit (Intg 2)])) Skip))"
   286 
   286 
   287 
   287 
   288 subsubsection "well-structuredness"
   288 subsubsection "well-structuredness"
   289 
   289 
   290 lemma not_Object_subcls_any [elim!]: "(Object, C) \<in> (subcls1 tprg)^+ \<Longrightarrow> R"
   290 lemma not_Object_subcls_any [elim!]: "(Object, C) \<in> (subcls1 tprg)\<^sup>+ \<Longrightarrow> R"
   291 apply (auto dest!: tranclD subcls1D)
   291 apply (auto dest!: tranclD subcls1D)
   292 done
   292 done
   293 
   293 
   294 lemma not_Throwable_subcls_SXcpt [elim!]: 
   294 lemma not_Throwable_subcls_SXcpt [elim!]: 
   295   "(SXcpt Throwable, SXcpt xn) \<in> (subcls1 tprg)^+ \<Longrightarrow> R"
   295   "(SXcpt Throwable, SXcpt xn) \<in> (subcls1 tprg)\<^sup>+ \<Longrightarrow> R"
   296 apply (auto dest!: tranclD subcls1D) 
   296 apply (auto dest!: tranclD subcls1D) 
   297 apply (simp add: Object_def SXcpt_def)
   297 apply (simp add: Object_def SXcpt_def)
   298 done
   298 done
   299 
   299 
   300 lemma not_SXcpt_n_subcls_SXcpt_n [elim!]: 
   300 lemma not_SXcpt_n_subcls_SXcpt_n [elim!]: 
   301   "(SXcpt xn, SXcpt xn)  \<in> (subcls1 tprg)^+ \<Longrightarrow> R"
   301   "(SXcpt xn, SXcpt xn)  \<in> (subcls1 tprg)\<^sup>+ \<Longrightarrow> R"
   302 apply (auto dest!: tranclD subcls1D)
   302 apply (auto dest!: tranclD subcls1D)
   303 apply (drule rtranclD)
   303 apply (drule rtranclD)
   304 apply auto
   304 apply auto
   305 done
   305 done
   306 
   306 
   307 lemma not_Base_subcls_Ext [elim!]: "(Base, Ext) \<in> (subcls1 tprg)^+  \<Longrightarrow> R"
   307 lemma not_Base_subcls_Ext [elim!]: "(Base, Ext) \<in> (subcls1 tprg)\<^sup>+  \<Longrightarrow> R"
   308 apply (auto dest!: tranclD subcls1D simp add: BaseCl_def)
   308 apply (auto dest!: tranclD subcls1D simp add: BaseCl_def)
   309 done
   309 done
   310 
   310 
   311 lemma not_TName_n_subcls_TName_n [rule_format (no_asm), elim!]: 
   311 lemma not_TName_n_subcls_TName_n [rule_format (no_asm), elim!]: 
   312   "(\<lparr>pid=java_lang,tid=TName tn\<rparr>, \<lparr>pid=java_lang,tid=TName tn\<rparr>) 
   312   "(\<lparr>pid=java_lang,tid=TName tn\<rparr>, \<lparr>pid=java_lang,tid=TName tn\<rparr>) 
   313    \<in> (subcls1 tprg)^+ \<longrightarrow> R"
   313    \<in> (subcls1 tprg)\<^sup>+ \<longrightarrow> R"
   314 apply (rule_tac n1 = "tn" in surj_tnam' [THEN exE])
   314 apply (rule_tac n1 = "tn" in surj_tnam' [THEN exE])
   315 apply (erule ssubst)
   315 apply (erule ssubst)
   316 apply (rule tnam'.induct)
   316 apply (rule tnam'.induct)
   317 apply  safe
   317 apply  safe
   318 apply (auto dest!: tranclD subcls1D simp add: BaseCl_def ExtCl_def MainCl_def)
   318 apply (auto dest!: tranclD subcls1D simp add: BaseCl_def ExtCl_def MainCl_def)