@@ -8,6 +8,7 @@ open import GpdCont.Group.TwoCategory using (TwoGroup)
88
99open import GpdCont.TwoCategory.Base
1010open import GpdCont.TwoCategory.LaxFunctor
11+ open import GpdCont.TwoCategory.StrictFunctor using (StrictFunctor)
1112open import GpdCont.TwoCategory.Pseudofunctor
1213open import GpdCont.TwoCategory.HomotopyGroupoid using (hGpdCat ; isLocallyGroupoidalHGpdCat)
1314open 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