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 |