The coproduct of two commutative monoids is their cartesian product
import public Frexlet.Monoid.Commutative.Nat
import public Data.Vect.Extra
CoprodAlgebraStructure : CommutativeMonoid -> CommutativeMonoid -> Algebra Signature
CoprodSetoidEquivalence : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> Equivalence (U a, U b)
CoprodSetoid : CommutativeMonoid -> CommutativeMonoid -> Setoid
CoprodAlgebraCongruence : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> (op : Op Signature) -> CongruenceWRT (CoprodSetoid a b) ((CoprodAlgebraStructure a b) .Sem op)
CoprodAlgebra : CommutativeMonoid -> CommutativeMonoid -> MonoidStructure
CoprodValidate : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> Validates CommutativeMonoidTheory (CoprodAlgebra a b)
Coprod : CommutativeMonoid -> CommutativeMonoid -> CommutativeMonoid
CoprodLftFunction : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> U a -> U (Coprod a b)
CoprodLftSetoidHomomorphism : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> SetoidHomomorphism (cast a) (cast (Coprod a b)) (CoprodLftFunction a b)
CoprodLftHomomorphism : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> Homomorphism (a .Algebra) ((Coprod a b) .Algebra) (CoprodLftFunction a b)
CoprodRgtFunction : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> U b -> U (Coprod a b)
CoprodRgtSetoidHomomorphism : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> SetoidHomomorphism (cast b) (cast (Coprod a b)) (CoprodRgtFunction a b)
CoprodRgtHomomorphism : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> Homomorphism (b .Algebra) ((Coprod a b) .Algebra) (CoprodRgtFunction a b)
Coproduct : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> a <~.~> b
ExtenderFunction : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> ExtenderFunction
ExtenderSetoidHomomorphism : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> ExtenderSetoidHomomorphism
ExtenderIsHomomorphism : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> (other : a <~.~> b) -> Homomorphism ((Coprod a b) .Algebra) ((other .Sink) .Algebra) (ExtenderFunction a b other)
Extender : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> Extender
normalForm : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> (xy : U (Coprod a b)) -> (Coprod a b) .rel ((fst xy, O1) .+. (O1, snd xy)) xy
extenderUniqueness : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> (other : a <~.~> b) -> (extend : Coproduct a b ~> other) -> (xy : U (Coprod a b)) -> (other .Sink) .rel (((extend .H) .H) .H xy) ((((Extender a b other) .H) .H) .H xy)
Uniqueness : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> Uniqueness
CoproductCospan : (a : CommutativeMonoid) -> (b : CommutativeMonoid) -> Coproduct a b