takes & in premises apart now.
authornipkow
Thu, 07 Jul 2005 12:42:50 +0200
changeset 16735 008d089822e3
parent 16734 2c76db916c51
child 16736 1e792b32abef
takes & in premises apart now.
src/Provers/Arith/fast_lin_arith.ML
--- a/src/Provers/Arith/fast_lin_arith.ML	Thu Jul 07 12:42:21 2005 +0200
+++ b/src/Provers/Arith/fast_lin_arith.ML	Thu Jul 07 12:42:50 2005 +0200
@@ -30,6 +30,7 @@
   val not_leD:          thm (* ~(m <= n) ==> n < m *)
   val sym:		thm (* x = y ==> y = x *)
   val mk_Eq: thm -> thm
+  val atomize: thm -> thm list
   val mk_Trueprop: term -> term
   val neg_prop: term -> term
   val is_False: thm -> bool
@@ -731,7 +732,7 @@
 *)
 fun lin_arith_prover sg ss concl =
 let
-    val thms = prems_of_ss ss;
+    val thms = List.concat(map LA_Logic.atomize (prems_of_ss ss));
     val Hs = map (#prop o rep_thm) thms
     val Tconcl = LA_Logic.mk_Trueprop concl
 in case prove sg ([],[]) false Hs Tconcl of (* concl provable? *)