src/HOL/Tools/lin_arith.ML
changeset 57952 1a9a6dfc255f
parent 55990 41c6b99c5fb7
child 57955 f28337c2c0a8
equal deleted inserted replaced
57951:7896762b638b 57952:1a9a6dfc255f
   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