src/HOL/Nominal/nominal_datatype.ML
changeset 35625 9c818cab0dd0
parent 35402 115a5a95710a
child 35742 eb8d2f668bfc
equal deleted inserted replaced
35624:c4e29a0bb8c1 35625:9c818cab0dd0
  1072     val dt_induct_prop = Datatype_Prop.make_ind descr' sorts;
  1072     val dt_induct_prop = Datatype_Prop.make_ind descr' sorts;
  1073     val dt_induct = Goal.prove_global thy8 []
  1073     val dt_induct = Goal.prove_global thy8 []
  1074       (Logic.strip_imp_prems dt_induct_prop) (Logic.strip_imp_concl dt_induct_prop)
  1074       (Logic.strip_imp_prems dt_induct_prop) (Logic.strip_imp_concl dt_induct_prop)
  1075       (fn {prems, ...} => EVERY
  1075       (fn {prems, ...} => EVERY
  1076         [rtac indrule_lemma' 1,
  1076         [rtac indrule_lemma' 1,
  1077          (indtac rep_induct [] THEN_ALL_NEW ObjectLogic.atomize_prems_tac) 1,
  1077          (indtac rep_induct [] THEN_ALL_NEW Object_Logic.atomize_prems_tac) 1,
  1078          EVERY (map (fn (prem, r) => (EVERY
  1078          EVERY (map (fn (prem, r) => (EVERY
  1079            [REPEAT (eresolve_tac Abs_inverse_thms' 1),
  1079            [REPEAT (eresolve_tac Abs_inverse_thms' 1),
  1080             simp_tac (HOL_basic_ss addsimps [symmetric r]) 1,
  1080             simp_tac (HOL_basic_ss addsimps [symmetric r]) 1,
  1081             DEPTH_SOLVE_1 (ares_tac [prem] 1 ORELSE etac allE 1)]))
  1081             DEPTH_SOLVE_1 (ares_tac [prem] 1 ORELSE etac allE 1)]))
  1082                 (prems ~~ constr_defs))]);
  1082                 (prems ~~ constr_defs))]);