123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657-------------------------------------------------------------------------- The Agda standard library---- Lemmas relating algebraic definitions (such as associativity and-- commutativity) that don't require the equality relation to be a setoid.------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} module Algebra.Consequences.Base {a} {A : Set a} where open import Algebra.Core using (Op₁; Op₂)import Algebra.Definitions as Definitions using (Congruent₂; LeftCongruent; RightCongruent ; Selective; Idempotent; SelfInverse; Involutive)open import Data.Sum.Base using (_⊎_; reduce)open import Relation.Binary.Consequences using (mono₂⇒monoˡ; mono₂⇒monoʳ)open import Relation.Binary.Core using (Rel)open import Relation.Binary.Definitions using (Reflexive) module Congruence {ℓ} {_∙_ : Op₂ A} (_≈_ : Rel A ℓ) (open Definitions _≈_) (cong : Congruent₂ _∙_) (refl : Reflexive _≈_) where ∙-congˡ : LeftCongruent _∙_ ∙-congˡ {x} = mono₂⇒monoˡ _ _≈_ _≈_ (refl {x = x}) cong x ∙-congʳ : RightCongruent _∙_ ∙-congʳ {x} = mono₂⇒monoʳ _≈_ _ _≈_ (refl {x = x}) cong x module _ {ℓ} {_∙_ : Op₂ A} (_≈_ : Rel A ℓ) (open Definitions _≈_) where sel⇒idem : Selective _∙_ → Idempotent _∙_ sel⇒idem sel x = reduce (sel x x) module _ {ℓ} {f : Op₁ A} (_≈_ : Rel A ℓ) (open Definitions _≈_) where reflexive∧selfInverse⇒involutive : Reflexive _≈_ → SelfInverse f → Involutive f reflexive∧selfInverse⇒involutive refl inv _ = inv refl -------------------------------------------------------------------------- DEPRECATED NAMES-------------------------------------------------------------------------- Please use the new names as continuing support for the old names is-- not guaranteed. -- Version 2.0 reflexive+selfInverse⇒involutive = reflexive∧selfInverse⇒involutive{-# WARNING_ON_USAGE reflexive+selfInverse⇒involutive"Warning: reflexive+selfInverse⇒involutive was deprecated in v2.0.Please use reflexive∧selfInverse⇒involutive instead."#-}