src/HOL/Nominal/nominal_datatype.ML
changeset 59499 14095f771781
parent 59498 50b60f501b05
child 59582 0fbed69ff081
equal deleted inserted replaced
59498:50b60f501b05 59499:14095f771781
  1059         [rtac indrule_lemma' 1,
  1059         [rtac indrule_lemma' 1,
  1060          (Old_Datatype_Aux.ind_tac rep_induct [] THEN_ALL_NEW Object_Logic.atomize_prems_tac ctxt) 1,
  1060          (Old_Datatype_Aux.ind_tac rep_induct [] THEN_ALL_NEW Object_Logic.atomize_prems_tac ctxt) 1,
  1061          EVERY (map (fn (prem, r) => (EVERY
  1061          EVERY (map (fn (prem, r) => (EVERY
  1062            [REPEAT (eresolve_tac ctxt Abs_inverse_thms' 1),
  1062            [REPEAT (eresolve_tac ctxt Abs_inverse_thms' 1),
  1063             simp_tac (put_simpset HOL_basic_ss ctxt addsimps [Thm.symmetric r]) 1,
  1063             simp_tac (put_simpset HOL_basic_ss ctxt addsimps [Thm.symmetric r]) 1,
  1064             DEPTH_SOLVE_1 (ares_tac [prem] 1 ORELSE etac allE 1)]))
  1064             DEPTH_SOLVE_1
       
  1065               (assume_tac ctxt 1 ORELSE resolve_tac ctxt [prem] 1 ORELSE eresolve_tac ctxt [allE] 1)]))
  1065                 (prems ~~ constr_defs))]);
  1066                 (prems ~~ constr_defs))]);
  1066 
  1067 
  1067     val case_names_induct = Old_Datatype_Data.mk_case_names_induct descr'';
  1068     val case_names_induct = Old_Datatype_Data.mk_case_names_induct descr'';
  1068 
  1069 
  1069     (**** prove that new datatypes have finite support ****)
  1070     (**** prove that new datatypes have finite support ****)