equal
deleted
inserted
replaced
454 val rlz = Extraction.realizes_of thy (vs @ Ps) r (prop_of elim); |
454 val rlz = Extraction.realizes_of thy (vs @ Ps) r (prop_of elim); |
455 val rlz' = attach_typeS (strip_all (Logic.unvarify_global rlz)); |
455 val rlz' = attach_typeS (strip_all (Logic.unvarify_global rlz)); |
456 val rews = map mk_meta_eq case_thms; |
456 val rews = map mk_meta_eq case_thms; |
457 val thm = Goal.prove_global thy [] |
457 val thm = Goal.prove_global thy [] |
458 (Logic.strip_imp_prems rlz') (Logic.strip_imp_concl rlz') (fn {prems, ...} => EVERY |
458 (Logic.strip_imp_prems rlz') (Logic.strip_imp_concl rlz') (fn {prems, ...} => EVERY |
459 [cut_facts_tac [hd prems] 1, |
459 [cut_tac (hd prems) 1, |
460 etac elimR 1, |
460 etac elimR 1, |
461 ALLGOALS (asm_simp_tac HOL_basic_ss), |
461 ALLGOALS (asm_simp_tac HOL_basic_ss), |
462 rewrite_goals_tac rews, |
462 rewrite_goals_tac rews, |
463 REPEAT ((resolve_tac prems THEN_ALL_NEW (Object_Logic.atomize_prems_tac THEN' |
463 REPEAT ((resolve_tac prems THEN_ALL_NEW (Object_Logic.atomize_prems_tac THEN' |
464 DEPTH_SOLVE_1 o FIRST' [atac, etac allE, etac impE])) 1)]); |
464 DEPTH_SOLVE_1 o FIRST' [atac, etac allE, etac impE])) 1)]); |