568 ([((prfx (Binding.name "simps"), []), [(simps, [])]), |
568 ([((prfx (Binding.name "simps"), []), [(simps, [])]), |
569 ((prfx (Binding.name "inducts"), []), [(inducts, [])]), |
569 ((prfx (Binding.name "inducts"), []), [(inducts, [])]), |
570 ((prfx (Binding.name "splits"), []), [(maps (fn (x, y) => [x, y]) splits, [])]), |
570 ((prfx (Binding.name "splits"), []), [(maps (fn (x, y) => [x, y]) splits, [])]), |
571 ((Binding.empty, [Simplifier.simp_add]), |
571 ((Binding.empty, [Simplifier.simp_add]), |
572 [(flat case_rewrites @ flat distinct @ rec_rewrites, [])]), |
572 [(flat case_rewrites @ flat distinct @ rec_rewrites, [])]), |
573 ((Binding.empty, [Code.add_default_eqn_attribute Code.Equation]), [(rec_rewrites, [])]), |
|
574 ((Binding.empty, [iff_add]), [(flat inject, [])]), |
573 ((Binding.empty, [iff_add]), [(flat inject, [])]), |
575 ((Binding.empty, [Classical.safe_elim NONE]), |
574 ((Binding.empty, [Classical.safe_elim NONE]), |
576 [(map (fn th => th RS notE) (flat distinct), [])]), |
575 [(map (fn th => th RS notE) (flat distinct), [])]), |
577 ((Binding.empty, [Simplifier.cong_add]), [(case_cong_weaks, [])]), |
576 ((Binding.empty, [Simplifier.cong_add]), [(case_cong_weaks, [])]), |
578 ((Binding.empty, [Induct.induct_simp_add]), [(flat (distinct @ inject), [])])] @ |
577 ((Binding.empty, [Induct.induct_simp_add]), [(flat (distinct @ inject), [])])] @ |
579 named_rules @ unnamed_rules) |
578 named_rules @ unnamed_rules) |
580 |> snd |
579 |> snd |
|
580 |> Code.declare_default_eqns_global (map (rpair true) rec_rewrites) |
581 |> Old_Datatype_Data.register dt_infos |
581 |> Old_Datatype_Data.register dt_infos |
582 |> Context.theory_map (fold2 Case_Translation.register case_combs constrss) |
582 |> Context.theory_map (fold2 Case_Translation.register case_combs constrss) |
583 |> Old_Datatype_Data.interpretation_data (config, dt_names) |
583 |> Old_Datatype_Data.interpretation_data (config, dt_names) |
584 |> pair dt_names |
584 |> pair dt_names |
585 end; |
585 end; |