-- §────────────────────────────────────────────────────────────────── -- Modules required for specifying parameters of this module -- §────────────────────────────────────────────────────────────────── import Level as L import Relation.Binary as RB -- §────────────────────────────────────────────────────────────────── -- This module -- §────────────────────────────────────────────────────────────────── module My.Algebra.Structure.BinaryOperation {𝓁 𝓂 : L.Level} {A : Set 𝓁} (_≈_ : RB.Rel A 𝓂) where -- §────────────────────────────────────────────────────────────────── -- Other required modules -- §────────────────────────────────────────────────────────────────── import Algebra.FunctionProperties as AFP import Data.Product as DP open DP using (_×_) open L using (_⊔_) -- §────────────────────────────────────────────────────────────────── -- Cancellation -- §────────────────────────────────────────────────────────────────── LeftCancellative : AFP.Op₂ A → Set (𝓁 ⊔ 𝓂) LeftCancellative _∙_ = (a : A) → {x y : A} → (a ∙ x) ≈ (a ∙ y) → x ≈ y RightCancellative : AFP.Op₂ A → Set (𝓁 ⊔ 𝓂) RightCancellative _∙_ = (x y : A) → {a : A} → (x ∙ a) ≈ (y ∙ a) → x ≈ y Cancellative : AFP.Op₂ A → Set (𝓁 ⊔ 𝓂) Cancellative _∙_ = LeftCancellative _∙_ × RightCancellative _∙_