data Operation : Nat -> Type
- Totality: total
Visibility: public export
Constructors:
Mono : Operation n -> Operation n
Involution : Operation 1
Signature : Signature
- Totality: total
Visibility: public export castOp : Signature ~> Signature
- Totality: total
Visibility: public export data Axiom : Type
- Totality: total
Visibility: public export
Constructors:
Mon : Axiom -> Axiom
Involutivity : Axiom
Antidistributivity : Axiom
InvolutiveMonoidTheory : Presentation
- Totality: total
Visibility: public export InvolutiveMonoidStructure : Type
- Totality: total
Visibility: public export InvolutiveMonoid : Type
- Totality: total
Visibility: public export MkInvolutiveMonoidStructure : (monoid : MonoidStructure) -> cast monoid ~> cast monoid -> InvolutiveMonoidStructure
Smart constructor for involutive monoid structures
Totality: total
Visibility: public exportMkInvolutiveMonoid : (monoid : Monoid) -> (involution : cast monoid ~> cast monoid) -> (let 0 invMonoid = MkInvolutiveMonoidStructure (monoid .Algebra) involution in ValidatesEquation (involutivity Involution) invMonoid -> ValidatesEquation (antidistributivity Involution (Mono Product)) invMonoid -> InvolutiveMonoid)
Smart constructor for involutive monoids
Totality: total
Visibility: public exportcast : a ~> b -> cast a ~> cast b
- Totality: total
Visibility: public export Mon : Op (MonoidTheory .signature) -> Op (InvolutiveMonoidTheory .signature)
- Totality: total
Visibility: public export Involute : Op (InvolutiveMonoidTheory .signature)
- Totality: total
Visibility: public export