@@ -8,9 +8,9 @@ description: |
88```agda
99open import Cat.Diagram.Coproduct.Indexed
1010open import Cat.Instances.Shape.Terminal
11+ open import Cat.Instances.Discrete.Pre
1112open import Cat.Diagram.Colimit.Base
1213open import Cat.Instances.Shape.Two
13- open import Cat.Instances.Discrete
1414open import Cat.Diagram.Coproduct
1515open import Cat.Functor.Constant
1616open import Cat.Functor.Kan.Base
@@ -110,71 +110,60 @@ Colimit→Coproduct colim .has-is-coproduct =
110110
111111## Indexed coproducts as colimits
112112
113- Similarly to the product case, when $I$ is a groupoid, indexed
114- coproducts correspond to colimits of discrete diagrams of shape $I$.
113+ Similarly to the product case, coproducts indexed by a type $I$
114+ correspond to colimits of shape the [[ fundamental pregroupoid ]] of $I$.
115115
116116``` agda
117- module _ {I : Type ℓ'} (i-is-grpd : is-groupoid I) ( F : I → Ob) where
117+ module _ {I : Type ℓ'} (F : I → Ob) where
118118 open _=>_
119119
120- Inj→Cocone : ∀ {x} → (∀ i → Hom (F i) x)
121- → Disc-adjunct {C = C} {iss = i-is-grpd} F => Const x
120+ Inj→Cocone : ∀ {x} → (∀ i → Hom (F i) x) → Π₁-adjunct C F => Const x
122121 Inj→Cocone inj .η i = inj i
123- Inj→Cocone inj .is-natural i j p =
122+ Inj→Cocone inj .is-natural i j = elim! $
124123 J (λ j p → inj j ∘ subst (Hom (F i) ⊙ F) p id ≡ id ∘ inj i)
125- (elimr (transport-refl id) ∙ sym (idl _)) p
124+ (elimr (transport-refl id) ∙ sym (idl _))
126125
127126 is-indexed-coproduct→is-colimit
128127 : ∀ {x} {inj : ∀ i → Hom (F i) x}
129128 → is-indexed-coproduct C F inj
130- → is-colimit (Disc-adjunct F) x (Inj→Cocone inj)
131- is-indexed-coproduct→is-colimit {x = x} {inj} ic =
132- to-is-colimitp mc refl
133- where
134- module ic = is-indexed-coproduct ic
135- open make-is-colimit
136-
137- mc : make-is-colimit (Disc-adjunct F) x
138- mc .ψ i = inj i
139- mc .commutes {i} {j} p =
140- J (λ j p → inj j ∘ subst (Hom (F i) ⊙ F) p id ≡ inj i)
141- (elimr (transport-refl id))
142- p
143- mc .universal eta p = ic.match eta
144- mc .factors eta p = ic.commute
145- mc .unique eta p other q = ic.unique eta q
129+ → is-colimit (Π₁-adjunct C F) x (Inj→Cocone inj)
130+ is-indexed-coproduct→is-colimit {x = x} {inj} ic = to-is-colimitp mc refl where
131+ module ic = is-indexed-coproduct ic
132+ open make-is-colimit
133+
134+ mc : make-is-colimit (Π₁-adjunct C F) x
135+ mc .ψ i = inj i
136+ mc .commutes {i} {j} = elim! $
137+ J (λ j p → inj j ∘ subst (Hom (F i) ⊙ F) p id ≡ inj i)
138+ (elimr (transport-refl id))
139+ mc .universal eta p = ic.match eta
140+ mc .factors eta p = ic.commute
141+ mc .unique eta p other q = ic.unique eta q
146142
147143 is-colimit→is-indexed-coprduct
148144 : ∀ {K : Functor ⊤Cat C}
149- → {eta : Disc -adjunct {iss = i-is-grpd} F => K F∘ !F}
150- → is-lan !F (Disc -adjunct F) K eta
145+ → {eta : Π₁ -adjunct C F => K F∘ !F}
146+ → is-lan !F (Π₁ -adjunct C F) K eta
151147 → is-indexed-coproduct C F (eta .η)
152148 is-colimit→is-indexed-coprduct {K = K} {eta} colim = ic where
153149 module colim = is-colimit colim
154150 open is-indexed-coproduct hiding (eta)
155151
156152 ic : is-indexed-coproduct C F (eta .η)
157- ic .match k =
158- colim.universal k
159- (J (λ j p → k j ∘ subst (Hom (F _) ⊙ F) p id ≡ k _)
160- (elimr (transport-refl _)))
161- ic .commute =
162- colim.factors _ _
163- ic .unique k comm =
164- colim.unique _ _ _ comm
165-
166- IC→Colimit
167- : Indexed-coproduct C F
168- → Colimit {C = C} (Disc-adjunct {iss = i-is-grpd} F)
169- IC→Colimit ic =
170- to-colimit (is-indexed-coproduct→is-colimit has-is-ic)
153+ ic .match k = colim.universal k comm where abstract
154+ comm : {x y : I} (h : ∥ x ≡ y ∥₀) → k y ∘ Π₁-adjunct₁ C F h ≡ k x
155+ comm = elim! $ J
156+ (λ y p → k y ∘ path→iso (ap F p) .to ≡ k _) (elimr (transport-refl _))
157+ ic .commute = colim.factors _ _
158+ ic .unique k comm = colim.unique _ _ _ comm
159+
160+ IC→Colimit : Indexed-coproduct C F → Colimit (Π₁-adjunct C F)
161+ IC→Colimit ic = to-colimit (is-indexed-coproduct→is-colimit has-is-ic)
171162 where open Indexed-coproduct ic
172163
173- Colimit→IC
174- : Colimit {C = C} (Disc-adjunct {iss = i-is-grpd} F)
175- → Indexed-coproduct C F
164+ Colimit→IC : Colimit (Π₁-adjunct C F) → Indexed-coproduct C F
176165 Colimit→IC colim .Indexed-coproduct.ΣF = _
177- Colimit→IC colim .Indexed-coproduct.ι = _
178- Colimit→IC colim .Indexed-coproduct.has-is-ic =
179- is-colimit→is-indexed-coprduct ( Colimit.has-colimit colim)
166+ Colimit→IC colim .Indexed-coproduct.ι = _
167+ Colimit→IC colim .Indexed-coproduct.has-is-ic = is-colimit→is-indexed-coprduct $
168+ Colimit.has-colimit colim
180169```
0 commit comments