Included Books
other
(in-package "ACL2")
local
(local (include-book "../pass1/top"))
local
(local (include-book "cancel-terms-helper"))
local
(local (defthm *-preserves-<=-1 (implies (and (<= x1 x2) (<= 0 x1) (<= 0 y1) (real/rationalp x1) (real/rationalp x2) (real/rationalp y1)) (<= (* x1 y1) (* x2 y1))) :rule-classes :linear))
local
(local (defthm *-preserves-<=-2 (implies (and (<= y1 y2) (<= 0 x2) (<= 0 y1) (real/rationalp x2) (real/rationalp y1) (real/rationalp y2)) (<= (* x2 y1) (* x2 y2))) :rule-classes :linear))
local
(local (defthm *-preserves-<-1 (implies (and (< x1 x2) (<= 0 x1) (< 0 y1) (real/rationalp x1) (real/rationalp x2) (real/rationalp y1)) (< (* x1 y1) (* x2 y1))) :rule-classes :linear))
local
(local (defthm *-preserves-<-2 (implies (and (< y1 y2) (< 0 x2) (<= 0 y1) (real/rationalp x2) (real/rationalp y1) (real/rationalp y2)) (< (* x2 y1) (* x2 y2))) :rule-classes :linear))
*-preserves-<=-for-nonnegativestheorem
(defthm *-preserves-<=-for-nonnegatives (implies (and (<= x1 x2) (<= y1 y2) (<= 0 x1) (<= 0 y1) (real/rationalp x1) (real/rationalp x2) (real/rationalp y1) (real/rationalp y2)) (<= (* x1 y1) (* x2 y2))) :rule-classes :linear)
*-preserves-<-for-nonnegativestheorem
(defthm *-preserves-<-for-nonnegatives (implies (and (< x1 x2) (< y1 y2) (<= 0 x1) (<= 0 y1) (real/rationalp x1) (real/rationalp x2) (real/rationalp y1) (real/rationalp y2)) (< (* x1 y1) (* x2 y2))) :rule-classes :linear :hints (("Goal" :cases ((equal x1 0) (equal y1 0)))))
*-preserves-<-for-nonnegatives-stronger-1theorem
(defthm *-preserves-<-for-nonnegatives-stronger-1 (implies (and (<= x1 x2) (< y1 y2) (< 0 x1) (<= 0 y1) (real/rationalp x1) (real/rationalp x2) (real/rationalp y1) (real/rationalp y2)) (< (* x1 y1) (* x2 y2))) :rule-classes :linear)
*-preserves-<-for-nonnegatives-stronger-2theorem
(defthm *-preserves-<-for-nonnegatives-stronger-2 (implies (and (< x1 x2) (<= y1 y2) (<= 0 x1) (< 0 y1) (real/rationalp x1) (real/rationalp x2) (real/rationalp y1) (real/rationalp y2)) (< (* x1 y1) (* x2 y2))) :rule-classes :linear)
local
(local (in-theory (disable *-preserves-<=-1 *-preserves-<=-2 *-preserves-<-1 *-preserves-<-2)))
*-weakly-monotonictheorem
(defthm *-weakly-monotonic (implies (and (<= y y+) (real/rationalp x) (<= 0 x)) (<= (* x y) (* x y+))) :hints (("Goal" :cases ((equal x 0)))) :rule-classes ((:forward-chaining :trigger-terms ((* x y) (* x y+))) (:linear) (:forward-chaining :trigger-terms ((* y x) (* y+ x)) :corollary (implies (and (<= y y+) (real/rationalp x) (<= 0 x)) (<= (* y x) (* y+ x)))) (:linear :corollary (implies (and (<= y y+) (real/rationalp x) (<= 0 x)) (<= (* y x) (* y+ x))))))
*-strongly-monotonictheorem
(defthm *-strongly-monotonic (implies (and (< y y+) (real/rationalp x) (< 0 x)) (< (* x y) (* x y+))) :rule-classes ((:forward-chaining :trigger-terms ((* x y) (* x y+))) (:linear) (:forward-chaining :trigger-terms ((* y x) (* y+ x)) :corollary (implies (and (< y y+) (real/rationalp x) (< 0 x)) (< (* y x) (* y+ x)))) (:linear :corollary (implies (and (< y y+) (real/rationalp x) (< 0 x)) (< (* y x) (* y+ x))))))
*-weakly-monotonic-negative-multipliertheorem
(defthm *-weakly-monotonic-negative-multiplier (implies (and (<= y y+) (real/rationalp x) (< x 0)) (<= (* x y+) (* x y))) :rule-classes ((:forward-chaining :trigger-terms ((* x y) (* x y+))) (:linear) (:forward-chaining :trigger-terms ((* y x) (* y+ x)) :corollary (implies (and (<= y y+) (real/rationalp x) (< x 0)) (<= (* y+ x) (* y x)))) (:linear :corollary (implies (and (<= y y+) (real/rationalp x) (< x 0)) (<= (* y+ x) (* y x))))))
*-strongly-monotonic-negative-multipliertheorem
(defthm *-strongly-monotonic-negative-multiplier (implies (and (< y y+) (real/rationalp x) (< x 0)) (< (* x y+) (* x y))) :rule-classes ((:forward-chaining :trigger-terms ((* x y) (* x y+))) (:linear) (:forward-chaining :trigger-terms ((* y x) (* y+ x)) :corollary (implies (and (< y y+) (real/rationalp x) (< x 0)) (< (* y+ x) (* y x)))) (:linear :corollary (implies (and (< y y+) (real/rationalp x) (< x 0)) (< (* y+ x) (* y x))))))
/-weakly-monotonictheorem
(defthm /-weakly-monotonic (implies (and (<= y y+) (real/rationalp y) (real/rationalp y+) (< 0 y)) (<= (/ y+) (/ y))) :rule-classes ((:forward-chaining :trigger-terms ((/ y+) (/ y))) :linear))
/-strongly-monotonictheorem
(defthm /-strongly-monotonic (implies (and (< y y+) (real/rationalp y) (real/rationalp y+) (< 0 y)) (< (/ y+) (/ y))) :rule-classes ((:forward-chaining :trigger-terms ((/ y+) (/ y))) :linear))
x*y>1-positivetheorem
(defthm x*y>1-positive (implies (and (< 1 x) (< 1 y) (real/rationalp x) (real/rationalp y)) (< 1 (* x y))) :rule-classes (:linear :rewrite))
x*y>1-positive-strongertheorem
(defthm x*y>1-positive-stronger (implies (and (or (and (< 1 x) (<= 1 y)) (and (<= 1 x) (< 1 y))) (real/rationalp x) (real/rationalp y)) (< 1 (* x y))) :rule-classes (:linear :rewrite))
x*y>=1-positivetheorem
(defthm x*y>=1-positive (implies (and (<= 1 x) (<= 1 y) (real/rationalp x) (real/rationalp y)) (<= 1 (* x y))) :rule-classes (:linear :rewrite))
x*y>1-negativetheorem
(defthm x*y>1-negative (implies (and (< x -1) (< y -1) (real/rationalp x) (real/rationalp y)) (< 1 (* x y))) :hints (("Goal" :use ((:instance x*y>1-positive (x (- x)) (y (- y)))))) :rule-classes (:linear :rewrite))
x*y>=1-negativetheorem
(defthm x*y>=1-negative (implies (and (<= x -1) (<= y -1) (real/rationalp x) (real/rationalp y)) (<= 1 (* x y))) :hints (("Goal" :use ((:instance x*y>=1-positive (x (- x)) (y (- y)))))) :rule-classes (:linear :rewrite))
in-theory
(in-theory (disable x*y>1-positive-stronger x*y>1-negative x*y>=1-negative))
ratio-theory-of-1-atheorem
(defthm ratio-theory-of-1-a (implies (and (real/rationalp x) (real/rationalp y) (<= 0 x) (< 0 y) (<= x y)) (and (<= 0 (/ x y)) (<= (/ x y) 1))) :rule-classes :linear)
ratio-theory-of-1-btheorem
(defthm ratio-theory-of-1-b (implies (and (real/rationalp x) (real/rationalp y) (<= 0 x) (< x y)) (and (<= 0 (/ x y)) (< (/ x y) 1))) :rule-classes :linear)
ratio-theory-of-1-ctheorem
(defthm ratio-theory-of-1-c (implies (and (real/rationalp x) (real/rationalp y) (< 0 x) (< 0 y) (<= y x)) (and (< 0 (/ x y)) (<= 1 (/ x y)))) :rule-classes :linear)
ratio-theory-of-1-dtheorem
(defthm ratio-theory-of-1-d (implies (and (real/rationalp x) (real/rationalp y) (< 0 y) (< y x)) (and (< 0 (/ x y)) (< 1 (/ x y)))) :rule-classes :linear)
ratio-theory-of-1-etheorem
(defthm ratio-theory-of-1-e (implies (and (real/rationalp x) (real/rationalp y) (<= 0 x) (< y 0) (<= x (- y))) (and (<= (/ x y) 0) (<= -1 (/ x y)))) :rule-classes :linear)
ratio-theory-of-1-ftheorem
(defthm ratio-theory-of-1-f (implies (and (real/rationalp x) (real/rationalp y) (<= 0 x) (< x (- y))) (and (<= (/ x y) 0) (< -1 (/ x y)))) :rule-classes :linear)
ratio-theory-of-1-gtheorem
(defthm ratio-theory-of-1-g (implies (and (real/rationalp x) (real/rationalp y) (< 0 x) (< y 0) (<= (- y) x)) (<= (/ x y) -1)) :rule-classes :linear)
ratio-theory-of-1-htheorem
(defthm ratio-theory-of-1-h (implies (and (real/rationalp x) (real/rationalp y) (< y 0) (< (- y) x)) (< (/ x y) -1)) :rule-classes :linear)
ratio-theory-of-1-itheorem
(defthm ratio-theory-of-1-i (implies (and (real/rationalp x) (real/rationalp y) (<= x 0) (< 0 y) (<= (- x) y)) (and (<= (/ x y) 0) (<= -1 (/ x y)))) :rule-classes :linear)
ratio-theory-of-1-jtheorem
(defthm ratio-theory-of-1-j (implies (and (real/rationalp x) (real/rationalp y) (<= x 0) (< (- x) y)) (and (<= (/ x y) 0) (< -1 (/ x y)))) :rule-classes :linear)
ratio-theory-of-1-ktheorem
(defthm ratio-theory-of-1-k (implies (and (real/rationalp x) (real/rationalp y) (< x 0) (< 0 y) (<= y (- x))) (<= (/ x y) -1)) :rule-classes :linear)
ratio-theory-of-1-ltheorem
(defthm ratio-theory-of-1-l (implies (and (real/rationalp x) (real/rationalp y) (< 0 y) (< y (- x))) (< (/ x y) -1)) :rule-classes :linear)
ratio-theory-of-1-mtheorem
(defthm ratio-theory-of-1-m (implies (and (real/rationalp x) (real/rationalp y) (< x 0) (< y 0) (<= x y)) (<= 1 (/ x y))) :rule-classes :linear)
ratio-theory-of-1-ntheorem
(defthm ratio-theory-of-1-n (implies (and (real/rationalp x) (real/rationalp y) (< y 0) (< x y)) (< 1 (/ x y))) :rule-classes :linear)
ratio-theory-of-1-otheorem
(defthm ratio-theory-of-1-o (implies (and (real/rationalp x) (real/rationalp y) (<= x 0) (< y 0) (<= y x)) (and (<= 0 (/ x y)) (<= (/ x y) 1))) :rule-classes :linear)
ratio-theory-of-1-ptheorem
(defthm ratio-theory-of-1-p (implies (and (real/rationalp x) (real/rationalp y) (<= x 0) (< y x)) (and (<= 0 (/ x y)) (< (/ x y) 1))) :rule-classes :linear)
other
(deftheory ratio-theory-of-1 '(ratio-theory-of-1-a ratio-theory-of-1-b ratio-theory-of-1-c ratio-theory-of-1-d ratio-theory-of-1-e ratio-theory-of-1-f ratio-theory-of-1-g ratio-theory-of-1-h ratio-theory-of-1-i ratio-theory-of-1-j ratio-theory-of-1-k ratio-theory-of-1-l ratio-theory-of-1-m ratio-theory-of-1-n ratio-theory-of-1-o ratio-theory-of-1-p))
in-theory
(in-theory (disable ratio-theory-of-1))