------------------------------------------------------------------------
-- The Agda standard library
--
-- Convenient syntax for reasoning with a partial setoid
------------------------------------------------------------------------
{-# OPTIONS --without-K --safe #-}
open import Relation.Binary
module Relation.Binary.Reasoning.PartialSetoid
  {s₁ s₂} (S : PartialSetoid s₁ s₂) where
open PartialSetoid S
import Relation.Binary.Reasoning.Base.Partial _≈_ trans as Base
------------------------------------------------------------------------
-- Re-export the contents of the base module
open Base public
  hiding (step-∼)
------------------------------------------------------------------------
-- Additional reasoning combinators
infixr 2 step-≈ step-≈˘
-- A step using an equality
step-≈ = Base.step-∼
syntax step-≈ x y≈z x≈y = x ≈⟨ x≈y ⟩ y≈z
-- A step using a symmetric equality
step-≈˘ : ∀ x {y z} → y IsRelatedTo z → y ≈ x → x IsRelatedTo z
step-≈˘ x y∼z y≈x = x ≈⟨ sym y≈x ⟩ y∼z
syntax step-≈˘ x y≈z y≈x = x ≈˘⟨ y≈x ⟩ y≈z