Included Books
other
(in-package "ACL2")
include-book
(include-book "negative-syntaxp")
local
(local (include-book "predicate"))
local
(local (include-book "fp2"))
quotient-not-integerpencapsulate
(encapsulate nil (local (defthm no-room-for-an-integerp-between-0-and-1 (implies (and (< x 1) (< 0 x)) (not (integerp x))))) (defthm quotient-not-integerp (implies (and (< i j) (<= 0 i) (<= 0 j) (case-split (< 0 i)) (case-split (< 0 j)) (case-split (rationalp j))) (not (integerp (/ i j))))))
integerp-minus-auxencapsulate
(encapsulate nil (local (defthm minus-1-rewrite (equal (* -1 x) (- x)))) (defthm integerp-minus-aux (implies (acl2-numberp x) (equal (integerp (* -1 x)) (integerp x)))))
integerp-minustheorem
(defthm integerp-minus (implies (and (syntaxp (negative-syntaxp x)) (case-split (acl2-numberp x))) (equal (integerp x) (integerp (* -1 x)))))
in-theory
(in-theory (disable integerp-minus-aux))
integerp-sum-take-out-known-integertheorem
(defthm integerp-sum-take-out-known-integer (implies (integerp n) (and (equal (integerp (+ n x)) (integerp (fix x))) (equal (integerp (+ x n)) (integerp (fix x))))))
integerp-sum-take-out-known-integer-3theorem
(defthm integerp-sum-take-out-known-integer-3 (implies (integerp n) (and (equal (integerp (+ x n y)) (integerp (fix (+ x y)))) (equal (integerp (+ x y n)) (integerp (fix (+ x y)))))) :hints (("Goal" :in-theory (disable integerp-sum-take-out-known-integer) :use (:instance integerp-sum-take-out-known-integer (x (+ x y))))))
integerp-prodtheorem
(defthm integerp-prod (implies (and (integerp x) (integerp y)) (integerp (* x y))) :rule-classes (:rewrite :type-prescription))
integerp-prod-of-3-last-twotheorem
(defthm integerp-prod-of-3-last-two (implies (and (integerp (* b c)) (integerp a)) (integerp (* a b c))))
integerp-prod-of-3-first-and-lasttheorem
(defthm integerp-prod-of-3-first-and-last (implies (and (integerp (* a c)) (integerp b)) (integerp (* a b c))) :hints (("Goal" :in-theory (disable integerp-prod-of-3-last-two) :use (:instance integerp-prod-of-3-last-two (a b) (b a)))))
integerp-prod-of-3-first-twotheorem
(defthm integerp-prod-of-3-first-two (implies (and (integerp (* a b)) (integerp c)) (integerp (* a b c))) :hints (("Goal" :in-theory (disable integerp-prod-of-3-last-two integerp-prod-of-3-first-and-last) :use (:instance integerp-prod-of-3-last-two (a c) (c a)))))