src/HOL/Tools/Datatype/datatype.ML
changeset 35410 1ea89d2a1bd4
parent 35402 115a5a95710a
child 35625 9c818cab0dd0
equal deleted inserted replaced
35409:5c5bb83f2bae 35410:1ea89d2a1bd4
   479     val iso_thms = if length descr = 1 then [] else
   479     val iso_thms = if length descr = 1 then [] else
   480       drop (length newTs) (split_conj_thm
   480       drop (length newTs) (split_conj_thm
   481         (Skip_Proof.prove_global thy5 [] [] iso_t (fn _ => EVERY
   481         (Skip_Proof.prove_global thy5 [] [] iso_t (fn _ => EVERY
   482            [(indtac rep_induct [] THEN_ALL_NEW ObjectLogic.atomize_prems_tac) 1,
   482            [(indtac rep_induct [] THEN_ALL_NEW ObjectLogic.atomize_prems_tac) 1,
   483             REPEAT (rtac TrueI 1),
   483             REPEAT (rtac TrueI 1),
   484             rewrite_goals_tac (mk_meta_eq choice_eq ::
   484             rewrite_goals_tac (mk_meta_eq @{thm choice_eq} ::
   485               symmetric (mk_meta_eq @{thm expand_fun_eq}) :: range_eqs),
   485               symmetric (mk_meta_eq @{thm expand_fun_eq}) :: range_eqs),
   486             rewrite_goals_tac (map symmetric range_eqs),
   486             rewrite_goals_tac (map symmetric range_eqs),
   487             REPEAT (EVERY
   487             REPEAT (EVERY
   488               [REPEAT (eresolve_tac ([rangeE, ex1_implies_ex RS exE] @
   488               [REPEAT (eresolve_tac ([rangeE, ex1_implies_ex RS exE] @
   489                  maps (mk_funs_inv thy5 o #1) newT_iso_axms) 1),
   489                  maps (mk_funs_inv thy5 o #1) newT_iso_axms) 1),