latte-nats.times
The multiplication defined on ℕ.
*
(* [m nat] [n nat])
((times m) n)
Definition: The function that multiplies m
with n
.
mult-prop
(mult-prop [m nat])
(lambda
[g (==> nat nat)]
(and (= (g zero) zero) (forall [n nat] (= (g (succ n)) (+ m (g n))))))
Definition: The property of the multiplication of m
to a natural integer.
mult-unique
(mult-unique [m nat])
(q/unique (mult-prop m))
Theorem: The unicity of the multiplication function, through mult-prop.
times
(times [m nat])
(q/the (mult-unique m))
Definition: The function that multiplies m
to a natural number
times-assoc
(times-assoc [m nat] [n nat] [p nat])
(= (* (* m n) p) (* m (* n p)))
Theorem: Associativity of multiplication.
times-commute
(times-commute [m nat] [n nat])
(= (* m n) (* n m))
Theorem: Commutativity of multiplication.
times-dist-plus
(times-dist-plus [m nat] [n nat] [p nat])
(= (* m (+ n p)) (+ (* m n) (* m p)))
Theorem: Distributivity of multiplication over addition.
times-prop
(times-prop [m nat])
(and
(= (* m zero) zero)
(forall [n nat] (= (* m (succ n)) (+ m (* m n)))))
Theorem:
times-succ
(times-succ [m nat] [n nat])
(= (* m (succ n)) (+ m (* m n)))
Theorem:
times-succ-swap-both
(times-succ-swap-both [m nat] [n nat])
(= (* (succ n) m) (+ (* m n) m))
Theorem:
times-succ-swap-left
(times-succ-swap-left [n nat] [m nat])
(= (* (succ n) m) (+ m (* n m)))
Theorem:
times-succ-swap-right
(times-succ-swap-right [m nat] [n nat])
(= (* m (succ n)) (+ (* m n) m))
Theorem:
times-zero
(times-zero [n nat])
(= (* n zero) zero)
Theorem:
times-zero-swap
(times-zero-swap [n nat])
(= (* zero n) zero)
Theorem: