123456789101112131415161718192021222324252627282930-------------------------------------------------------------------------- The Agda standard library---- Some theory for Semigroup------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} open import Algebra using (Semigroup) module Algebra.Properties.Semigroup {a ℓ} (S : Semigroup a ℓ) where open Semigroup Sopen import Algebra.Definitions _≈_open import Data.Product.Base using (_,_) x∙yz≈xy∙z : ∀ x y z → x ∙ (y ∙ z) ≈ (x ∙ y) ∙ zx∙yz≈xy∙z x y z = sym (assoc x y z) alternativeˡ : LeftAlternative _∙_alternativeˡ x y = assoc x x y alternativeʳ : RightAlternative _∙_alternativeʳ x y = sym (assoc x y y) alternative : Alternative _∙_alternative = alternativeˡ , alternativeʳ flexible : Flexible _∙_flexible x y = assoc x y x