Skip to content

Commit dc24b00

Browse files
committed
Delooping of groups is a *strict* 2-functor
1 parent acfd70a commit dc24b00

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

GpdCont/Delooping/Functor.agda

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ open import GpdCont.Group.TwoCategory using (TwoGroup)
88

99
open import GpdCont.TwoCategory.Base
1010
open import GpdCont.TwoCategory.LaxFunctor
11+
open import GpdCont.TwoCategory.StrictFunctor using (StrictFunctor)
1112
open import GpdCont.TwoCategory.Pseudofunctor
1213
open import GpdCont.TwoCategory.HomotopyGroupoid using (hGpdCat ; isLocallyGroupoidalHGpdCat)
1314
open import GpdCont.TwoCategory.LocalCategory using (LocalCategory)
@@ -352,3 +353,78 @@ module TwoFunc (ℓ : Level) where
352353
isLocallyWeakEquivalenceDelooping : LocalFunctor.isLocallyWeakEquivalence TwoDelooping
353354
isLocallyWeakEquivalenceDelooping G H .isWeakEquivalence.fullfaith = isLocallyFullyFaithfulDelooping G H
354355
isLocallyWeakEquivalenceDelooping G H .isWeakEquivalence.esssurj = isLocallyEssentiallySurjectiveDelooping G H
356+
357+
private
358+
𝔹-hom-id : (G : TwoGroup.ob) hGpdCat.id-hom (𝔹-ob G) ≡ 𝔹-hom (TwoGroup.id-hom G)
359+
𝔹-hom-id G = sym (Map.map-id G)
360+
361+
𝔹-hom-comp : {G H K : TwoGroup.ob} (φ : TwoGroup.hom G H) (ψ : TwoGroup.hom H K)
362+
(𝔹-hom φ hGpdCat.∙₁ 𝔹-hom ψ) ≡ 𝔹-hom (φ TwoGroup.∙₁ ψ)
363+
𝔹-hom-comp φ ψ = sym (Map.map-comp φ ψ)
364+
365+
module 𝔹-assoc {G H K L : TwoGroup.ob} (φ* @ (φ , _) : TwoGroup.hom G H) (ψ* @ (ψ , _) : TwoGroup.hom H K) (ρ* @ (ρ , _) : TwoGroup.hom K L) where
366+
module 𝔹G = Delooping _ (str G)
367+
module 𝔹L = Delooping _ (str L)
368+
assoc-hom : (𝔹-hom φ* ⋆ 𝔹-hom ψ*) ⋆ 𝔹-hom ρ* ≡ 𝔹-hom ((φ* TwoGroup.∙₁ ψ*) TwoGroup.∙₁ ρ*)
369+
assoc-hom = funExt (𝔹G.elimSet (λ _ str (𝔹-ob L) _ _) refl λ g j i 𝔹L.loop (ρ (ψ (φ g))) j)
370+
371+
filler-left : PathCompFiller (cong (λ - hGpdCat._∙₁_ {x = 𝔹-ob G} - (𝔹-hom ρ*)) (sym (Map.map-comp φ* ψ*))) (sym (Map.map-comp (φ* TwoGroup.∙₁ ψ*) ρ*))
372+
filler-left .fst = funExt (𝔹G.elimSet (λ _ str (𝔹-ob L) _ _) refl λ g j i 𝔹L.loop (ρ (ψ (φ g))) j)
373+
filler-left .snd = 𝔹-hom-Square λ i j 𝔹L.⋆
374+
{-# INJECTIVE_FOR_INFERENCE filler-left #-}
375+
376+
filler-right : PathCompFiller (cong (λ - hGpdCat._∙₁_ {z = 𝔹-ob L} (𝔹-hom φ*) -) (sym (Map.map-comp ψ* ρ*))) (sym (Map.map-comp φ* (ψ* TwoGroup.∙₁ ρ*)))
377+
filler-right .fst = funExt (𝔹G.elimSet (λ _ str (𝔹-ob L) _ _) refl λ g j i 𝔹L.loop (ρ (ψ (φ g))) j)
378+
filler-right .snd = 𝔹-hom-Square λ i j 𝔹L.⋆
379+
{-# INJECTIVE_FOR_INFERENCE filler-right #-}
380+
381+
assoc : PathP
382+
(λ i hGpdCat.comp-hom-assoc (𝔹-hom φ*) (𝔹-hom ψ*) (𝔹-hom ρ*) i ≡ 𝔹-hom (TwoGroup.comp-hom-assoc φ* ψ* ρ* i))
383+
(filler-left .fst)
384+
(filler-right .fst)
385+
assoc = 𝔹-hom-Square λ i j 𝔹L.⋆
386+
{-# INJECTIVE_FOR_INFERENCE assoc #-}
387+
388+
module 𝔹-unit-left {G H : TwoGroup.ob} (φ : TwoGroup.hom G H) where
389+
module 𝔹G = Delooping _ (str G)
390+
module 𝔹H = Delooping _ (str H)
391+
392+
filler : PathCompFiller (cong (λ - hGpdCat._∙₁_ {x = 𝔹-ob G} - (𝔹-hom φ)) (sym (Map.map-id G))) (sym (Map.map-comp (TwoGroup.id-hom G) φ))
393+
filler .fst = cong 𝔹-hom (sym $ TwoGroup.comp-hom-unit-left φ)
394+
filler .snd = 𝔹-hom-Square λ i j 𝔹H.⋆
395+
{-# INJECTIVE_FOR_INFERENCE filler #-}
396+
397+
unit-left : PathP (λ i hGpdCat.comp-hom-unit-left (𝔹-hom φ) i ≡ 𝔹-hom (TwoGroup.comp-hom-unit-left φ i))
398+
(filler .fst)
399+
(refl′ (𝔹-hom φ))
400+
unit-left = 𝔹-hom-Square λ i j 𝔹H.⋆
401+
402+
module 𝔹-unit-right {G H : TwoGroup.ob} (φ : TwoGroup.hom G H) where
403+
module 𝔹G = Delooping _ (str G)
404+
module 𝔹H = Delooping _ (str H)
405+
filler : PathCompFiller (cong ((𝔹-hom φ) hGpdCat.∙₁_) (𝔹-hom-id H)) (𝔹-hom-comp φ (TwoGroup.id-hom H))
406+
filler .fst = cong 𝔹-hom (sym $ TwoGroup.comp-hom-unit-right φ)
407+
filler .snd = 𝔹-hom-Square λ i j 𝔹H.⋆
408+
{-# INJECTIVE_FOR_INFERENCE filler #-}
409+
410+
unit-right : PathP (λ i hGpdCat.comp-hom-unit-right (𝔹-hom φ) i ≡ 𝔹-hom (TwoGroup.comp-hom-unit-right φ i))
411+
(filler .fst)
412+
(refl′ (𝔹-hom φ))
413+
unit-right = 𝔹-hom-Square λ i j 𝔹H.⋆
414+
415+
416+
TwoDeloopingˢ : StrictFunctor (TwoGroup ℓ) (hGpdCat ℓ)
417+
TwoDeloopingˢ .StrictFunctor.F-ob = 𝔹-ob
418+
TwoDeloopingˢ .StrictFunctor.F-hom = 𝔹-hom
419+
TwoDeloopingˢ .StrictFunctor.F-rel = 𝔹-rel
420+
TwoDeloopingˢ .StrictFunctor.F-rel-id = 𝔹-rel-id
421+
TwoDeloopingˢ .StrictFunctor.F-rel-trans = 𝔹-rel-trans
422+
TwoDeloopingˢ .StrictFunctor.F-hom-comp = 𝔹-hom-comp
423+
TwoDeloopingˢ .StrictFunctor.F-hom-id = 𝔹-hom-id
424+
TwoDeloopingˢ .StrictFunctor.F-assoc-filler-left = 𝔹-assoc.filler-left
425+
TwoDeloopingˢ .StrictFunctor.F-assoc-filler-right = 𝔹-assoc.filler-right
426+
TwoDeloopingˢ .StrictFunctor.F-assoc = 𝔹-assoc.assoc
427+
TwoDeloopingˢ .StrictFunctor.F-unit-left-filler = 𝔹-unit-left.filler
428+
TwoDeloopingˢ .StrictFunctor.F-unit-left = 𝔹-unit-left.unit-left
429+
TwoDeloopingˢ .StrictFunctor.F-unit-right-filler = 𝔹-unit-right.filler
430+
TwoDeloopingˢ .StrictFunctor.F-unit-right = 𝔹-unit-right.unit-right

0 commit comments

Comments
 (0)