latte-integers.plus
The addition defined on ℤ.
+
(+ [m int] [n int])
((plus m) n)
Definition: The function that adds m
to n
.
add-prop
(add-prop [m int])
(lambda
[g (==> int int)]
(and (= (g zero) m) (forall [x int] (= (g (succ x)) (succ (g x))))))
Definition: The property of the addition function on integers.
add-unique
(add-unique [m int])
(q/unique (add-prop m))
Theorem: The unicity of the addition function, through add-prop.
negative-plus
(negative-plus [n int] [m int])
(==> (negative n) (negative m) (negative (+ n m)))
Theorem:
negative-pos-plus
(negative-pos-plus)
(forall
[n int]
(==>
(nat/negative n)
(exists [m int] (and (positive m) (= (+ n m) zero)))))
Theorem:
negative-pos-plus-conv
(negative-pos-plus-conv)
(forall
[n int]
(==>
(exists [m int] (and (positive m) (= (+ n m) zero)))
(negative n)))
Theorem:
negative-pos-plus-equiv
(negative-pos-plus-equiv [n int])
(<=> (exists [m int] (and (positive m) (= (+ n m) zero))) (negative n))
Theorem:
plus
(plus [m int])
(q/the (add-unique m))
Definition: The function that adds m
to an integer
plus-assoc
(plus-assoc [n int] [m int] [p int])
(= (+ n (+ m p)) (+ (+ n m) p))
Theorem:
plus-assoc-sym
(plus-assoc-sym [n int] [m int] [p int])
(= (+ (+ n m) p) (+ n (+ m p)))
Theorem:
plus-commute
(plus-commute [n int] [m int])
(= (+ n m) (+ m n))
Theorem:
plus-left-cancel
(plus-left-cancel [n int] [m int] [p int])
(==> (= (+ p n) (+ p m)) (= n m))
Theorem:
plus-left-cancel-conv
(plus-left-cancel-conv [n int] [m int] [p int])
(==> (= n m) (= (+ p n) (+ p m)))
Theorem:
plus-nat-closed
(plus-nat-closed)
(forall-in [n nat] (forall-in [m nat] (elem (+ n m) nat)))
Theorem: The addition is closed for natural integers.
plus-one
(plus-one [n int])
(= (+ n one) (succ n))
Theorem:
plus-pred
(plus-pred [m int] [n int])
(= (+ m (pred n)) (pred (+ m n)))
Theorem:
plus-pred-succ
(plus-pred-succ [n int] [m int])
(= (+ (pred n) (succ m)) (+ n m))
Theorem:
plus-pred-swap
(plus-pred-swap [m int] [n int])
(= (+ (pred m) n) (pred (+ m n)))
Theorem:
plus-pred-sym
(plus-pred-sym [m int] [n int])
(= (pred (+ m n)) (+ m (pred n)))
Theorem:
plus-prop
(plus-prop [m int])
(and
(= ((plus m) zero) m)
(forall [n int] (= ((plus m) (succ n)) (succ ((plus m) n)))))
Theorem:
plus-right-cancel
(plus-right-cancel [n int] [m int] [p int])
(==> (= (+ n p) (+ m p)) (= n m))
Theorem:
plus-right-cancel-conv
(plus-right-cancel-conv [n int] [m int] [p int])
(==> (= n m) (= (+ n p) (+ m p)))
Theorem:
plus-succ
(plus-succ [m int] [n int])
(= (+ m (succ n)) (succ (+ m n)))
Theorem:
plus-succ-pred
(plus-succ-pred [n int] [m int])
(= (+ (succ n) (pred m)) (+ n m))
Theorem:
plus-succ-swap
(plus-succ-swap [m int] [n int])
(= (+ (succ m) n) (succ (+ m n)))
Theorem:
plus-succ-sym
(plus-succ-sym [m int] [n int])
(= (succ (+ m n)) (+ m (succ n)))
Theorem:
plus-zero
(plus-zero [m int])
(= (+ m zero) m)
Theorem:
plus-zero-swap
(plus-zero-swap [m int])
(= (+ zero m) m)
Theorem:
positive-plus
(positive-plus)
(forall [n m int] (==> (positive n) (positive m) (positive (+ n m))))
Theorem: