The syntax and axioms for monoids
import public Frexlet.Monoiddata Axiom : TypeMon : Axiom -> AxiomCommutativity : AxiomCommutativeMonoidTheory : PresentationCommutativeMonoid : TypeMkCommutativeMonoid : (monoid : Monoid) -> ValidatesEquation (commutativity Product) (monoid .Algebra) -> CommutativeMonoidSmart constructor for commutative monoids
Zero : Op SignaturePlus : Op SignaturewithRaw : Printer Signature a -> Printer CommutativeMonoidTheory awithWords : Printer Signature a -> Printer CommutativeMonoidTheory a