src/HOL/MicroJava/Comp/CorrCompTp.thy
changeset 15236 f289e8ba2bb3
parent 14981 e73f8140af78
child 15481 fc075ae929e4
equal deleted inserted replaced
15235:614a804d7116 15236:f289e8ba2bb3
   114 apply (intro strip)
   114 apply (intro strip)
   115 apply (subgoal_tac "\<exists> k' kr. ks = k' # kr")
   115 apply (subgoal_tac "\<exists> k' kr. ks = k' # kr")
   116 apply (clarify)
   116 apply (clarify)
   117 apply (drule_tac x=kr in spec)
   117 apply (drule_tac x=kr in spec)
   118 apply (simp only: rev.simps)
   118 apply (simp only: rev.simps)
   119 apply (subgoal_tac "(empty(rev kr @ [k'][\<mapsto>]rev list @ [a])) = empty (rev kr[\<mapsto>]rev list)([k'][\<mapsto>][a])")
   119 apply (subgoal_tac "(empty(rev kr @ [k'][\<mapsto>]rev xs @ [a])) = empty (rev kr[\<mapsto>]rev xs)([k'][\<mapsto>][a])")
   120 apply (simp only:)
   120 apply (simp only:)
   121 apply (case_tac "k' = k")
   121 apply (case_tac "k' = k")
   122 apply simp
   122 apply simp
   123 apply simp 
   123 apply simp 
   124 apply (case_tac "k = k'")
   124 apply (case_tac "k = k'")
  1529 
  1529 
  1530 lemma set_drop_le [rule_format,simp]: "\<forall> n xs. n \<le> m \<longrightarrow> set (drop m xs) \<subseteq> set (drop n xs)"
  1530 lemma set_drop_le [rule_format,simp]: "\<forall> n xs. n \<le> m \<longrightarrow> set (drop m xs) \<subseteq> set (drop n xs)"
  1531 apply (induct m)
  1531 apply (induct m)
  1532 apply simp
  1532 apply simp
  1533 apply (intro strip)
  1533 apply (intro strip)
  1534 apply (subgoal_tac "na \<le> n \<or> na = Suc n")
  1534 apply (subgoal_tac "n \<le> m \<or> n = Suc m")
  1535 apply (erule disjE)
  1535 apply (erule disjE)
  1536 apply (frule_tac x=na in spec, drule_tac x=xs in spec, drule mp, assumption)
  1536 apply (frule_tac x=n in spec, drule_tac x=xs in spec, drule mp, assumption)
  1537 apply (rule set_drop_Suc [THEN subset_trans], assumption)
  1537 apply (rule set_drop_Suc [THEN subset_trans], assumption)
  1538 apply auto
  1538 apply auto
  1539 done
  1539 done
  1540 
  1540 
  1541 lemma set_drop [simp] : "set (drop m xs) \<subseteq> set xs"
  1541 lemma set_drop [simp] : "set (drop m xs) \<subseteq> set xs"
  2308   prefer 2 apply (simp (no_asm_simp)) 
  2308   prefer 2 apply (simp (no_asm_simp)) 
  2309   apply ((erule exE)+, simp (no_asm_simp))
  2309   apply ((erule exE)+, simp (no_asm_simp))
  2310 apply (drule_tac x="lvars_pre @ [a]" in spec)
  2310 apply (drule_tac x="lvars_pre @ [a]" in spec)
  2311 apply (drule_tac x="lvars0" in spec)
  2311 apply (drule_tac x="lvars0" in spec)
  2312 apply (simp (no_asm_simp) add: compInitLvars_def)
  2312 apply (simp (no_asm_simp) add: compInitLvars_def)
  2313 apply (rule_tac ?bc1.0="compInit jmb a" and ?bc2.0="compInitLvars jmb list"
  2313 apply (rule_tac ?bc1.0="compInit jmb a" and ?bc2.0="compInitLvars jmb lvars"
  2314   in bc_mt_corresp_comb)
  2314   in bc_mt_corresp_comb)
  2315 apply (simp (no_asm_simp) add: compInitLvars_def)+
  2315 apply (simp (no_asm_simp) add: compInitLvars_def)+
  2316 
  2316 
  2317 apply (rule_tac vn=vn and ty=ty in wt_method_compTpInit_corresp)
  2317 apply (rule_tac vn=vn and ty=ty in wt_method_compTpInit_corresp)
  2318 apply assumption+
  2318 apply assumption+