module Cat.Functor.Univalence where
private variable
: Level
o ℓ o₁ ℓ₁ : Precategory o ℓ
C D open Precategory
open Functor
open _=>_
Our previous results about paths between functors, componentwise invertibility, and general reasoning in univalent categories assemble into the following very straightforward proof that is univalent whenever is.
: is-category D → is-category Cat[ C , D ]
Functor-is-category {D = D} {C = C} d-cat .to-path {F} {G} im =
Functor-is-category (λ x → d-cat .to-path (isoⁿ→iso im x)) coh
Functor-path where
open Univalent d-cat using (Hom-pathp-iso ; pulll ; cancelr)
abstract
: ∀ {x y : C .Ob} (f : C .Hom x y)
coh → PathP (λ i → D .Hom (d-cat .to-path (isoⁿ→iso im x) i) (d-cat .to-path (isoⁿ→iso im y) i))
(F .F₁ f) (G .F₁ f)
= Hom-pathp-iso ( pulll (Isoⁿ.to im .is-natural _ _ _)
coh f (Isoⁿ.invl im ηₚ _))
∙ cancelr {D = D} d-cat .to-path-over p =
Functor-is-category _ _ (λ x → Hom-pathp-reflr-iso (Precategory.idr D (Isoⁿ.to p .η x)))
≅ⁿ-pathp where open Univalent d-cat
module _
{o ℓ o' ℓ' o₂ ℓ₂}
{C : Precategory o ℓ}
{D : Precategory o' ℓ'}
{E : Precategory o₂ ℓ₂}
where
private
= Cat[ D , E ]
de = Cat[ C , D ]
cd open Cat.Reasoning using (to ; from)
open Cat.Univalent
whisker-path-left: ∀ {G G' : Functor D E} {F : Functor C D}
(ecat : is-category de)
→ (p : G ≅ⁿ G') → ∀ {x}
→ path→iso {C = E} (λ i → (Univalent.iso→path ecat p i F∘ F) .F₀ x) .to
.to .η (F .F₀ x)
≡ p {G} {G'} {F} p =
whisker-path-left .J-iso
de(λ B isom → ∀ {x} → path→iso {C = E} (λ i → F₀ (de.iso→path isom i F∘ F) x) .to ≡ isom .to .η (F .F₀ x))
λ {x} → ap (λ e → path→iso {C = E} e .to)
(λ i j → de.iso→path-id {a = G} i j .F₀ (F .F₀ x))
_
∙ transport-refl where module de = Univalent p
whisker-path-right: ∀ {G : Functor D E} {F F' : Functor C D}
(cdcat : is-category cd)
→ (p : F ≅ⁿ F') → ∀ {x}
→ path→iso {C = E} (λ i → G .F₀ (Univalent.iso→path cdcat p i .F₀ x)) .from
.F₁ (p .from .η x)
≡ G {G} {G'} {F} cdcat =
whisker-path-right .J-iso
cd(λ B isom → ∀ {x} → path→iso {C = E} (λ i → G .F₀ (cd.iso→path isom i .F₀ x)) .from ≡ G .F₁ (isom .from .η x))
λ {x} → ap (λ e → path→iso {C = E} e .from)
(λ i j → G .F₀ (cd.iso→path-id {a = G'} i j .F₀ x))
_ ∙ sym (G .F-id)
∙ transport-refl where module cd = Univalent cdcat