Skip to content

Commit 321c9d1

Browse files
committed
Remove some obsolete lax functors of 2-categories
Removing the old definition lets us give some more sensible names to the new strict 2-functors.
1 parent ac8faa2 commit 321c9d1

File tree

4 files changed

+72
-229
lines changed

4 files changed

+72
-229
lines changed

GpdCont/ActionContainer/AsFamily.agda

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ open import GpdCont.Group.MapConjugator using (Conjugator)
1010
open import GpdCont.GroupAction.Base using (Action ; _⁺_)
1111
open import GpdCont.GroupAction.Equivariant using (isEquivariantMap[_][_,_])
1212
open import GpdCont.GroupAction.TwoCategory using (GroupAction ; isLocallyStrictGroupAction)
13-
open import GpdCont.GroupAction.Delooping as ActionDelooping renaming (Deloopingˢ to ActionDelooping)
13+
open import GpdCont.GroupAction.Delooping as ActionDelooping using (ActionDelooping)
1414
open import GpdCont.SetBundle.Baseusing (SetBundle)
1515

1616
open import GpdCont.TwoCategory.Base using (TwoCategory)
@@ -150,14 +150,14 @@ module _ where
150150
open LocalFunctor Fam𝔹
151151

152152
isLocallyFullyFaithfulFam𝔹 : isLocallyFullyFaithful
153-
isLocallyFullyFaithfulFam𝔹 = Fam𝔹.isLocallyFullyFaithfulFam (isLocallyFullyFaithfulDelooping ℓ)
153+
isLocallyFullyFaithfulFam𝔹 = Fam𝔹.isLocallyFullyFaithfulFam (ActionDelooping.isLocallyFullyFaithfulDelooping ℓ)
154154

155155
module _ (choice : AxiomOfSetChoice ℓ ℓ) where
156156
isLocallyEssentiallySurjectiveFam𝔹 : isLocallyEssentiallySurjective
157157
isLocallyEssentiallySurjectiveFam𝔹 = Fam𝔹.isLocallyEssentiallySurjectiveFam
158158
choice
159159
(isLocallyStrictGroupAction ℓ)
160-
(isEssentiallySurjectiveDelooping ℓ)
160+
(ActionDelooping.isEssentiallySurjectiveDelooping ℓ)
161161

162162
isLocallyWeakEquivalenceFam𝔹 : isLocallyWeakEquivalence
163163
isLocallyWeakEquivalenceFam𝔹 = isLocallyFullyFaithful×EssentiallySurjective→isLocallyWeakEquivalence

GpdCont/Delooping/Functor.agda

Lines changed: 21 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ open import GpdCont.Group.MapConjugator using (Conjugator ; idConjugator ; compC
77
open import GpdCont.Group.TwoCategory using (TwoGroup)
88

99
open import GpdCont.TwoCategory.Base
10-
open import GpdCont.TwoCategory.LaxFunctor
1110
open import GpdCont.TwoCategory.StrictFunctor using (StrictFunctor)
12-
open import GpdCont.TwoCategory.Pseudofunctor
1311
open import GpdCont.TwoCategory.HomotopyGroupoid using (hGpdCat ; isLocallyGroupoidalHGpdCat)
1412
open import GpdCont.TwoCategory.LocalCategory using (LocalCategory)
1513
open import GpdCont.TwoCategory.StrictFunctor.LocalFunctor as LocalFunctor using (LocalFunctor)
@@ -204,130 +202,6 @@ module TwoFunc (ℓ : Level) where
204202
𝔹-rel-trans : (h₁ : TwoGroup.rel φ ψ) (h₂ : TwoGroup.rel ψ ρ) 𝔹-rel (compConjugator h₁ h₂) ≡ 𝔹-rel h₁ ∙ 𝔹-rel h₂
205203
𝔹-rel-trans {φ} {ψ} {ρ} = Map.map≡-comp-∙ φ ψ ρ
206204

207-
private
208-
𝔹-trans-lax :: TwoGroup.hom G H) (ψ : TwoGroup.hom H K) (𝔹-hom φ hGpdCat.∙₁ 𝔹-hom ψ) ≡ 𝔹-hom (φ TwoGroup.∙₁ ψ)
209-
𝔹-trans-lax {G} {H} {K} φ ψ = funExt (𝔹G.elimSet isSetMotive refl λ g i j 𝔹K.loop ((φ TwoGroup.∙₁ ψ) .fst g) i) where
210-
module 𝔹G = Delooping G
211-
module 𝔹K = Delooping K
212-
213-
isSetMotive : (x : Delooping.𝔹 G) isSet ((𝔹-hom ψ $ 𝔹-hom φ x) ≡ (𝔹-hom (φ TwoGroup.∙₁ ψ) x))
214-
isSetMotive x = 𝔹K.isGroupoid𝔹 _ _
215-
216-
𝔹-trans-lax-natural : {φ₁ φ₂ : TwoGroup.hom G H} {ψ₁ ψ₂ : TwoGroup.hom H K}
217-
(h : TwoGroup.rel φ₁ φ₂)
218-
(k : TwoGroup.rel ψ₁ ψ₂)
219-
((𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) ∙ 𝔹-trans-lax φ₂ ψ₂) ≡ (𝔹-trans-lax φ₁ ψ₁ ∙ 𝔹-rel (h TwoGroup.∙ₕ k))
220-
𝔹-trans-lax-natural {G} {H} {K} {φ₁} {φ₂} {ψ₁} {ψ₂} h k = funExtSquare lax where
221-
module K = GroupStr (str K)
222-
module 𝔹G = Delooping G
223-
module 𝔹H = Delooping H
224-
module 𝔹K = Delooping K
225-
226-
open 𝔹G using (cong⋆ ; cong⋆-∙)
227-
228-
-- The meat of the proof: Horizontal composition computes to the correct loop at the point.
229-
-- This is almost definitional, except that the LHS computes to the diagonal of a composite square,
230-
-- in particular it is the diagonal that shows that the group element underlying `(h TwoGroup.∙ₕ k)`
231-
-- is a conjugator of ψ₁ and ψ₂.
232-
lemma : cong⋆ (𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) ≡ 𝔹K.loop ((h TwoGroup.∙ₕ k) .fst)
233-
lemma = Map.map≡-loopᵝ ψ₁ ψ₂ k (h .fst)
234-
235-
lax⋆ : cong⋆ (((𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) ∙ 𝔹-trans-lax φ₂ ψ₂)) ≡ cong⋆ (𝔹-trans-lax φ₁ ψ₁ ∙ 𝔹-rel (h TwoGroup.∙ₕ k))
236-
lax⋆ =
237-
cong⋆ (((𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) ∙ 𝔹-trans-lax φ₂ ψ₂)) ≡⟨ cong⋆-∙ (𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) (𝔹-trans-lax φ₂ ψ₂) ⟩
238-
cong⋆ (𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) ∙ cong⋆ (𝔹-trans-lax φ₂ ψ₂) ≡⟨⟩
239-
cong⋆ (𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) ∙ refl ≡⟨ sym $ GL.rUnit _ ⟩
240-
cong⋆ (𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) ≡⟨ lemma ⟩
241-
𝔹K.loop ((h TwoGroup.∙ₕ k) .fst) ≡⟨⟩
242-
cong⋆ (𝔹-rel (h TwoGroup.∙ₕ k)) ≡⟨ GL.lUnit _ ⟩
243-
refl ∙ cong⋆ (𝔹-rel (h TwoGroup.∙ₕ k)) ≡⟨⟩
244-
cong⋆ (𝔹-trans-lax φ₁ ψ₁) ∙ cong⋆ (𝔹-rel (h TwoGroup.∙ₕ k)) ≡⟨ sym $ cong⋆-∙ (𝔹-trans-lax φ₁ ψ₁) (𝔹-rel (h TwoGroup.∙ₕ k)) ⟩
245-
cong⋆ (𝔹-trans-lax φ₁ ψ₁ ∙ 𝔹-rel (h TwoGroup.∙ₕ k)) ∎
246-
247-
lax : (x : 𝔹G.𝔹) (((𝔹-rel h hGpdCat.∙ₕ 𝔹-rel k) ∙ 𝔹-trans-lax φ₂ ψ₂) ≡$S x) ≡ (𝔹-trans-lax φ₁ ψ₁ ∙ 𝔹-rel (h TwoGroup.∙ₕ k) ≡$S x)
248-
lax = 𝔹G.elimProp (λ x 𝔹K.isGroupoid𝔹 _ _ _ _) lax⋆
249-
250-
𝔹-id-lax : (G : TwoGroup.ob) hGpdCat.id-hom (𝔹-ob G) ≡ 𝔹-hom (TwoGroup.id-hom G)
251-
𝔹-id-lax G = sym (Map.map-id G)
252-
253-
𝔹-assoc :: TwoGroup.hom G H) (ψ : TwoGroup.hom H K) (ρ : TwoGroup.hom K L)
254-
Square
255-
((𝔹-trans-lax φ ψ hGpdCat.∙ₕ refl′ (𝔹-hom ρ)) ∙ 𝔹-trans-lax (φ TwoGroup.∙₁ ψ) ρ)
256-
((refl′ (𝔹-hom φ) hGpdCat.∙ₕ 𝔹-trans-lax ψ ρ) ∙ 𝔹-trans-lax φ (ψ TwoGroup.∙₁ ρ))
257-
(refl′ ((𝔹-hom φ hGpdCat.∙₁ 𝔹-hom ψ) hGpdCat.∙₁ 𝔹-hom ρ))
258-
(cong 𝔹-hom (TwoGroup.comp-hom-assoc φ ψ ρ))
259-
𝔹-assoc {G} {H} {L} φ ψ ρ = funExtSquare assoc-ext where
260-
module 𝔹G = Delooping G
261-
module 𝔹L = Delooping L
262-
263-
open 𝔹G using (cong⋆ ; cong⋆-∙)
264-
265-
assoc-ext : (x : 𝔹G.𝔹) Square
266-
((𝔹-trans-lax φ ψ hGpdCat.∙ₕ refl′ (𝔹-hom ρ)) ∙ 𝔹-trans-lax (φ TwoGroup.∙₁ ψ) ρ ≡$ x)
267-
(((refl′ (𝔹-hom φ) hGpdCat.∙ₕ 𝔹-trans-lax ψ ρ) ∙ 𝔹-trans-lax φ (ψ TwoGroup.∙₁ ρ)) ≡$ x)
268-
refl
269-
(λ i 𝔹-hom (TwoGroup.comp-hom-assoc φ ψ ρ i) x)
270-
assoc-ext = 𝔹G.elimProp (λ x 𝔹L.isPropDeloopingSquare) $
271-
let
272-
p = (𝔹-trans-lax φ ψ hGpdCat.∙ₕ refl′ (𝔹-hom ρ))
273-
q = (𝔹-trans-lax (φ TwoGroup.∙₁ ψ) ρ)
274-
r = (refl′ (𝔹-hom φ) hGpdCat.∙ₕ 𝔹-trans-lax ψ ρ)
275-
s = (𝔹-trans-lax φ (ψ TwoGroup.∙₁ ρ))
276-
in
277-
(cong⋆ $ p ∙ q) ≡⟨ cong⋆-∙ p q ⟩
278-
(cong⋆ p ∙ cong⋆ q) ≡⟨⟩
279-
(refl ∙ refl) ≡⟨ sym $ cong⋆-∙ r s ⟩
280-
(cong⋆ $ r ∙ s) ∎
281-
282-
𝔹-unit-left :: TwoGroup.hom G H)
283-
Square
284-
((𝔹-id-lax G hGpdCat.∙ₕ refl′ (𝔹-hom φ)) hGpdCat.∙ᵥ 𝔹-trans-lax idGroupHom φ)
285-
(refl′ (𝔹-hom φ))
286-
(hGpdCat.comp-hom-unit-left (𝔹-hom φ))
287-
(cong 𝔹-hom (TwoGroup.comp-hom-unit-left φ))
288-
𝔹-unit-left {G} {H} φ = 𝔹-hom-Square unit-left⋆ where
289-
module 𝔹G = Delooping G
290-
module 𝔹H = Delooping H
291-
292-
p : (id ⟨ 𝔹-ob G ⟩) ⋆ (𝔹-hom φ) ≡ (𝔹-hom idGroupHom) ⋆ (𝔹-hom φ)
293-
p = 𝔹-id-lax G hGpdCat.∙ₕ refl′ (𝔹-hom φ)
294-
295-
q : (𝔹-hom idGroupHom ⋆ 𝔹-hom φ) ≡ 𝔹-hom (idGroupHom TwoGroup.∙₁ φ)
296-
q = 𝔹-trans-lax idGroupHom φ
297-
298-
unit-left⋆ : 𝔹G.cong⋆ (p ∙ q) ≡ refl′ 𝔹H.⋆
299-
unit-left⋆ = 𝔹G.cong⋆-∙ p q ∙ sym compPathRefl
300-
301-
𝔹-unit-right :: TwoGroup.hom G H)
302-
Square
303-
((refl′ (𝔹-hom φ) hGpdCat.∙ₕ 𝔹-id-lax H) hGpdCat.∙ᵥ 𝔹-trans-lax φ idGroupHom)
304-
(refl′ (𝔹-hom φ))
305-
(hGpdCat.comp-hom-unit-right (𝔹-hom φ))
306-
(cong 𝔹-hom (TwoGroup.comp-hom-unit-right φ))
307-
𝔹-unit-right {G} {H} φ = 𝔹-hom-Square unit-right⋆ where
308-
module 𝔹G = Delooping G
309-
module 𝔹H = Delooping H
310-
311-
p = refl′ (𝔹-hom φ) hGpdCat.∙ₕ 𝔹-id-lax H
312-
q = 𝔹-trans-lax φ idGroupHom
313-
314-
-- Both p and q reduce to refl at the point:
315-
unit-right⋆ : 𝔹G.cong⋆ (p ∙ q) ≡ refl′ 𝔹H.⋆
316-
unit-right⋆ = 𝔹G.cong⋆-∙ p q ∙ sym compPathRefl
317-
318-
TwoDelooping : LaxFunctor (TwoGroup ℓ) (hGpdCat ℓ)
319-
TwoDelooping .LaxFunctor.F-ob = 𝔹-ob
320-
TwoDelooping .LaxFunctor.F-hom = 𝔹-hom
321-
TwoDelooping .LaxFunctor.F-rel = 𝔹-rel
322-
TwoDelooping .LaxFunctor.F-rel-id = 𝔹-rel-id
323-
TwoDelooping .LaxFunctor.F-rel-trans = 𝔹-rel-trans
324-
TwoDelooping .LaxFunctor.F-trans-lax = 𝔹-trans-lax
325-
TwoDelooping .LaxFunctor.F-trans-lax-natural = 𝔹-trans-lax-natural
326-
TwoDelooping .LaxFunctor.F-id-lax = 𝔹-id-lax
327-
TwoDelooping .LaxFunctor.F-assoc = 𝔹-assoc
328-
TwoDelooping .LaxFunctor.F-unit-left = 𝔹-unit-left
329-
TwoDelooping .LaxFunctor.F-unit-right = 𝔹-unit-right
330-
331205
private
332206
𝔹-hom-id : (G : TwoGroup.ob) hGpdCat.id-hom (𝔹-ob G) ≡ 𝔹-hom (TwoGroup.id-hom G)
333207
𝔹-hom-id G = sym (Map.map-id G)
@@ -402,42 +276,42 @@ module TwoFunc (ℓ : Level) where
402276
unit-right = 𝔹-hom-Square (reflSquare 𝔹H.⋆)
403277

404278

405-
TwoDeloopingˢ : StrictFunctor (TwoGroup ℓ) (hGpdCat ℓ)
406-
TwoDeloopingˢ .StrictFunctor.F-ob = 𝔹-ob
407-
TwoDeloopingˢ .StrictFunctor.F-hom = 𝔹-hom
408-
TwoDeloopingˢ .StrictFunctor.F-rel = 𝔹-rel
409-
TwoDeloopingˢ .StrictFunctor.F-rel-id = 𝔹-rel-id
410-
TwoDeloopingˢ .StrictFunctor.F-rel-trans = 𝔹-rel-trans
411-
TwoDeloopingˢ .StrictFunctor.F-hom-comp = 𝔹-hom-comp
412-
TwoDeloopingˢ .StrictFunctor.F-hom-id = 𝔹-hom-id
413-
TwoDeloopingˢ .StrictFunctor.F-assoc-filler-left = 𝔹-assoc.filler-left
414-
TwoDeloopingˢ .StrictFunctor.F-assoc-filler-right = 𝔹-assoc.filler-right
415-
TwoDeloopingˢ .StrictFunctor.F-assoc = 𝔹-assoc.assoc
416-
TwoDeloopingˢ .StrictFunctor.F-unit-left-filler = 𝔹-unit-left.filler
417-
TwoDeloopingˢ .StrictFunctor.F-unit-left = 𝔹-unit-left.unit-left
418-
TwoDeloopingˢ .StrictFunctor.F-unit-right-filler = 𝔹-unit-right.filler
419-
TwoDeloopingˢ .StrictFunctor.F-unit-right = 𝔹-unit-right.unit-right
279+
𝔹 : StrictFunctor (TwoGroup ℓ) (hGpdCat ℓ)
280+
𝔹 .StrictFunctor.F-ob = 𝔹-ob
281+
𝔹 .StrictFunctor.F-hom = 𝔹-hom
282+
𝔹 .StrictFunctor.F-rel = 𝔹-rel
283+
𝔹 .StrictFunctor.F-rel-id = 𝔹-rel-id
284+
𝔹 .StrictFunctor.F-rel-trans = 𝔹-rel-trans
285+
𝔹 .StrictFunctor.F-hom-comp = 𝔹-hom-comp
286+
𝔹 .StrictFunctor.F-hom-id = 𝔹-hom-id
287+
𝔹 .StrictFunctor.F-assoc-filler-left = 𝔹-assoc.filler-left
288+
𝔹 .StrictFunctor.F-assoc-filler-right = 𝔹-assoc.filler-right
289+
𝔹 .StrictFunctor.F-assoc = 𝔹-assoc.assoc
290+
𝔹 .StrictFunctor.F-unit-left-filler = 𝔹-unit-left.filler
291+
𝔹 .StrictFunctor.F-unit-left = 𝔹-unit-left.unit-left
292+
𝔹 .StrictFunctor.F-unit-right-filler = 𝔹-unit-right.filler
293+
𝔹 .StrictFunctor.F-unit-right = 𝔹-unit-right.unit-right
420294

421295
private
422-
module TwoDeloopingˢ = StrictFunctor TwoDeloopingˢ
296+
module 𝔹 = StrictFunctor 𝔹
423297

424-
isLocallyFullyFaithfulDelooping : LocalFunctor.isLocallyFullyFaithful TwoDeloopingˢ
298+
isLocallyFullyFaithfulDelooping : LocalFunctor.isLocallyFullyFaithful 𝔹
425299
isLocallyFullyFaithfulDelooping G H = goal where module _ (φ ψ : TwoGroup.hom G H) where
426300
goal : isEquiv 𝔹-rel
427301
goal = equivIsEquiv (MapPathEquiv.map≡Equiv φ ψ)
428302

429303
localDeloopingEmbedding : {G H : TwoGroup.ob} (φ ψ : TwoGroup.hom G H)
430-
TwoGroup.rel φ ψ ≃ hGpdCat.rel (TwoDeloopingˢ.₁ φ) (TwoDeloopingˢ.₁ ψ)
431-
localDeloopingEmbedding = LocalFunctor.localEmbedding TwoDeloopingˢ isLocallyFullyFaithfulDelooping
304+
TwoGroup.rel φ ψ ≃ hGpdCat.rel (𝔹.₁ φ) (𝔹.₁ ψ)
305+
localDeloopingEmbedding = LocalFunctor.localEmbedding 𝔹 isLocallyFullyFaithfulDelooping
432306

433-
isLocallyEssentiallySurjectiveDelooping : LocalFunctor.isLocallyEssentiallySurjective TwoDeloopingˢ
307+
isLocallyEssentiallySurjectiveDelooping : LocalFunctor.isLocallyEssentiallySurjective 𝔹
434308
isLocallyEssentiallySurjectiveDelooping G H = goal where module _ (f : ⟨ 𝔹-ob G ⟩ ⟨ 𝔹-ob H ⟩) where
435309
open import Cubical.HITs.PropositionalTruncation.Monad
436310
goal : ∃[ φ ∈ GroupHom G H ] CatIso (LocalCategory _ (𝔹-ob G) (𝔹-ob H)) (map φ) f
437311
goal = do
438312
(φ , section-f-mapφ) LocalInverse.isSurjection-map f
439313
∃-intro φ $ pathToIso section-f-mapφ
440314

441-
isLocallyWeakEquivalenceDelooping : LocalFunctor.isLocallyWeakEquivalence TwoDeloopingˢ
315+
isLocallyWeakEquivalenceDelooping : LocalFunctor.isLocallyWeakEquivalence 𝔹
442316
isLocallyWeakEquivalenceDelooping G H .isWeakEquivalence.fullfaith = isLocallyFullyFaithfulDelooping G H
443317
isLocallyWeakEquivalenceDelooping G H .isWeakEquivalence.esssurj = isLocallyEssentiallySurjectiveDelooping G H

0 commit comments

Comments
 (0)