{-# OPTIONS --without-K --safe #-}
module Util.HoTT.Homotopy where

open import Relation.Binary using (IsEquivalence)

open import Util.Prelude
open import Util.Relation.Binary.PropositionalEquality using (cong-app)


module _ {α β} {A : Set α} {B : A  Set β} where

  _~_ : (f g :  a  B a)  Set (α ⊔ℓ β)
  f ~ g =  a  f a  g a


  ~-refl :  {f}  f ~ f
  ~-refl a = refl


  ~-sym :  {f g}  f ~ g  g ~ f
  ~-sym f~g a = sym (f~g a)


  ~-trans :  {f g h}  f ~ g  g ~ h  f ~ h
  ~-trans f~g g~h a = trans (f~g a) (g~h a)


  ~-IsEquivalence : IsEquivalence _~_
  ~-IsEquivalence = record { refl = ~-refl ; sym = ~-sym ; trans = ~-trans }


  ≡→~ :  {f g}  f  g  f ~ g
  ≡→~ = cong-app