equal
deleted
inserted
replaced
605 val indrule_lemma' = cterm_instantiate (map cert Ps ~~ map cert frees) indrule_lemma; |
605 val indrule_lemma' = cterm_instantiate (map cert Ps ~~ map cert frees) indrule_lemma; |
606 |
606 |
607 val dt_induct_prop = DatatypeProp.make_ind descr sorts; |
607 val dt_induct_prop = DatatypeProp.make_ind descr sorts; |
608 val dt_induct = SkipProof.prove_global thy6 [] |
608 val dt_induct = SkipProof.prove_global thy6 [] |
609 (Logic.strip_imp_prems dt_induct_prop) (Logic.strip_imp_concl dt_induct_prop) |
609 (Logic.strip_imp_prems dt_induct_prop) (Logic.strip_imp_concl dt_induct_prop) |
610 (fn prems => EVERY |
610 (fn {prems, ...} => EVERY |
611 [rtac indrule_lemma' 1, |
611 [rtac indrule_lemma' 1, |
612 (indtac rep_induct [] THEN_ALL_NEW ObjectLogic.atomize_prems_tac) 1, |
612 (indtac rep_induct [] THEN_ALL_NEW ObjectLogic.atomize_prems_tac) 1, |
613 EVERY (map (fn (prem, r) => (EVERY |
613 EVERY (map (fn (prem, r) => (EVERY |
614 [REPEAT (eresolve_tac Abs_inverse_thms 1), |
614 [REPEAT (eresolve_tac Abs_inverse_thms 1), |
615 simp_tac (HOL_basic_ss addsimps ((symmetric r)::Rep_inverse_thms')) 1, |
615 simp_tac (HOL_basic_ss addsimps ((symmetric r)::Rep_inverse_thms')) 1, |