2
(ld ;; Newline to fool ACL2/cert.pl dependency scanner
4
(acl2::begin-book);$ACL2s-Preamble$|#
11
;; load in & build up some theory on integer division
13
(local (include-book "arithmetic-5/top" :dir :system))
16
(implies (and (integerp x)
21
:rule-classes (:linear :rewrite))
25
(equal (floor x y) x)))
28
(implies (and (integerp x)
33
:hints (("Goal" :in-theory (disable floor)
35
:rule-classes (:linear :rewrite))
37
(defthm rem-floor-decomp
38
(implies (and (integerp x)
52
(implies (acl2-numberp x)
57
(implies (and (integerp x)
60
:rule-classes (:rewrite :type-prescription))
62
(defthm rem-upper-bound
63
(implies (and (integerp x) (<= 0 x)
66
:rule-classes (:linear :rewrite))
68
(local (in-theory (disable rem)))
70
(defthm rem-lower-bound2
71
(implies (and (integerp x) (<= 0 x) (integerp y) (<= 0 y))
73
:rule-classes (:linear :rewrite)
74
:hints (("Goal" :cases ((equal x 0)
77
(defthm rem-upper-bound2
78
(implies (and (integerp x) (<= 0 x) (integerp y) (< 0 y))
80
:rule-classes (:linear :rewrite)
81
:hints (("Goal" :cases ((equal x 0)))))
83
(defthm floor-integerp
84
(implies (and (integerp x)
86
(integerp (floor x y)))
87
:rule-classes (:rewrite :type-prescription))
90
(implies (and (integerp x)
95
:rule-classes (:linear :rewrite)))
97
(in-theory (disable rem floor))#|ACL2s-ToDo-Line|#