src/HOL/Tools/Old_Datatype/old_rep_datatype.ML
changeset 66251 cd935b7cb3fb
parent 63352 4eaf35781b23
child 67713 041898537c19
equal deleted inserted replaced
66250:56a87a5093be 66251:cd935b7cb3fb
   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;