equal
deleted
inserted
replaced
731 |> add_cases_induct dt_infos induct |
731 |> add_cases_induct dt_infos induct |
732 |> Theory.parent_path |
732 |> Theory.parent_path |
733 |> store_thmss "splits" new_type_names (map (fn (x, y) => [x, y]) split_thms) |
733 |> store_thmss "splits" new_type_names (map (fn (x, y) => [x, y]) split_thms) |
734 |> snd |
734 |> snd |
735 |> DatatypeRealizer.add_dt_realizers sorts (map snd dt_infos) |
735 |> DatatypeRealizer.add_dt_realizers sorts (map snd dt_infos) |
736 |> DatatypeHooks.invoke (map fst dt_infos); |
736 |> DatatypeHooks.all (map fst dt_infos); |
737 in |
737 in |
738 ({distinct = distinct, |
738 ({distinct = distinct, |
739 inject = inject, |
739 inject = inject, |
740 exhaustion = exhaustion, |
740 exhaustion = exhaustion, |
741 rec_thms = rec_thms, |
741 rec_thms = rec_thms, |
791 |> put_datatypes (fold Symtab.update dt_infos dt_info) |
791 |> put_datatypes (fold Symtab.update dt_infos dt_info) |
792 |> add_cases_induct dt_infos induct |
792 |> add_cases_induct dt_infos induct |
793 |> Theory.parent_path |
793 |> Theory.parent_path |
794 |> store_thmss "splits" new_type_names (map (fn (x, y) => [x, y]) split_thms) |> snd |
794 |> store_thmss "splits" new_type_names (map (fn (x, y) => [x, y]) split_thms) |> snd |
795 |> DatatypeRealizer.add_dt_realizers sorts (map snd dt_infos) |
795 |> DatatypeRealizer.add_dt_realizers sorts (map snd dt_infos) |
796 |> DatatypeHooks.invoke (map fst dt_infos); |
796 |> DatatypeHooks.all (map fst dt_infos); |
797 in |
797 in |
798 ({distinct = distinct, |
798 ({distinct = distinct, |
799 inject = inject, |
799 inject = inject, |
800 exhaustion = casedist_thms, |
800 exhaustion = casedist_thms, |
801 rec_thms = rec_thms, |
801 rec_thms = rec_thms, |
904 |> add_cases_induct dt_infos induction' |
904 |> add_cases_induct dt_infos induction' |
905 |> Theory.parent_path |
905 |> Theory.parent_path |
906 |> store_thmss "splits" new_type_names (map (fn (x, y) => [x, y]) split_thms) |
906 |> store_thmss "splits" new_type_names (map (fn (x, y) => [x, y]) split_thms) |
907 |> snd |
907 |> snd |
908 |> DatatypeRealizer.add_dt_realizers sorts (map snd dt_infos) |
908 |> DatatypeRealizer.add_dt_realizers sorts (map snd dt_infos) |
909 |> DatatypeHooks.invoke (map fst dt_infos); |
909 |> DatatypeHooks.all (map fst dt_infos); |
910 in |
910 in |
911 ({distinct = distinct, |
911 ({distinct = distinct, |
912 inject = inject, |
912 inject = inject, |
913 exhaustion = casedist_thms, |
913 exhaustion = casedist_thms, |
914 rec_thms = rec_thms, |
914 rec_thms = rec_thms, |