Skip to content

Commit 72a3657

Browse files
aathnplt-amy
andcommitted
chore: Tweak bicategory prose and address review comments
Co-authored-by: Amélia Liao <me@amelia.how>
1 parent af443de commit 72a3657

9 files changed

Lines changed: 252 additions & 273 deletions

File tree

src/Cat/Bi/Base.lagda.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -713,11 +713,12 @@ diagrams **in** bicategories, which are (mercifully) limited to 2-cells.
713713
open Modification
714714
open _=>ₗ_
715715
716-
Mod-pathp : {α α' β β' : F =>ₗ G}
717-
→ (p : α ≡ α') (q : β ≡ β')
718-
→ {a : Modification α β} {b : Modification α' β'}
719-
→ (∀ x → PathP _ (a .Γ x) (b .Γ x))
720-
→ PathP (λ i → Modification (p i) (q i)) a b
716+
Mod-pathp
717+
: {α α' β β' : F =>ₗ G}
718+
→ (p : α ≡ α') (q : β ≡ β')
719+
→ {a : Modification α β} {b : Modification α' β'}
720+
→ (∀ x → PathP _ (a .Γ x) (b .Γ x))
721+
→ PathP (λ i → Modification (p i) (q i)) a b
721722
Mod-pathp p q path i .Γ x = path x i
722723
Mod-pathp p q {a} {b} path i .is-natural {x} {y} {f} =
723724
is-prop→pathp
@@ -726,10 +727,11 @@ diagrams **in** bicategories, which are (mercifully) limited to 2-cells.
726727
(a .is-natural)
727728
(b .is-natural) i
728729
729-
_Γᵈ_ : {α α' β β' : F =>ₗ G} {p : α ≡ α'} {q : β ≡ β'}
730-
→ {a : Modification α β} {b : Modification α' β'}
731-
→ PathP (λ i → Modification (p i) (q i)) a b
732-
→ ∀ x → PathP _ (a .Γ x) (b .Γ x)
730+
_Γᵈ_
731+
: {α α' β β' : F =>ₗ G} {p : α ≡ α'} {q : β ≡ β'}
732+
→ {a : Modification α β} {b : Modification α' β'}
733+
→ PathP (λ i → Modification (p i) (q i)) a b
734+
→ ∀ x → PathP _ (a .Γ x) (b .Γ x)
733735
p Γᵈ x = apd (λ i e → e .Γ x) p
734736
735737
_Γₚ_ : {α β : F =>ₗ G} {a b : Modification α β} → a ≡ b → ∀ x → a .Γ x ≡ b .Γ x

src/Cat/Bi/Diagram/Colimit.lagda.md

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ conditions should hold up to isomorphism or merely a directed
6161
transformation. For example, in a 1-category, given two parallel
6262
morphisms
6363

64-
~~~{.quiver}
64+
~~~{.quiver .attach-around}
6565
\[\begin{tikzcd}
6666
A & B
6767
\arrow["f", shift left, from=1-1, to=1-2]
@@ -109,14 +109,14 @@ pseudofunctor $F$, illustrated in the diagram below.
109109
\arrow[""{name=0, anchor=center, inner sep=0}, "{{\phi_i}}", from=2-1, to=1-2]
110110
\arrow["{{F(f)}}"', from=2-1, to=2-2]
111111
\arrow["{{\phi_j}}"', from=2-2, to=1-2]
112-
\arrow[Rightarrow, from=0, to=2-2, shorten <= 0.2em]
112+
\arrow["{\small\nu_f}", Rightarrow, from=0, to=2-2, shorten <= 0.2em]
113113
\end{tikzcd}\]
114114
~~~
115115

116-
For each object $i$ in the diagram, $\phi_i : F(i) \to X$ gives a leg of
117-
the cocone, and for any morphism $f : i \to j$, we have a 2-cell
118-
isomorphism $\nu_f : \phi_i \cong \phi_j F(f)$ in place of the usual
119-
commutativity requirement for cocones.
116+
For each object $i$ in the diagram, the map $\phi_i : F(i) \to X$ gives
117+
a leg of the cocone, and for any morphism $f : i \to j$, we have an
118+
invertible 2-cell $\nu_f : \phi_i \cong \phi_j F(f)$ in place of the
119+
usual commutativity requirement for cocones.
120120

121121
As is often the case in bicategorical definitions, we have the choice of
122122
whether to consider cocones $F \to \Delta_X$ which commute strongly (so
@@ -125,8 +125,7 @@ that $\nu_f$ is an isomorphism as above), or to take cocones with
125125
2-cell). The latter choice yields the notion of a **lax colimit** (or
126126
oplax, depending on the direction of the 2-cells). It is known that
127127
(op-)lax colimits can be expressed as bicolimits by altering the diagram
128-
category, but in this page, we mainly deal with lax colimits, so we opt
129-
to define those directly.
128+
category, but here we give a direct definition.
130129

131130
<!--
132131
TODO: Also define bicolimits and oplax colimits properly.
@@ -140,26 +139,23 @@ equivalence $\bicat{C}(L,-) \cong [\bicat{I},\bicat{C}]_o(F,\Delta)$,
140139
where $[\bicat{I},\bicat{C}]_o$ denotes the bicategory of pseudofunctors
141140
from $\bicat{I}$ to $\bicat{C}$ together with *oplax* transformations
142141
between them.[^why-oplax] The codomain of this equivalence can be
143-
translated into Agda as follows.
142+
translated into Mikan as follows.
144143

145-
[^why-oplax]: The reason that the lax colimit involves oplax
146-
transformations is that a lax colimit is defined to coincide with a lax
147-
limit in the opposite bicategory, which ends up reversing the direction
148-
of cocone 2-cells.
144+
[^why-oplax]: The reason the definition involves oplax transformations
145+
is that a lax colimit is defined to coincide with a lax limit in the
146+
opposite bicategory, which ends up reversing the direction of cocone
147+
2-cells.
149148

150149
```agda
151150
lax-cocones-at : Pseudofunctor C (Cat _ _)
152151
lax-cocones-at = Hom-from-bi (Pseudoₒ I C) (opᵖ F) P∘ Const-pseudoₒ
153152
```
154153

155154
Now, by a bicategorical Yoneda argument, any pseudonatural equivalence
156-
of the form discussed is determined by its value at $\id : L \to L$,
155+
of the form above is determined by its value at $\id : L \to L$,
157156
which is a cocone $F \To \Delta_L$, namely the universal colimiting
158-
cocone.
159-
160-
Under the Yoneda correspondence, a cocone at $L$ induces a functor
161-
$\bicat{C}(L,X) \to [\bicat{I},\bicat{C}]_o(F,\Delta_L)$ by
162-
precomposition.
157+
cocone. Conversely, any cocone at $L$ induces a functor $\bicat{C}(L,X)
158+
\to [\bicat{I},\bicat{C}]_o(F,\Delta_L)$ by precomposition.
163159

164160
```agda
165161
module _ (L : Ob) (univ-cocone : opᵖ F .lax =>ₒ ConstP L .lax) where
@@ -184,16 +180,17 @@ mostly boil down to automated bicategory reasoning.
184180
F∘ Flip (Lax.compose _ _) F∘ Const-pseudoₒ.Const₁
185181
≅ⁿ postaction (Cat _ _) (hom→cocone₀ X) F∘ compose
186182
hom→cocone-nat = to-natural-iso ni where
183+
open make-natural-iso
187184
ni : make-natural-iso _ _
188-
ni .make-natural-iso.eta f .η g .Γ a = α← _
189-
ni .make-natural-iso.eta f .η g .is-natural = bicat! C
190-
ni .make-natural-iso.eta f .is-natural g h α = ext λ _ → bicat! C
191-
ni .make-natural-iso.inv f .η g .Γ a = α→ _
192-
ni .make-natural-iso.inv f .η g .is-natural = bicat! C
193-
ni .make-natural-iso.inv f .is-natural g h α = ext λ _ → bicat! C
194-
ni .make-natural-iso.eta∘inv f = ext λ _ _ → Br.α≅ C .invr
195-
ni .make-natural-iso.inv∘eta f = ext λ _ _ → Br.α≅ C .invl
196-
ni .make-natural-iso.natural g h α = ext λ _ _ → bicat! C
185+
ni .eta f .η g .Γ a = α← _
186+
ni .eta f .η g .is-natural = bicat! C
187+
ni .eta f .is-natural g h α = ext λ _ → bicat! C
188+
ni .inv f .η g .Γ a = α→ _
189+
ni .inv f .η g .is-natural = bicat! C
190+
ni .inv f .is-natural g h α = ext λ _ → bicat! C
191+
ni .eta∘inv f = ext λ _ _ → Br.α≅ C .invr
192+
ni .inv∘eta f = ext λ _ _ → Br.α≅ C .invl
193+
ni .natural g h α = ext λ _ _ → bicat! C
197194
198195
hom→cocone : Hom-from-bi C L .lax =>ₚ lax-cocones-at .lax
199196
hom→cocone .lax .σ = hom→cocone₀
@@ -202,13 +199,12 @@ mostly boil down to automated bicategory reasoning.
202199
hom→cocone .lax .ν-unitor = ext λ _ _ → bicat! C
203200
hom→cocone .naturator-inv f =
204201
Cr.iso→invertible Cat[ _ , _ ] (isoⁿ→iso hom→cocone-nat f)
205-
206202
```
207203

208204
</details>
209205

210206
In other words, to show that $L$ is the lax colimit of $F$, it suffices
211-
to provide a candidate cocone with apex $L$, and show that
207+
to provide a candidate cocone with apex $L$, and show that the induced
212208
`hom→cocone`{.Agda} is a pseudonatural equivalence, which corresponds to
213209
showing that the provided cocone is universal.
214210

src/Cat/Bi/Diagram/Colimit/IndexedCategory.lagda.md

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ An especially important case of lax colimits are those of [[indexed
3636
categories]], i.e., contravariant pseudofunctors from a [[locally
3737
discrete bicategory]] into $\Cat$. For an indexed category $F :
3838
\ca{I}\op \to \Cat$, the lax colimit of $F$ coincides with the
39-
[[Grothendieck construction]] $\int F$, which is what we show in this
40-
module.
39+
[[Grothendieck construction]] $\int F$, which we show in this module.
4140

4241
<!--
4342
```agda
@@ -51,7 +50,7 @@ module.
5150
5251
private
5352
module I = Precategory I
54-
module F = IndexedCategory F
53+
module F = Indexed-category F
5554
module F₀ {x} = Cr (F.₀ x)
5655
module G = Cr (∫ F.displayed)
5756
module Cat = Br (Cat (o ⊔ o') (h ⊔ h'))
@@ -60,21 +59,13 @@ module.
6059
```
6160
-->
6261

63-
```agda
64-
univ-cocone : opᵖ F .lax =>ₒ ConstP F.∫ .lax
65-
```
66-
6762
To construct the universal cocone, we use the canonical inclusion
68-
functors from the fibre categories of $F$ into $\int F$.
69-
70-
```agda
71-
univ-cocone .σ a = F.ιᶠ a
72-
```
73-
74-
The naturality 2-cells are straightforward to define, and we did so
75-
already off-screen.
63+
functors from the fibre categories of $F$ into $\int F$. The naturality
64+
2-cells are straightforward to define, and we did so already off-screen.
7665

7766
```agda
67+
univ-cocone : opᵖ F .lax =>ₒ ConstP F.∫ .lax
68+
univ-cocone .σ a = F.ιᶠ a
7869
univ-cocone .naturator .η f = nat-unidl-to (F.ιᶠ-base-change f)
7970
```
8071

@@ -133,9 +124,9 @@ which factors the other cocone through the universal one.
133124

134125
Assume that we are given a lax cocone $\alpha : F \To \Delta_X$. This
135126
is an oplax transformation with functor components $F(i) \to X$ for each
136-
$i \in \ca{I}$. Since an object of $\int F$ bundles an $i \in \ca{I}$
137-
with some $a \in F(i)$, we can use $\alpha_i$ to map $a$ into $X$,
138-
giving us the object mapping we need.
127+
$i : \ca{I}$. Since an object of $\int F$ bundles an $i : \ca{I}$ with
128+
some $a : F(i)$, we can use $\alpha_i$ to map $a$ into $X$, giving us
129+
the object mapping we need.
139130

140131
```agda
141132
module α = _=>ₗ_ α
@@ -144,7 +135,7 @@ giving us the object mapping we need.
144135
```
145136

146137
For the morphism mapping, we are given $f : i \to j$ in $\ca{I}$,
147-
together with some $\phi : a \to F(f)(b)$ with $a \in F(i)$ and $b \in
138+
together with some $\phi : a \to F(f)(b)$ with $a : F(i)$ and $b :
148139
F(j)$, and we must produce a morphism $\alpha_i(a) \to \alpha_j(b)$.
149140
Taking $\alpha_i(\phi) : \alpha_i(a) \to \alpha_i(F(f)(b))$ gets us
150141
almost all of the way. To complete the definition, we need a morphism
@@ -169,7 +160,7 @@ identities of $\alpha$.
169160
(α.ν→ f .η Fz ∘ α.σ y .F₁ Ff) ∘ α.ν→ g .η Fy ∘ α.σ x .F₁ Fg ∎
170161
```
171162

172-
Furthermore, assignment of cocones to functors itself extends to a
163+
Furthermore, this assignment of cocones to functors itself extends to a
173164
functor from the category of oplax transformations from $F$ to
174165
$\Delta_X$ to the functor category $[\int F, X]$.
175166

@@ -180,9 +171,9 @@ $\Delta_X$ to the functor category $[\int F, X]$.
180171

181172
The morphism mapping of this functor acts on modifications $\gamma :
182173
\alpha \to \beta$ between cones, and produces a natural transformation
183-
of induced functors. This means that at each object $(i, a) \in \int
184-
F$, we must give a component morphism $\alpha_i(a) \to \beta_i(a)$ in
185-
$X$. But unwrapping the definitions, we see that these are just the
174+
of induced functors. This means that at each object $(i, a) : \int F$,
175+
we must give a component morphism $\alpha_i(a) \to \beta_i(a)$ in $X$.
176+
But unwrapping the definitions, we see that these are just the
186177
components of $\gamma$.
187178

188179
```agda

src/Cat/Bi/Duality.lagda.md

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ open Cr._≅_
4141
open _=>_ renaming (op to opⁿ)
4242
4343
module _ (C : Prebicategory o h ℓ) where
44+
open make-natural-iso
4445
open Prebicategory C
4546
private
4647
module C = Br C
@@ -77,18 +78,18 @@ $\bicat{C}$, and vice versa.
7778
```agda
7879
_^op .Pb.unitor-l = to-natural-iso ni where
7980
ni : make-natural-iso _ _
80-
ni .make-natural-iso.eta = ρ→
81-
ni .make-natural-iso.inv = ρ←
82-
ni .make-natural-iso.eta∘inv _ = C.ρ≅ .invl
83-
ni .make-natural-iso.inv∘eta _ = C.ρ≅ .invr
84-
ni .make-natural-iso.natural _ _ _ = sym $ ρ→nat _
81+
ni .eta = ρ→
82+
ni .inv = ρ←
83+
ni .eta∘inv _ = C.ρ≅ .invl
84+
ni .inv∘eta _ = C.ρ≅ .invr
85+
ni .natural _ _ _ = sym $ ρ→nat _
8586
_^op .Pb.unitor-r = to-natural-iso ni where
8687
ni : make-natural-iso _ _
87-
ni .make-natural-iso.eta = λ→
88-
ni .make-natural-iso.inv = λ←
89-
ni .make-natural-iso.eta∘inv _ = C.λ≅ .invl
90-
ni .make-natural-iso.inv∘eta _ = C.λ≅ .invr
91-
ni .make-natural-iso.natural _ _ _ = sym $ λ→nat _
88+
ni .eta = λ→
89+
ni .inv = λ←
90+
ni .eta∘inv _ = C.λ≅ .invl
91+
ni .inv∘eta _ = C.λ≅ .invr
92+
ni .natural _ _ _ = sym $ λ→nat _
9293
```
9394

9495
Finally, the associator in $\bicat{C}\op$ is given by the inverse of the
@@ -97,10 +98,10 @@ associator of $\bicat{C}$.
9798
```agda
9899
_^op .Pb.associator = to-natural-iso ni where
99100
ni : make-natural-iso _ _
100-
ni .make-natural-iso.eta _ = α← _
101-
ni .make-natural-iso.inv _ = α→ _
102-
ni .make-natural-iso.eta∘inv _ = C.α≅ .invr
103-
ni .make-natural-iso.inv∘eta _ = C.α≅ .invl
101+
ni .eta _ = α← _
102+
ni .inv _ = α→ _
103+
ni .eta∘inv _ = C.α≅ .invr
104+
ni .inv∘eta _ = C.α≅ .invl
104105
```
105106

106107
<details>
@@ -111,7 +112,7 @@ expects.
111112
</summary>
112113

113114
```agda
114-
ni .make-natural-iso.natural _ _ _ =
115+
ni .natural _ _ _ =
115116
CH.car (CH.cdr (ap (C._◀ _) (compose.rlmap _ _)) ∙ compose.rlmap _ _)
116117
∙∙ sym (α←nat _ _ _)
117118
∙∙ CH.cdr (CH.cdr (ap (_ C.▶_) (compose.lrmap _ _)) ∙ compose.lrmap _ _)
@@ -164,24 +165,24 @@ opposite direction, which we achieve by taking their inverses.
164165
```agda
165166
_^co .Pb.unitor-l = to-natural-iso ni where
166167
ni : make-natural-iso _ _
167-
ni .make-natural-iso.eta = λ←
168-
ni .make-natural-iso.inv = λ→
169-
ni .make-natural-iso.eta∘inv _ = C.λ≅ .invl
170-
ni .make-natural-iso.inv∘eta _ = C.λ≅ .invr
171-
ni .make-natural-iso.natural _ _ _ = λ←nat _
168+
ni .eta = λ←
169+
ni .inv = λ→
170+
ni .eta∘inv _ = C.λ≅ .invl
171+
ni .inv∘eta _ = C.λ≅ .invr
172+
ni .natural _ _ _ = λ←nat _
172173
_^co .Pb.unitor-r = to-natural-iso ni where
173174
ni : make-natural-iso _ _
174-
ni .make-natural-iso.eta = ρ←
175-
ni .make-natural-iso.inv = ρ→
176-
ni .make-natural-iso.eta∘inv _ = C.ρ≅ .invl
177-
ni .make-natural-iso.inv∘eta _ = C.ρ≅ .invr
178-
ni .make-natural-iso.natural _ _ _ = ρ←nat _
175+
ni .eta = ρ←
176+
ni .inv = ρ→
177+
ni .eta∘inv _ = C.ρ≅ .invl
178+
ni .inv∘eta _ = C.ρ≅ .invr
179+
ni .natural _ _ _ = ρ←nat _
179180
_^co .Pb.associator = to-natural-iso ni where
180181
ni : make-natural-iso _ _
181-
ni .make-natural-iso.eta = α←
182-
ni .make-natural-iso.inv = α→
183-
ni .make-natural-iso.eta∘inv _ = C.α≅ .invl
184-
ni .make-natural-iso.inv∘eta _ = C.α≅ .invr
182+
ni .eta = α←
183+
ni .inv = α→
184+
ni .eta∘inv _ = C.α≅ .invl
185+
ni .inv∘eta _ = C.α≅ .invr
185186
```
186187

187188
<details>
@@ -191,7 +192,7 @@ whiskerings.
191192
</summary>
192193

193194
```agda
194-
ni .make-natural-iso.natural _ _ _ =
195+
ni .natural _ _ _ =
195196
CH.cdr (CH.car (ap (_ C.▶_) (compose.rlmap _ _)) ∙ compose.rlmap _ _)
196197
∙∙ α←nat _ _ _
197198
∙∙ CH.car (CH.car (ap (C._◀ _) (compose.lrmap _ _)) ∙ compose.lrmap _ _)
@@ -224,8 +225,9 @@ module _ {B : Prebicategory o h ℓ} {C : Prebicategory o' h' ℓ'} where
224225
-->
225226

226227
As with functors, lax functors have duals going between the opposite
227-
categories. All we need to do is apply the compositor in with the
228-
opposite order of arguments and reorder the hexagon diagram accordingly.
228+
categories. The compositor of the opposite functor is given by flipping
229+
the original compositor, and the hexagon diagram can be reordered
230+
accordingly.
229231

230232
```agda
231233
opˡ : Lax-functor (B ^op) (C ^op)
@@ -242,10 +244,11 @@ opposite order of arguments and reorder the hexagon diagram accordingly.
242244
opˡ .left-unit = F.right-unit
243245
```
244246

245-
On the other hand, there is no good notion of "conjugate dual" from
247+
On the other hand, there is no good notion of a "conjugate dual" from
246248
$\bicat{B}\co$ to $\bicat{C}\co$ for a lax functor: we would need to
247249
invert the directions of the compositor and unitor, but for a lax
248-
functor, this is not possible.
250+
functor, this is not possible. On the other hand, for pseudofunctors we
251+
get both flavors of duals.
249252

250253
<!--
251254
```agda
@@ -254,20 +257,16 @@ functor, this is not possible.
254257
```
255258
-->
256259

257-
For pseudofunctors, the situation is a bit different. As with lax
258-
functors, we get a dual between the opposite bicategories, by the same
259-
construction as above.
260-
261260
```agda
262261
opᵖ : Pseudofunctor (B ^op) (C ^op)
263262
opᵖ .lax = opˡ (F .lax)
264263
opᵖ .unitor-inv = F.unitor-inv
265264
opᵖ .compositor-inv (f , g) = F.compositor-inv (g , f)
266265
```
267266

268-
A pseudofunctor $F$ also has a conjugate dual, whose action on objects
269-
is the same, but whose action on $\hom$-categories is given by the
270-
opposite of $F$'s morphism mapping.
267+
The conjugate dual of a pseudofunctor $F$ acts the same as $F$ on
268+
objects, but its action on $\hom$-categories is given by the opposite of
269+
$F$'s action.
271270

272271
```agda
273272
co : Pseudofunctor (B ^co) (C ^co)

0 commit comments

Comments
 (0)