Skip to content

Commit 59507bc

Browse files
committed
Delooping of groups is a *strict* 2-functor
1 parent 34b5513 commit 59507bc

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)
@@ -347,3 +348,78 @@ module TwoFunc (ℓ : Level) where
347348
isLocallyWeakEquivalenceDelooping : LocalFunctor.isLocallyWeakEquivalence TwoDelooping
348349
isLocallyWeakEquivalenceDelooping G H .isWeakEquivalence.fullfaith = isLocallyFullyFaithfulDelooping G H
349350
isLocallyWeakEquivalenceDelooping G H .isWeakEquivalence.esssurj = isLocallyEssentiallySurjectiveDelooping G H
351+
352+
private
353+
𝔹-hom-id : (G : TwoGroup.ob) hGpdCat.id-hom (𝔹-ob G) ≡ 𝔹-hom (TwoGroup.id-hom G)
354+
𝔹-hom-id G = sym (Map.map-id G)
355+
356+
𝔹-hom-comp : {G H K : TwoGroup.ob} (φ : TwoGroup.hom G H) (ψ : TwoGroup.hom H K)
357+
(𝔹-hom φ hGpdCat.∙₁ 𝔹-hom ψ) ≡ 𝔹-hom (φ TwoGroup.∙₁ ψ)
358+
𝔹-hom-comp φ ψ = sym (Map.map-comp φ ψ)
359+
360+
module 𝔹-assoc {G H K L : TwoGroup.ob} (φ* @ (φ , _) : TwoGroup.hom G H) (ψ* @ (ψ , _) : TwoGroup.hom H K) (ρ* @ (ρ , _) : TwoGroup.hom K L) where
361+
module 𝔹G = Delooping G
362+
module 𝔹L = Delooping L
363+
assoc-hom : (𝔹-hom φ* ⋆ 𝔹-hom ψ*) ⋆ 𝔹-hom ρ* ≡ 𝔹-hom ((φ* TwoGroup.∙₁ ψ*) TwoGroup.∙₁ ρ*)
364+
assoc-hom = funExt (𝔹G.elimSet (λ _ str (𝔹-ob L) _ _) refl λ g j i 𝔹L.loop (ρ (ψ (φ g))) j)
365+
366+
filler-left : PathCompFiller (cong (λ - hGpdCat._∙₁_ {x = 𝔹-ob G} - (𝔹-hom ρ*)) (sym (Map.map-comp φ* ψ*))) (sym (Map.map-comp (φ* TwoGroup.∙₁ ψ*) ρ*))
367+
filler-left .fst = funExt (𝔹G.elimSet (λ _ str (𝔹-ob L) _ _) refl λ g j i 𝔹L.loop (ρ (ψ (φ g))) j)
368+
filler-left .snd = 𝔹-hom-Square (reflSquare 𝔹L.⋆)
369+
{-# INJECTIVE_FOR_INFERENCE filler-left #-}
370+
371+
filler-right : PathCompFiller (cong (λ - hGpdCat._∙₁_ {z = 𝔹-ob L} (𝔹-hom φ*) -) (sym (Map.map-comp ψ* ρ*))) (sym (Map.map-comp φ* (ψ* TwoGroup.∙₁ ρ*)))
372+
filler-right .fst = funExt (𝔹G.elimSet (λ _ str (𝔹-ob L) _ _) refl λ g j i 𝔹L.loop (ρ (ψ (φ g))) j)
373+
filler-right .snd = 𝔹-hom-Square (reflSquare 𝔹L.⋆)
374+
{-# INJECTIVE_FOR_INFERENCE filler-right #-}
375+
376+
assoc : PathP
377+
(λ i hGpdCat.comp-hom-assoc (𝔹-hom φ*) (𝔹-hom ψ*) (𝔹-hom ρ*) i ≡ 𝔹-hom (TwoGroup.comp-hom-assoc φ* ψ* ρ* i))
378+
(filler-left .fst)
379+
(filler-right .fst)
380+
assoc = 𝔹-hom-Square (reflSquare 𝔹L.⋆)
381+
{-# INJECTIVE_FOR_INFERENCE assoc #-}
382+
383+
module 𝔹-unit-left {G H : TwoGroup.ob} (φ : TwoGroup.hom G H) where
384+
module 𝔹G = Delooping G
385+
module 𝔹H = Delooping H
386+
387+
filler : PathCompFiller (cong (λ - hGpdCat._∙₁_ {x = 𝔹-ob G} - (𝔹-hom φ)) (sym (Map.map-id G))) (sym (Map.map-comp (TwoGroup.id-hom G) φ))
388+
filler .fst = cong 𝔹-hom (sym $ TwoGroup.comp-hom-unit-left φ)
389+
filler .snd = 𝔹-hom-Square (reflSquare 𝔹H.⋆)
390+
{-# INJECTIVE_FOR_INFERENCE filler #-}
391+
392+
unit-left : PathP (λ i hGpdCat.comp-hom-unit-left (𝔹-hom φ) i ≡ 𝔹-hom (TwoGroup.comp-hom-unit-left φ i))
393+
(filler .fst)
394+
(refl′ (𝔹-hom φ))
395+
unit-left = 𝔹-hom-Square (reflSquare 𝔹H.⋆)
396+
397+
module 𝔹-unit-right {G H : TwoGroup.ob} (φ : TwoGroup.hom G H) where
398+
module 𝔹G = Delooping G
399+
module 𝔹H = Delooping H
400+
filler : PathCompFiller (cong ((𝔹-hom φ) hGpdCat.∙₁_) (𝔹-hom-id H)) (𝔹-hom-comp φ (TwoGroup.id-hom H))
401+
filler .fst = cong 𝔹-hom (sym $ TwoGroup.comp-hom-unit-right φ)
402+
filler .snd = 𝔹-hom-Square (reflSquare 𝔹H.⋆)
403+
{-# INJECTIVE_FOR_INFERENCE filler #-}
404+
405+
unit-right : PathP (λ i hGpdCat.comp-hom-unit-right (𝔹-hom φ) i ≡ 𝔹-hom (TwoGroup.comp-hom-unit-right φ i))
406+
(filler .fst)
407+
(refl′ (𝔹-hom φ))
408+
unit-right = 𝔹-hom-Square (reflSquare 𝔹H.⋆)
409+
410+
411+
TwoDeloopingˢ : StrictFunctor (TwoGroup ℓ) (hGpdCat ℓ)
412+
TwoDeloopingˢ .StrictFunctor.F-ob = 𝔹-ob
413+
TwoDeloopingˢ .StrictFunctor.F-hom = 𝔹-hom
414+
TwoDeloopingˢ .StrictFunctor.F-rel = 𝔹-rel
415+
TwoDeloopingˢ .StrictFunctor.F-rel-id = 𝔹-rel-id
416+
TwoDeloopingˢ .StrictFunctor.F-rel-trans = 𝔹-rel-trans
417+
TwoDeloopingˢ .StrictFunctor.F-hom-comp = 𝔹-hom-comp
418+
TwoDeloopingˢ .StrictFunctor.F-hom-id = 𝔹-hom-id
419+
TwoDeloopingˢ .StrictFunctor.F-assoc-filler-left = 𝔹-assoc.filler-left
420+
TwoDeloopingˢ .StrictFunctor.F-assoc-filler-right = 𝔹-assoc.filler-right
421+
TwoDeloopingˢ .StrictFunctor.F-assoc = 𝔹-assoc.assoc
422+
TwoDeloopingˢ .StrictFunctor.F-unit-left-filler = 𝔹-unit-left.filler
423+
TwoDeloopingˢ .StrictFunctor.F-unit-left = 𝔹-unit-left.unit-left
424+
TwoDeloopingˢ .StrictFunctor.F-unit-right-filler = 𝔹-unit-right.filler
425+
TwoDeloopingˢ .StrictFunctor.F-unit-right = 𝔹-unit-right.unit-right

0 commit comments

Comments
 (0)