{-# OPTIONS --without-K --safe #-}
module Categories.Category.Lift.Properties where
open import Level
open import Categories.Category.Core
open import Categories.Category.Equivalence
open import Categories.Category.Lift
open import Categories.NaturalTransformation.NaturalIsomorphism
import Categories.Morphism.Reasoning.Core as MR
unliftF-liftF-weakInverse : ∀ {o ℓ e} o′ ℓ′ e′ (C : Category o ℓ e) → WeakInverse (unliftF o′ ℓ′ e′ C) (liftF o′ ℓ′ e′ C)
unliftF-liftF-weakInverse o′ ℓ′ e′ C = record
{ F∘G≈id = niHelper record
{ η = λ _ → id
; η⁻¹ = λ _ → id
; commute = λ f → id-comm-sym
; iso = λ _ → record
{ isoˡ = identity²
; isoʳ = identity²
}
}
; G∘F≈id = niHelper record
{ η = λ _ → lift id
; η⁻¹ = λ _ → lift id
; commute = λ _ → lift id-comm-sym
; iso = λ _ → record
{ isoˡ = lift identity²
; isoʳ = lift identity²
}
}
}
where
open Category C
open MR C
liftC-strongEquivalence : ∀ {o ℓ e} o′ ℓ′ e′ (C : Category o ℓ e) → StrongEquivalence (liftC o′ ℓ′ e′ C) C
liftC-strongEquivalence o′ ℓ′ e′ C = record { weak-inverse = unliftF-liftF-weakInverse o′ ℓ′ e′ C }