import Relation.Binary.PropositionalEquality as ≡; open ≡ using (_≡_)
open import Relation.Nullary using (¬_)
open import Data.Sum using (_⊎_)
open import Data.Product
open import Relation.Binary.PropositionalEquality using () renaming (_≡_ to _↔_)
open import Level as Level using (Level)
module math-scheme-generated where
record Empty : Set₁ where
record Carrier : Set₁ where
field U : Set
record CarrierS : Set₁ where
field S : Set
record MultiCarrier : Set₁ where
field U : Set
field S : Set
record PointedCarrier : Set₁ where
field U : Set
field e : U
record Pointed2Carrier : Set₁ where
field U : Set
field e2 : U
record DoublyPointed : Set₁ where
field U : Set
field e : U
field e2 : U
record DoublyPointed𝟘𝟙 : Set₁ where
field U : Set
field 𝟘 : U
field 𝟙 : U
record UnaryOperation : Set₁ where
field U : Set
field prime : U → U
record Magma : Set₁ where
field U : Set
field _*_ : U → U → U
record UnaryRelation : Set₁ where
field U : Set
field R : U → Set
record BinaryRelation : Set₁ where
field U : Set
field R : U → U → Set
record PointedUnarySystem : Set₁ where
field U : Set
field prime : U → U
field e : U
record FixedPoint : Set₁ where
field U : Set
field prime : U → U
field e : U
field fixes_prime_e : prime e ≡ e
record InvolutiveMagmaSig : Set₁ where
field U : Set
field prime : U → U
field _*_ : U → U → U
record InvolutivePointedMagmaSig : Set₁ where
field U : Set
field prime : U → U
field e : U
field _*_ : U → U → U
record Involution : Set₁ where
field U : Set
field prime : U → U
field prime-involutive : ∀ (x : U) → prime (prime x) ≡ x
record UnaryDistributes : Set₁ where
field U : Set
field prime : U → U
field _*_ : U → U → U
field prime-*-distribute : ∀ (x y : U) → prime (x * y) ≡ (prime x * prime y)
record UnaryAntiDistribution : Set₁ where
field U : Set
field prime : U → U
field _*_ : U → U → U
field prime-*-antidistribute : ∀ (x y : U) → prime(x * y) ≡ (prime y * prime x)
record AdditiveUnaryAntiDistribution : Set₁ where
field U : Set
field prime : U → U
field _+_ : U → U → U
field prime-+-antidistribute : ∀ (x y : U) → prime(x + y) ≡ (prime y + prime x)
record IdempotentUnary : Set₁ where
field U : Set
field prime : U → U
field prime-idempotent : ∀ (f : U) → prime (prime f) ≡ prime f
record InvolutiveMagma : Set₁ where
field U : Set
field prime : U → U
field prime-involutive : ∀ (x : U) → prime (prime x) ≡ x
field _*_ : U → U → U
field prime-*-antidistribute : ∀ (x y : U) → prime(x * y) ≡ (prime y * prime x)
record IrreflexiveRelation : Set₁ where
field U : Set
field R : U → U → Set
field R-irreflexive : ∀ (x : U) → ¬ (R x x)
record ReflexiveRelation : Set₁ where
field U : Set
field R : U → U → Set
field R-reflexive : ∀ (x : U) → R x x
record TransitiveRelation : Set₁ where
field U : Set
field R : U → U → Set
field R-transitive : ∀ (x y z : U) → R x y → R y z → R x z
record SymmetricRelation : Set₁ where
field U : Set
field R : U → U → Set
field R-symmetric : ∀ (x y : U) → R x y → R y x
record AntisymmetricRelation : Set₁ where
field U : Set
field R : U → U → Set
field R-antisymmetric : ∀ (x y : U) → R y x → R x y → x ≡ y
record OrderRelation : Set₁ where
field U : Set
field _≤_ : U → U → Set
record ReflexiveOrderRelation : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-reflexive : ∀ (x : U) → _≤_ x x
record TransitiveOrderRelation : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
record SymmetricOrderRelation : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-symmetric : ∀ (x y : U) → _≤_ x y → _≤_ y x
record AntisymmetricOrderRelation : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
record Preorder : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
record StrictPartialOrder : Set₁ where
field U : Set
field R : U → U → Set
field R-irreflexive : ∀ (x : U) → ¬ (R x x)
field R-transitive : ∀ (x y z : U) → R x y → R y z → R x z
record EquivalenceRelation : Set₁ where
field U : Set
field R : U → U → Set
field R-reflexive : ∀ (x : U) → R x x
field R-transitive : ∀ (x y z : U) → R x y → R y z → R x z
field R-symmetric : ∀ (x y : U) → R x y → R y x
record PartialOrder : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
record PartiallyOrderedMagmaSig : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
record OrderPreservingMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y u v : U) → x ≤ y → (u * (x * v)) ≤ (u * (y * v))
record PartiallyOrderedMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
record TotalRelation : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record TotalPreorder : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record TotalOrder : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
record OrderedMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record LeftCanonicalOrder : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
record RightCanonicalOrder : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field ≤-*-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c * a)
record LeftCanonicallyOrderedMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
record RightCanonicallyOrderedMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
field ≤-*-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c * a)
record CanonicallyOrderedMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
field ≤-*-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c * a)
record Chain : Set₁ where
field U : Set
field _≤_ : U → U → Set
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
record AdditiveMagma : Set₁ where
field U : Set
field _+_ : U → U → U
record LeftDivisionMagma : Set₁ where
field U : Set
field _╲_ : U → U → U
record RightDivisionMagma : Set₁ where
field U : Set
field _╱_ : U → U → U
record LeftOperation : Set₁ where
field U : Set
field S : Set
field _⟫_ : U → S → S
record RightOperation : Set₁ where
field U : Set
field S : Set
field _⟪_ : S → U → S
record IdempotentMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-idempotent : ∀ (x : U) → (x * x) ≡ x
record IdempotentAdditiveMagma : Set₁ where
field U : Set
field _+_ : U → U → U
field +-idempotent : ∀ (x : U) → (x + x) ≡ x
record SelectiveMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-selective : ∀ (x y : U) → (x * y ≡ x) ⊎ (x * y ≡ y)
record SelectiveAdditiveMagma : Set₁ where
field U : Set
field _+_ : U → U → U
field +-selective : ∀ (x y : U) → (x + y ≡ x) ⊎ (x + y ≡ y)
record PointedMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
record Pointed𝟘Magma : Set₁ where
field U : Set
field _*_ : U → U → U
field 𝟘 : U
record AdditivePointed1Magma : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟙 : U
record LeftPointAction : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
pointactLeft : U → U ; pointactLeft x = e * x
toPointedMagma : let View X = X in View PointedMagma ; toPointedMagma = record {U = U;_*_ = _*_;e = e}
record RightPointAction : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
pointactRight : U → U ; pointactRight x = x * e
toPointedMagma : let View X = X in View PointedMagma ; toPointedMagma = record {U = U;_*_ = _*_;e = e}
record CommutativeMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record CommutativeAdditiveMagma : Set₁ where
field U : Set
field _+_ : U → U → U
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
record PointedCommutativeMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record AntiAbsorbent : Set₁ where
field U : Set
field _*_ : U → U → U
field *-anti-self-absorbent : ∀ (x y : U) → (x * (x * y)) ≡ y
record SteinerMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field *-anti-self-absorbent : ∀ (x y : U) → (x * (x * y)) ≡ y
record Squag : Set₁ where
field U : Set
field _*_ : U → U → U
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field *-anti-self-absorbent : ∀ (x y : U) → (x * (x * y)) ≡ y
field *-idempotent : ∀ (x : U) → (x * x) ≡ x
record PointedSteinerMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field *-anti-self-absorbent : ∀ (x y : U) → (x * (x * y)) ≡ y
record UnipotentPointedMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field unipotent : ∀ (x : U) → (x * x) ≡ e
record Sloop : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field *-anti-self-absorbent : ∀ (x y : U) → (x * (x * y)) ≡ y
field unipotent : ∀ (x : U) → (x * x) ≡ e
record LeftDistributiveMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-leftDistributive : ∀ (x y z : U) → (x * (y * z)) ≡ ((x * y) * (x * z))
record RightDistributiveMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-rightDistributive : ∀ (x y z : U) → ((y * z) * x) ≡ ((y * x) * (z * x))
record LeftCancellativeMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-leftCancellative : ∀ (x y z : U) → z * x ≡ z * y → x ≡ y
record RightCancellativeMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-rightCancellative : ∀ (x y z : U) → x * z ≡ y * z → x ≡ y
record CancellativeMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field *-leftCancellative : ∀ (x y z : U) → z * x ≡ z * y → x ≡ y
field *-rightCancellative : ∀ (x y z : U) → x * z ≡ y * z → x ≡ y
record LeftUnital : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
record RightUnital : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
record Unital : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
record LeftBiMagma : Set₁ where
field U : Set
field _╲_ : U → U → U
field _*_ : U → U → U
record RightBiMagma : Set₁ where
field U : Set
field _╱_ : U → U → U
field _*_ : U → U → U
record LeftCancellative : Set₁ where
field U : Set
field _╲_ : U → U → U
field _*_ : U → U → U
field *-╲-leftCancel : ∀ (x y : U) → x * (x ╲ y) ≡ y
record LeftCancellativeOp : Set₁ where
field U : Set
field _╲_ : U → U → U
field _*_ : U → U → U
field ╲-╲-leftCancel : ∀ (x y : U) → x ╲ (x * y) ≡ y
record LeftQuasiGroup : Set₁ where
field U : Set
field _╲_ : U → U → U
field _*_ : U → U → U
field *-╲-leftCancel : ∀ (x y : U) → x * (x ╲ y) ≡ y
field ╲-╲-leftCancel : ∀ (x y : U) → x ╲ (x * y) ≡ y
record RightCancellative : Set₁ where
field U : Set
field _╱_ : U → U → U
field _*_ : U → U → U
field ╱-*-rightCancel : ∀ (x y : U) → (y ╱ x) * x ≡ y
record RightCancellativeOp : Set₁ where
field U : Set
field _╱_ : U → U → U
field _*_ : U → U → U
field *-╱-rightCancel : ∀ (x y : U) → (y * x) ╱ x ≡ y
record RightQuasiGroup : Set₁ where
field U : Set
field _╱_ : U → U → U
field _*_ : U → U → U
field ╱-*-rightCancel : ∀ (x y : U) → (y ╱ x) * x ≡ y
field *-╱-rightCancel : ∀ (x y : U) → (y * x) ╱ x ≡ y
record QuasiGroup : Set₁ where
field U : Set
field _╲_ : U → U → U
field _*_ : U → U → U
field *-╲-leftCancel : ∀ (x y : U) → x * (x ╲ y) ≡ y
field ╲-╲-leftCancel : ∀ (x y : U) → x ╲ (x * y) ≡ y
field _╱_ : U → U → U
field ╱-*-rightCancel : ∀ (x y : U) → (y ╱ x) * x ≡ y
field *-╱-rightCancel : ∀ (x y : U) → (y * x) ╱ x ≡ y
record MedialMagma : Set₁ where
field U : Set
field _*_ : U → U → U
field mediate : ∀ (w x y z : U) → (x * y) * (z * w) ≡ (x * z) * (y * w)
record MedialQuasiGroup : Set₁ where
field U : Set
field _╲_ : U → U → U
field _*_ : U → U → U
field *-╲-leftCancel : ∀ (x y : U) → x * (x ╲ y) ≡ y
field ╲-╲-leftCancel : ∀ (x y : U) → x ╲ (x * y) ≡ y
field _╱_ : U → U → U
field ╱-*-rightCancel : ∀ (x y : U) → (y ╱ x) * x ≡ y
field *-╱-rightCancel : ∀ (x y : U) → (y * x) ╱ x ≡ y
field mediate : ∀ (w x y z : U) → (x * y) * (z * w) ≡ (x * z) * (y * w)
record MoufangLaw : Set₁ where
field U : Set
field _*_ : U → U → U
field *-moufangLaw : ∀ (e x y z : U) → (y * e ≡ y) → ((x * y) * z) * x ≡ x * (y * ((e * z) * x))
record MoufangQuasigroup : Set₁ where
field U : Set
field _╲_ : U → U → U
field _*_ : U → U → U
field *-╲-leftCancel : ∀ (x y : U) → x * (x ╲ y) ≡ y
field ╲-╲-leftCancel : ∀ (x y : U) → x ╲ (x * y) ≡ y
field _╱_ : U → U → U
field ╱-*-rightCancel : ∀ (x y : U) → (y ╱ x) * x ≡ y
field *-╱-rightCancel : ∀ (x y : U) → (y * x) ╱ x ≡ y
field *-moufangLaw : ∀ (e x y z : U) → (y * e ≡ y) → ((x * y) * z) * x ≡ x * (y * ((e * z) * x))
record LeftLoop : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field _╲_ : U → U → U
field *-╲-leftCancel : ∀ (x y : U) → x * (x ╲ y) ≡ y
field ╲-╲-leftCancel : ∀ (x y : U) → x ╲ (x * y) ≡ y
record Loop : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field _╲_ : U → U → U
field *-╲-leftCancel : ∀ (x y : U) → x * (x ╲ y) ≡ y
field ╲-╲-leftCancel : ∀ (x y : U) → x ╲ (x * y) ≡ y
field _╱_ : U → U → U
field ╱-*-rightCancel : ∀ (x y : U) → (y ╱ x) * x ≡ y
field *-╱-rightCancel : ∀ (x y : U) → (y * x) ╱ x ≡ y
record MoufangAlgebra : Set₁ where
field U : Set
field _*_ : U → U → U
field *-MoufangIdentity : ∀ (x y z : U) → (z * x) * (y * z) ≡ (z * (x * y)) * z
record MoufangLoop : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field _╲_ : U → U → U
field *-╲-leftCancel : ∀ (x y : U) → x * (x ╲ y) ≡ y
field ╲-╲-leftCancel : ∀ (x y : U) → x ╲ (x * y) ≡ y
field _╱_ : U → U → U
field ╱-*-rightCancel : ∀ (x y : U) → (y ╱ x) * x ≡ y
field *-╱-rightCancel : ∀ (x y : U) → (y * x) ╱ x ≡ y
field *-MoufangIdentity : ∀ (x y z : U) → (z * x) * (y * z) ≡ (z * (x * y)) * z
record LeftShelfSig : Set₁ where
field U : Set
field _|>_ : U → U → U
record LeftShelf : Set₁ where
field U : Set
field _|>_ : U → U → U
field |>-leftDistributive : ∀ (x y z : U) → (x |> (y |> z)) ≡ ((x |> y) |> (x |> z))
record RightShelfSig : Set₁ where
field U : Set
field _<|_ : U → U → U
record RightShelf : Set₁ where
field U : Set
field _<|_ : U → U → U
field <|-rightDistributive : ∀ (x y z : U) → ((y <| z) <| x) ≡ ((y <| x) <| (z <| x))
record RackSig : Set₁ where
field U : Set
field _|>_ : U → U → U
field _<|_ : U → U → U
record Shelf : Set₁ where
field U : Set
field _|>_ : U → U → U
field |>-leftDistributive : ∀ (x y z : U) → (x |> (y |> z)) ≡ ((x |> y) |> (x |> z))
field _<|_ : U → U → U
field <|-rightDistributive : ∀ (x y z : U) → ((y <| z) <| x) ≡ ((y <| x) <| (z <| x))
record LeftBinaryInverse : Set₁ where
field U : Set
field _|>_ : U → U → U
field _<|_ : U → U → U
field |>-<|-absorption : ∀ (x y : U) → (x |> y) <| x ≡ y
record RightBinaryInverse : Set₁ where
field U : Set
field _|>_ : U → U → U
field _<|_ : U → U → U
field |>-<|-co-absorption : ∀ (x y : U) → x |> (y <| x) ≡ y
record Rack : Set₁ where
field U : Set
field _<|_ : U → U → U
field <|-rightDistributive : ∀ (x y z : U) → ((y <| z) <| x) ≡ ((y <| x) <| (z <| x))
field _|>_ : U → U → U
field |>-leftDistributive : ∀ (x y z : U) → (x |> (y |> z)) ≡ ((x |> y) |> (x |> z))
field |>-<|-absorption : ∀ (x y : U) → (x |> y) <| x ≡ y
field |>-<|-co-absorption : ∀ (x y : U) → x |> (y <| x) ≡ y
record LeftIdempotence : Set₁ where
field U : Set
field _|>_ : U → U → U
field |>-idempotent : ∀ (x : U) → (x |> x) ≡ x
record RightIdempotence : Set₁ where
field U : Set
field _<|_ : U → U → U
field <|-idempotent : ∀ (x : U) → (x <| x) ≡ x
record LeftSpindle : Set₁ where
field U : Set
field _|>_ : U → U → U
field |>-leftDistributive : ∀ (x y z : U) → (x |> (y |> z)) ≡ ((x |> y) |> (x |> z))
field |>-idempotent : ∀ (x : U) → (x |> x) ≡ x
record RightSpindle : Set₁ where
field U : Set
field _<|_ : U → U → U
field <|-rightDistributive : ∀ (x y z : U) → ((y <| z) <| x) ≡ ((y <| x) <| (z <| x))
field <|-idempotent : ∀ (x : U) → (x <| x) ≡ x
record Quandle : Set₁ where
field U : Set
field _<|_ : U → U → U
field <|-rightDistributive : ∀ (x y z : U) → ((y <| z) <| x) ≡ ((y <| x) <| (z <| x))
field _|>_ : U → U → U
field |>-leftDistributive : ∀ (x y z : U) → (x |> (y |> z)) ≡ ((x |> y) |> (x |> z))
field |>-<|-absorption : ∀ (x y : U) → (x |> y) <| x ≡ y
field |>-<|-co-absorption : ∀ (x y : U) → x |> (y <| x) ≡ y
field |>-idempotent : ∀ (x : U) → (x |> x) ≡ x
field <|-idempotent : ∀ (x : U) → (x <| x) ≡ x
record RightSelfInverse : Set₁ where
field U : Set
field _|>_ : U → U → U
field rightSelfInverse_|> : ∀ (x y : U) → (x |> y) |> y ≡ x
record Kei : Set₁ where
field U : Set
field _|>_ : U → U → U
field |>-leftDistributive : ∀ (x y z : U) → (x |> (y |> z)) ≡ ((x |> y) |> (x |> z))
field |>-idempotent : ∀ (x : U) → (x |> x) ≡ x
field rightSelfInverse_|> : ∀ (x y : U) → (x |> y) |> y ≡ x
record Semigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
record AdditiveSemigroup : Set₁ where
field U : Set
field _+_ : U → U → U
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
record CommutativeSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record AdditiveCommutativeSemigroup : Set₁ where
field U : Set
field _+_ : U → U → U
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
record LeftCancellativeSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-leftCancellative : ∀ (x y z : U) → z * x ≡ z * y → x ≡ y
record RightCancellativeSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-rightCancellative : ∀ (x y z : U) → x * z ≡ y * z → x ≡ y
record CancellativeSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-leftCancellative : ∀ (x y z : U) → z * x ≡ z * y → x ≡ y
field *-rightCancellative : ∀ (x y z : U) → x * z ≡ y * z → x ≡ y
record CancellativeCommutativeSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field *-leftCancellative : ∀ (x y z : U) → z * x ≡ z * y → x ≡ y
field *-rightCancellative : ∀ (x y z : U) → x * z ≡ y * z → x ≡ y
record InvolutiveSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field prime : U → U
field prime-involutive : ∀ (x : U) → prime (prime x) ≡ x
field prime-*-antidistribute : ∀ (x y : U) → prime(x * y) ≡ (prime y * prime x)
record PartiallyOrderedSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
record OrderedSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record CommutativePartiallyOrderedSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
record CommutativeOrderedSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record Band : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-idempotent : ∀ (x : U) → (x * x) ≡ x
record CommutativeBand : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-idempotent : ∀ (x : U) → (x * x) ≡ x
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record MiddleAbsorption : Set₁ where
field U : Set
field _*_ : U → U → U
field *-middleAbsorb : ∀ (x y z : U) → x * (y * z) ≡ x * z
record MiddleCommute : Set₁ where
field U : Set
field _*_ : U → U → U
field *-middleCommute : ∀ (x y z : U) → (x * y) * (z * x) ≡ (x * z) * (y * x)
record RectangularBand : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-idempotent : ∀ (x : U) → (x * x) ≡ x
field *-middleAbsorb : ∀ (x y z : U) → x * (y * z) ≡ x * z
record NormalBand : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-idempotent : ∀ (x : U) → (x * x) ≡ x
field *-middleCommute : ∀ (x y z : U) → (x * y) * (z * x) ≡ (x * z) * (y * x)
record RightMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
record LeftMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
record Monoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
record AdditiveMonoid : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
record DoubleMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
record Monoid1 : Set₁ where
field U : Set
field _*_ : U → U → U
field 𝟙 : U
field *-leftIdentity : ∀ (x : U) → 𝟙 * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * 𝟙 ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
record CommutativeMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record SelectiveMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-selective : ∀ (x y : U) → (x * y ≡ x) ⊎ (x * y ≡ y)
record CancellativeMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-leftCancellative : ∀ (x y z : U) → z * x ≡ z * y → x ≡ y
field *-rightCancellative : ∀ (x y z : U) → x * z ≡ y * z → x ≡ y
record CancellativeCommutativeMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-leftCancellative : ∀ (x y z : U) → z * x ≡ z * y → x ≡ y
field *-rightCancellative : ∀ (x y z : U) → x * z ≡ y * z → x ≡ y
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record LeftZero : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftZero : ∀ (x : U) → e * x ≡ e
record RightZero : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-rightZero : ∀ (x : U) → x * e ≡ e
record Zero : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftZero : ∀ (x : U) → e * x ≡ e
field *-rightZero : ∀ (x : U) → x * e ≡ e
record Left0 : Set₁ where
field U : Set
field _*_ : U → U → U
field 𝟘 : U
field *-leftZero : ∀ (x : U) → 𝟘 * x ≡ 𝟘
record Right0 : Set₁ where
field U : Set
field _*_ : U → U → U
field 𝟘 : U
field *-rightZero : ∀ (x : U) → x * 𝟘 ≡ 𝟘
record ComplementSig : Set₁ where
field U : Set
field compl : U → U
record CommutativeMonoid1 : Set₁ where
field U : Set
field _*_ : U → U → U
field 𝟙 : U
field *-leftIdentity : ∀ (x : U) → 𝟙 * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * 𝟙 ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record AdditiveCommutativeMonoid : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
record PartiallyOrderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
record OrderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record CommutativePartiallyOrderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
record CommutativeOrderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record LeftCanonicallyPreorderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field _≤_ : U → U → Set
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
record RightCanonicallyPreorderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field _≤_ : U → U → Set
field ≤-*-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c * a)
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
record CanonicallyPreorderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field _≤_ : U → U → Set
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-*-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c * a)
record LeftCanonicallyOrderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
record RightCanonicallyOrderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
record CanonicallyOrderedMonoid : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
field ≤-*-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c * a)
record AdditiveCanonicallyOrderedMonoid : Set₁ where
field U : Set
field _+_ : U → U → U
field _≤_ : U → U → Set
field +-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U + (x + v)) ≤ (U + (y + v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field ≤-+-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a + c)
field ≤-+-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c + a)
record HemiGroup : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field ≤-*-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a * c)
field ≤-*-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c * a)
field *-leftCancellative : ∀ (x y z : U) → z * x ≡ z * y → x ≡ y
field *-rightCancellative : ∀ (x y z : U) → x * z ≡ y * z → x ≡ y
record AdditiveHemiGroup : Set₁ where
field U : Set
field _+_ : U → U → U
field _≤_ : U → U → Set
field +-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U + (x + v)) ≤ (U + (y + v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field ≤-+-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a + c)
field ≤-+-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c + a)
field +-leftCancellative : ∀ (x y z : U) → z + x ≡ z + y → x ≡ y
field +-rightCancellative : ∀ (x y z : U) → x + z ≡ y + z → x ≡ y
record BooleanGroup : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field unipotent : ∀ (x : U) → (x * x) ≡ e
record InverseSig : Set₁ where
field U : Set
field inv : U → U
field e : U
field _*_ : U → U → U
record LeftInverse : Set₁ where
field U : Set
field inv : U → U
field e : U
field _*_ : U → U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ e
record RightInverse : Set₁ where
field U : Set
field inv : U → U
field e : U
field _*_ : U → U → U
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ e
record Inverse : Set₁ where
field U : Set
field inv : U → U
field e : U
field _*_ : U → U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ e
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ e
record PseudoInverseSig : Set₁ where
field U : Set
field inv : U → U
field _*_ : U → U → U
record PseudoInverse : Set₁ where
field U : Set
field inv : U → U
field _*_ : U → U → U
field *-quasiLeftInverse : ∀ (x : U) → x * ((inv x) * x) ≡ x
record PseudoInvolution : Set₁ where
field U : Set
field inv : U → U
field _*_ : U → U → U
field *-quasiRightInverse : ∀ (x : U) → (inv x * x) * inv x ≡ inv x
record RegularSemigroup : Set₁ where
field U : Set
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field inv : U → U
field *-quasiLeftInverse : ∀ (x : U) → x * ((inv x) * x) ≡ x
record InverseSemigroup : Set₁ where
field U : Set
field inv : U → U
field _*_ : U → U → U
field *-quasiLeftInverse : ∀ (x : U) → x * ((inv x) * x) ≡ x
field *-quasiRightInverse : ∀ (x : U) → (inv x * x) * inv x ≡ inv x
record Group : Set₁ where
field U : Set
field _*_ : U → U → U
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ e
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ e
record Group1 : Set₁ where
field U : Set
field _*_ : U → U → U
field 𝟙 : U
field *-leftIdentity : ∀ (x : U) → 𝟙 * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * 𝟙 ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ 𝟙
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ 𝟙
record AdditiveGroup : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field neg : U → U
field +-leftInverse : ∀ (x : U) → x + (neg x) ≡ 𝟘
field +-rightInverse : ∀ (x : U) → (neg x) + x ≡ 𝟘
record AbelianGroup : Set₁ where
field U : Set
field _*_ : U → U → U
field 𝟙 : U
field *-leftIdentity : ∀ (x : U) → 𝟙 * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * 𝟙 ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ 𝟙
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ 𝟙
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record AbelianAdditiveGroup : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field neg : U → U
field +-leftInverse : ∀ (x : U) → x + (neg x) ≡ 𝟘
field +-rightInverse : ∀ (x : U) → (neg x) + x ≡ 𝟘
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
record PartiallyOrderedGroup : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ e
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ e
record OrderedGroup : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ e
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ e
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record AbelianPartiallyOrderedGroup : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟙 : U
field *-leftIdentity : ∀ (x : U) → 𝟙 * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * 𝟙 ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ 𝟙
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ 𝟙
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
record AbelianOrderedGroup : Set₁ where
field U : Set
field _*_ : U → U → U
field _≤_ : U → U → Set
field *-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U * (x * v)) ≤ (U * (y * v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟙 : U
field *-leftIdentity : ∀ (x : U) → 𝟙 * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * 𝟙 ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ 𝟙
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ 𝟙
field *-commutative : ∀ (x y : U) → (x * y) ≡ (y * x)
field ≤-total : ∀ (x y : U) → (x ≤ y) ⊎ (y ≤ x)
record RingoidSig : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
record Pointed0Sig : Set₁ where
field U : Set
field 𝟘 : U
record Pointed1Sig : Set₁ where
field U : Set
field 𝟙 : U
record Ringoid0Sig : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field 𝟘 : U
record Ringoid1Sig : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field 𝟙 : U
record Ringoid01Sig : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field 𝟘 : U
field 𝟙 : U
record LeftRingoid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
record RightRingoid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
record Ringoid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
record NonassociativeNondistributiveRing : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field neg : U → U
field +-leftInverse : ∀ (x : U) → x + (neg x) ≡ 𝟘
field +-rightInverse : ∀ (x : U) → (neg x) + x ≡ 𝟘
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _*_ : U → U → U
record NonassociativeRing : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field neg : U → U
field +-leftInverse : ∀ (x : U) → x + (neg x) ≡ 𝟘
field +-rightInverse : ∀ (x : U) → (neg x) + x ≡ 𝟘
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _*_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
record PrimeRingoidSig : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field prime : U → U
record AnddeMorgan : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field prime : U → U
field prime-*-+-deMorgan : ∀ (x y z : U) → prime (x * y) ≡ (prime x) + (prime y)
record OrdeMorgan : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field prime : U → U
field prime-+-*-deMorgan : ∀ (x y z : U) → prime (x + y) ≡ (prime x) * (prime y)
record DualdeMorgan : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field prime : U → U
field prime-+-*-deMorgan : ∀ (x y z : U) → prime (x + y) ≡ (prime x) * (prime y)
field prime-*-+-deMorgan : ∀ (x y z : U) → prime (x * y) ≡ (prime x) + (prime y)
record LeftPreSemiring : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
record RightPreSemiring : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
record PreSemiring : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
record NearSemiring : Set₁ where
field U : Set
field _+_ : U → U → U
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
record NearSemifield : Set₁ where
field U : Set
field _+_ : U → U → U
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ e
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ e
record Semifield : Set₁ where
field U : Set
field _+_ : U → U → U
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field inv : U → U
field *-leftInverse : ∀ (x : U) → x * (inv x) ≡ e
field *-rightInverse : ∀ (x : U) → (inv x) * x ≡ e
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
record NearRing : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field neg : U → U
field +-leftInverse : ∀ (x : U) → x + (neg x) ≡ 𝟘
field +-rightInverse : ∀ (x : U) → (neg x) + x ≡ 𝟘
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
record Rng : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field neg : U → U
field +-leftInverse : ∀ (x : U) → x + (neg x) ≡ 𝟘
field +-rightInverse : ∀ (x : U) → (neg x) + x ≡ 𝟘
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
record Semiring : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _*_ : U → U → U
field 𝟙 : U
field *-leftIdentity : ∀ (x : U) → 𝟙 * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * 𝟙 ≡ x
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
field *-leftZero : ∀ (x : U) → 𝟘 * x ≡ 𝟘
field *-rightZero : ∀ (x : U) → x * 𝟘 ≡ 𝟘
record SemiRng : Set₁ where
field U : Set
field _+_ : U → U → U
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _*_ : U → U → U
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
record LeftPreDioid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _≤_ : U → U → Set
field +-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U + (x + v)) ≤ (U + (y + v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field ≤-+-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a + c)
field ≤-+-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c + a)
record RightPreDioid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _≤_ : U → U → Set
field +-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U + (x + v)) ≤ (U + (y + v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field ≤-+-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a + c)
field ≤-+-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c + a)
record PreDioid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _≤_ : U → U → Set
field +-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U + (x + v)) ≤ (U + (y + v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field ≤-+-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a + c)
field ≤-+-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c + a)
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
record LeftDioid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _≤_ : U → U → Set
field +-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U + (x + v)) ≤ (U + (y + v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field ≤-+-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a + c)
field ≤-+-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c + a)
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-leftZero : ∀ (x : U) → 𝟘 * x ≡ 𝟘
field *-rightZero : ∀ (x : U) → x * 𝟘 ≡ 𝟘
record RightDioid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-rightDistributivity : ∀ (x y z : U) → (y + z) * x ≡ (y * x) + (z * x)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _≤_ : U → U → Set
field +-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U + (x + v)) ≤ (U + (y + v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field ≤-+-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a + c)
field ≤-+-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c + a)
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-leftZero : ∀ (x : U) → 𝟘 * x ≡ 𝟘
field *-rightZero : ∀ (x : U) → x * 𝟘 ≡ 𝟘
record Dioid : Set₁ where
field U : Set
field _*_ : U → U → U
field _+_ : U → U → U
field *-+-leftDistributivity : ∀ (x y z : U) → x * (y + z) ≡ (x * y) + (x * z)
field *-associative : ∀ (x y z : U) → (x * y) * z ≡ x * (y * z)
field +-associative : ∀ (x y z : U) → (x + y) + z ≡ x + (y + z)
field +-commutative : ∀ (x y : U) → (x + y) ≡ (y + x)
field _≤_ : U → U → Set
field +-≤-orderPreserving : ∀ (x y U v : U) → x ≤ y → (U + (x + v)) ≤ (U + (y + v))
field ≤-reflexive : ∀ (x : U) → _≤_ x x
field ≤-transitive : ∀ (x y z : U) → _≤_ x y → _≤_ y z → _≤_ x z
field ≤-antisymmetric : ∀ (x y : U) → _≤_ y x → _≤_ x y → x ≡ y
field 𝟘 : U
field +-leftIdentity : ∀ (x : U) → 𝟘 + x ≡ x
field +-rightIdentity : ∀ (x : U) → x + 𝟘 ≡ x
field ≤-+-leftCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ a + c)
field ≤-+-rightCanonicalOrder : ∀ (a b : U) → (a ≤ b) ↔ (Σ[ c ∈ U ] b ≡ c + a)
field e : U
field *-leftIdentity : ∀ (x : U) → e * x ≡ x
field *-rightIdentity : ∀ (x : U) → x * e ≡ x
field *-leftZero : ∀ (x : U) → 𝟘 * x ≡ 𝟘
field *-rightZero : ∀ (x : U) → x * 𝟘 ≡ 𝟘
d = Dioid