module Relation.Binary.Indexed where
import Relation.Binary as B
open import Relation.Binary.Indexed.Core public
_at_ : ∀ {i s₁ s₂} {I : Set i} → Setoid I s₁ s₂ → I → B.Setoid _ _
S at i = record
{ Carrier = S.Carrier i
; _≈_ = S._≈_
; isEquivalence = record
{ refl = S.refl
; sym = S.sym
; trans = S.trans
}
} where module S = Setoid S
infixr 4 _=[_]⇒_
_=[_]⇒_ : ∀ {a b ℓ₁ ℓ₂} {A : Set a} {B : A → Set b} →
B.Rel A ℓ₁ → ((x : A) → B x) → Rel B ℓ₂ → Set _
P =[ f ]⇒ Q = ∀ {i j} → P i j → Q (f i) (f j)