Package monoid-comm-mult: Commutative monoid multiplication

Information

namemonoid-comm-mult
version1.3
descriptionCommutative monoid multiplication
authorJoe Leslie-Hurd <joe@gilith.com>
licenseMIT
requiresbool
monoid-mult-add
monoid-mult-def
monoid-mult-thm
showAlgebra.Monoid
Data.Bool
Data.List
Number.Natural

Files

Theorems

x. x * 0 = 0

n. 0 * n = 0

x. x * 1 = x

z x. multAdd z x [] = z

x. x * 2 = x + x

x n. multAdd 0 x (Bits.fromNatural n) = x * n

x n. x * suc n = x + x * n

x n. x * suc n = x * n + x

z x l. multAdd z x l = z + x * Bits.toNatural l

x m n. x * (m * n) = x * m * n

x m n. x * (m + n) = x * m + x * n

z x h t.
    multAdd z x (h :: t) = multAdd (if h then z + x else z) (x + x) t

External Type Operators

External Constants

Assumptions

x. x * 0 = 0

n. 0 * n = 0

x. x * 1 = x

z x. multAdd z x [] = z

x. x * 2 = x + x

x n. multAdd 0 x (Bits.fromNatural n) = x * n

x n. x * suc n = x + x * n

x n. x * suc n = x * n + x

z x l. multAdd z x l = z + x * Bits.toNatural l

x m n. x * (m * n) = x * m * n

x m n. x * (m + n) = x * m + x * n

z x h t.
    multAdd z x (h :: t) = multAdd (if h then z + x else z) (x + x) t