{-# OPTIONS --without-K --exact-split --safe #-} module Fragment.Setoid.Morphism.Properties where open import Fragment.Setoid.Morphism.Base open import Fragment.Setoid.Morphism.Setoid open import Level using (Level) open import Relation.Binary using (Setoid) private variable a b c d ℓ₁ ℓ₂ ℓ₃ ℓ₄ : Level A : Setoid a ℓ₁ B : Setoid b ℓ₂ C : Setoid c ℓ₃ D : Setoid d ℓ₄ id-unitˡ : ∀ {f : A ↝ B} → id · f ≗ f id-unitˡ {B = B} = Setoid.refl B id-unitʳ : ∀ {f : A ↝ B} → f · id ≗ f id-unitʳ {B = B} = Setoid.refl B ·-assoc : ∀ (h : C ↝ D) (g : B ↝ C) (f : A ↝ B) → (h · g) · f ≗ h · (g · f) ·-assoc {D = D} _ _ _ = Setoid.refl D ·-congˡ : ∀ (h : B ↝ C) (f g : A ↝ B) → f ≗ g → h · f ≗ h · g ·-congˡ h _ _ f≗g = ∣ h ∣-cong f≗g ·-congʳ : ∀ (h : A ↝ B) (f g : B ↝ C) → f ≗ g → f · h ≗ g · h ·-congʳ _ _ _ f≗g = f≗g