Fixed bug in adjustcoeffeq_wp.
authorberghofe
Tue, 08 Apr 2003 09:44:21 +0200
changeset 13905 3e496c70f2f3
parent 13904 c13e6e218a69
child 13906 eefdd6b14508
Fixed bug in adjustcoeffeq_wp.
src/HOL/Integ/cooper_proof.ML
src/HOL/Tools/Presburger/cooper_proof.ML
--- a/src/HOL/Integ/cooper_proof.ML	Tue Apr 08 09:40:30 2003 +0200
+++ b/src/HOL/Integ/cooper_proof.ML	Tue Apr 08 09:44:21 2003 +0200
@@ -274,7 +274,7 @@
        val m = l div (dest_numeral c) 
        val n = abs (m)
        val xtm = (HOLogic.mk_binop "op *" ((mk_numeral ((m div n)*l) ), x)) 
-       val rs = (HOLogic.mk_binrel "op <" (zero,linear_sub [] one (HOLogic.mk_binop "op +" ( xtm ,( linear_cmul n z) )))) 
+       val rs = (HOLogic.mk_binrel "op <" (zero,linear_sub [] (mk_numeral n) (HOLogic.mk_binop "op +" ( xtm ,( linear_cmul n z) )))) 
        in (ACPI(n,fm),rs)
        end
   else  let val rs = (HOLogic.mk_binrel "op <" (zero,linear_sub [] one rt )) 
@@ -765,21 +765,21 @@
      val cx = cterm_of sg x
      val ca = cterm_of sg a
    in case p of
-     "op <" => let val pre = prove_elementar sg "ss" 
+     "op <" => let val pre = prove_elementar sg "lf" 
 	                  (HOLogic.mk_binrel "op <" (Const("0",HOLogic.intT),(mk_numeral k)))
 	           val th1 = (pre RS (instantiate' [] [Some ck,Some ca,Some cc, Some cx, Some ct] (ac_lt_eq)))
-		      in [th1,(prove_elementar sg "ss" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
+		      in [th1,(prove_elementar sg "lf" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
                    end
-    |"op =" =>let val pre = prove_elementar sg "ss" 
+    |"op =" =>let val pre = prove_elementar sg "lf" 
 	    (HOLogic.Not $ (HOLogic.mk_binrel "op =" (Const("0",HOLogic.intT),(mk_numeral k))))
 	          in let val th1 = (pre RS(instantiate' [] [Some ck,Some ca,Some cc, Some cx, Some ct] (ac_eq_eq)))
-	             in [th1,(prove_elementar sg "ss" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
+	             in [th1,(prove_elementar sg "lf" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
                       end
                   end
-    |"Divides.op dvd" =>let val pre = prove_elementar sg "ss" 
+    |"Divides.op dvd" =>let val pre = prove_elementar sg "lf" 
 	   (HOLogic.Not $ (HOLogic.mk_binrel "op =" (Const("0",HOLogic.intT),(mk_numeral k))))
 	                 val th1 = (pre RS (instantiate' [] [Some ck,Some ca,Some cc, Some cx, Some ct]) (ac_dvd_eq))
-                         in [th1,(prove_elementar sg "ss" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
+                         in [th1,(prove_elementar sg "lf" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
                         
                           end
   end
@@ -789,7 +789,7 @@
      val cc = cterm_of sg c
      val ct = cterm_of sg t
      val cx = cterm_of sg x
-     val pre = prove_elementar sg "ss" 
+     val pre = prove_elementar sg "lf" 
        (HOLogic.mk_binrel "op <" (Const("0",HOLogic.intT),(mk_numeral k)))
        val th1 = (pre RS (instantiate' [] [Some ck,Some cc, Some cx, Some ct] (ac_pi_eq)))
 
--- a/src/HOL/Tools/Presburger/cooper_proof.ML	Tue Apr 08 09:40:30 2003 +0200
+++ b/src/HOL/Tools/Presburger/cooper_proof.ML	Tue Apr 08 09:44:21 2003 +0200
@@ -274,7 +274,7 @@
        val m = l div (dest_numeral c) 
        val n = abs (m)
        val xtm = (HOLogic.mk_binop "op *" ((mk_numeral ((m div n)*l) ), x)) 
-       val rs = (HOLogic.mk_binrel "op <" (zero,linear_sub [] one (HOLogic.mk_binop "op +" ( xtm ,( linear_cmul n z) )))) 
+       val rs = (HOLogic.mk_binrel "op <" (zero,linear_sub [] (mk_numeral n) (HOLogic.mk_binop "op +" ( xtm ,( linear_cmul n z) )))) 
        in (ACPI(n,fm),rs)
        end
   else  let val rs = (HOLogic.mk_binrel "op <" (zero,linear_sub [] one rt )) 
@@ -765,21 +765,21 @@
      val cx = cterm_of sg x
      val ca = cterm_of sg a
    in case p of
-     "op <" => let val pre = prove_elementar sg "ss" 
+     "op <" => let val pre = prove_elementar sg "lf" 
 	                  (HOLogic.mk_binrel "op <" (Const("0",HOLogic.intT),(mk_numeral k)))
 	           val th1 = (pre RS (instantiate' [] [Some ck,Some ca,Some cc, Some cx, Some ct] (ac_lt_eq)))
-		      in [th1,(prove_elementar sg "ss" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
+		      in [th1,(prove_elementar sg "lf" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
                    end
-    |"op =" =>let val pre = prove_elementar sg "ss" 
+    |"op =" =>let val pre = prove_elementar sg "lf" 
 	    (HOLogic.Not $ (HOLogic.mk_binrel "op =" (Const("0",HOLogic.intT),(mk_numeral k))))
 	          in let val th1 = (pre RS(instantiate' [] [Some ck,Some ca,Some cc, Some cx, Some ct] (ac_eq_eq)))
-	             in [th1,(prove_elementar sg "ss" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
+	             in [th1,(prove_elementar sg "lf" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
                       end
                   end
-    |"Divides.op dvd" =>let val pre = prove_elementar sg "ss" 
+    |"Divides.op dvd" =>let val pre = prove_elementar sg "lf" 
 	   (HOLogic.Not $ (HOLogic.mk_binrel "op =" (Const("0",HOLogic.intT),(mk_numeral k))))
 	                 val th1 = (pre RS (instantiate' [] [Some ck,Some ca,Some cc, Some cx, Some ct]) (ac_dvd_eq))
-                         in [th1,(prove_elementar sg "ss" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
+                         in [th1,(prove_elementar sg "lf" (HOLogic.mk_eq (snd (qe_get_terms th1) ,rs)))] MRS trans
                         
                           end
   end
@@ -789,7 +789,7 @@
      val cc = cterm_of sg c
      val ct = cterm_of sg t
      val cx = cterm_of sg x
-     val pre = prove_elementar sg "ss" 
+     val pre = prove_elementar sg "lf" 
        (HOLogic.mk_binrel "op <" (Const("0",HOLogic.intT),(mk_numeral k)))
        val th1 = (pre RS (instantiate' [] [Some ck,Some cc, Some cx, Some ct] (ac_pi_eq)))