Algebraic preliminaries
Contents
open import Agda.Primitive open import Relation.Binary.Core open import Relation.Binary.Structures open import Relation.Binary.PropositionalEquality using (_≡_) renaming (refl to ≡-refl; sym to ≡-sym) module Preliminaries.Equivalence {A : Set} {_≈_ : Rel A lzero} (isEq : IsEquivalence _≈_) where open IsEquivalence isEq module Eq where infix 1 begin_ infixr 2 step-≈-∣ step-≈-⟩ step-≈-⟨ step-≈-⟨′ step-≡-⟩ step-≡-⟨ infix 3 _∎ ≡→≈ : ∀ {a b} → a ≡ b → a ≈ b ≡→≈ ≡-refl = refl begin_ : ∀ {f g : A} → f ≈ g → f ≈ g begin x≈y = x≈y step-≈-∣ : ∀ (f : A) {g : A} → f ≈ g → f ≈ g step-≈-∣ _ x≈y = x≈y step-≈-⟩ : ∀ (f : A) {g h : A} → g ≈ h → f ≈ g → f ≈ h step-≈-⟩ _ y≈z x≈y = trans x≈y y≈z step-≈-⟨ : (f : A) {g h : A} → g ≈ h → g ≈ f → f ≈ h step-≈-⟨ _ g≈h f≈g = trans (sym f≈g) g≈h step-≈-⟨′ = step-≈-⟨ step-≡-⟩ : ∀ (f : A) {g h : A} → g ≈ h → f ≡ g → f ≈ h step-≡-⟩ _ g≈h ≡-refl = g≈h step-≡-⟨ : ∀ (f : A) {g h : A} → g ≈ h → g ≡ f → f ≈ h step-≡-⟨ _ g≈h ≡-refl = g≈h syntax step-≈-∣ x x≈y = x ≈⟨⟩ x≈y syntax step-≈-⟩ x y≈z x≈y = x ≈⟨ x≈y ⟩ y≈z syntax step-≈-⟨ x y≈z y≈x = x ≈⟨ y≈x ⟨ y≈z syntax step-≈-⟨′ x y≈z y≈x = x ≈⟩ y≈x ⟩ y≈z syntax step-≡-⟩ x y≈z x≡y = x ≡⟨ x≡y ⟩ y≈z syntax step-≡-⟨ x y≈z x≡y = x ≡⟨ x≡y ⟨ y≈z _∎ : ∀ (f : A) → f ≈ f x ∎ = refl
References
Last-modified: Jan 23 14:13:56 2026