src/HOL/Tools/datatype_rep_proofs.ML
changeset 26711 3a478bfa1650
parent 26626 c6231d64d264
child 26806 40b411ec05aa
equal deleted inserted replaced
26710:f79aa228c582 26711:3a478bfa1650
   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,