src/HOL/Tools/record.ML
changeset 74383 107941e8fa01
parent 74292 39c98371606f
child 74537 44e4f09b1cc4
equal deleted inserted replaced
74382:8d0294d877bd 74383:107941e8fa01
  1806      case_distribs = [], split = Drule.dummy_thm, split_asm = Drule.dummy_thm, disc_defs = [],
  1806      case_distribs = [], split = Drule.dummy_thm, split_asm = Drule.dummy_thm, disc_defs = [],
  1807      disc_thmss = [], discIs = [], disc_eq_cases = [], sel_defs = [], sel_thmss = [sel_thms],
  1807      disc_thmss = [], discIs = [], disc_eq_cases = [], sel_defs = [], sel_thmss = [sel_thms],
  1808      distinct_discsss = [], exhaust_discs = [], exhaust_sels = [], collapses = [], expands = [],
  1808      distinct_discsss = [], exhaust_discs = [], exhaust_sels = [], collapses = [], expands = [],
  1809      split_sels = [], split_sel_asms = [], case_eq_ifs = []};
  1809      split_sels = [], split_sel_asms = [], case_eq_ifs = []};
  1810 
  1810 
  1811 fun lhs_of_equation (Const (\<^const_name>\<open>Pure.eq\<close>, _) $ t $ _) = t
  1811 fun lhs_of_equation \<^Const_>\<open>Pure.eq _ for t _\<close> = t
  1812   | lhs_of_equation (\<^const>\<open>Trueprop\<close> $ (Const (\<^const_name>\<open>HOL.eq\<close>, _) $ t $ _)) = t;
  1812   | lhs_of_equation \<^Const_>\<open>Trueprop for \<^Const_>\<open>HOL.eq _ for t _\<close>\<close> = t;
  1813 
  1813 
  1814 fun add_spec_rule rule =
  1814 fun add_spec_rule rule =
  1815   let val head = head_of (lhs_of_equation (Thm.prop_of rule))
  1815   let val head = head_of (lhs_of_equation (Thm.prop_of rule))
  1816   in Spec_Rules.add_global Binding.empty Spec_Rules.equational [head] [rule] end;
  1816   in Spec_Rules.add_global Binding.empty Spec_Rules.equational [head] [rule] end;
  1817 
  1817