equal
deleted
inserted
replaced
794 simpset = put_simpset HOL_basic_ss @{context} |> Simplifier.add_cong @{thm if_weak_cong} |> simpset_of, |
794 simpset = put_simpset HOL_basic_ss @{context} |> Simplifier.add_cong @{thm if_weak_cong} |> simpset_of, |
795 number_of = number_of}); |
795 number_of = number_of}); |
796 |
796 |
797 (* FIXME !?? *) |
797 (* FIXME !?? *) |
798 fun add_arith_facts ctxt = |
798 fun add_arith_facts ctxt = |
799 Simplifier.add_prems (Arith_Data.get_arith_facts ctxt) ctxt; |
799 Simplifier.add_prems (Named_Theorems.get ctxt @{named_theorems arith}) ctxt; |
800 |
800 |
801 val simproc = add_arith_facts #> Fast_Arith.lin_arith_simproc; |
801 val simproc = add_arith_facts #> Fast_Arith.lin_arith_simproc; |
802 |
802 |
803 |
803 |
804 (* generic refutation procedure *) |
804 (* generic refutation procedure *) |
887 Attrib.setup @{binding arith_split} (Scan.succeed (Thm.declaration_attribute add_split)) |
887 Attrib.setup @{binding arith_split} (Scan.succeed (Thm.declaration_attribute add_split)) |
888 "declaration of split rules for arithmetic procedure" #> |
888 "declaration of split rules for arithmetic procedure" #> |
889 Method.setup @{binding linarith} |
889 Method.setup @{binding linarith} |
890 (Scan.succeed (fn ctxt => |
890 (Scan.succeed (fn ctxt => |
891 METHOD (fn facts => |
891 METHOD (fn facts => |
892 HEADGOAL (Method.insert_tac (Arith_Data.get_arith_facts ctxt @ facts) |
892 HEADGOAL (Method.insert_tac (Named_Theorems.get ctxt @{named_theorems arith} @ facts) |
893 THEN' tac ctxt)))) "linear arithmetic" #> |
893 THEN' tac ctxt)))) "linear arithmetic" #> |
894 Arith_Data.add_tactic "linear arithmetic" gen_tac; |
894 Arith_Data.add_tactic "linear arithmetic" gen_tac; |
895 |
895 |
896 val setup = |
896 val setup = |
897 init_arith_data |
897 init_arith_data |