642 [REPEAT (eresolve_tac Abs_inverse_thms 1), |
642 [REPEAT (eresolve_tac Abs_inverse_thms 1), |
643 simp_tac (HOL_basic_ss addsimps (Thm.symmetric r :: Rep_inverse_thms')) 1, |
643 simp_tac (HOL_basic_ss addsimps (Thm.symmetric r :: Rep_inverse_thms')) 1, |
644 DEPTH_SOLVE_1 (ares_tac [prem] 1 ORELSE etac allE 1)])) |
644 DEPTH_SOLVE_1 (ares_tac [prem] 1 ORELSE etac allE 1)])) |
645 (prems ~~ (constr_defs @ map mk_meta_eq iso_char_thms)))]); |
645 (prems ~~ (constr_defs @ map mk_meta_eq iso_char_thms)))]); |
646 |
646 |
647 val ([dt_induct'], thy7) = |
647 val ([(_, [dt_induct'])], thy7) = |
648 thy6 |
648 thy6 |
649 |> Global_Theory.add_thms |
649 |> Global_Theory.note_thmss "" |
650 [((Binding.qualify true big_name (Binding.name "induct"), dt_induct), |
650 [((Binding.qualify true big_name (Binding.name "induct"), [case_names_induct]), |
651 [case_names_induct])] |
651 [([dt_induct], [])])] |
652 ||> Theory.checkpoint; |
652 ||> Theory.checkpoint; |
653 |
653 |
654 in |
654 in |
655 ((constr_inject', distinct_thms', dt_induct'), thy7) |
655 ((constr_inject', distinct_thms', dt_induct'), thy7) |
656 end; |
656 end; |