Skip to content

defn: Pseudofunctor bicategories and the Grothendieck construction as a lax colimit#612

Open
aathn wants to merge 14 commits into
the1lab:mainfrom
aathn:cat-lax-colim
Open

defn: Pseudofunctor bicategories and the Grothendieck construction as a lax colimit#612
aathn wants to merge 14 commits into
the1lab:mainfrom
aathn:cat-lax-colim

Conversation

@aathn

@aathn aathn commented Mar 26, 2026

Copy link
Copy Markdown
Contributor

Description

Proves that the (contravariant) Grothendieck construction of a pseudofunctor F : Pseudofunctor (Locally-discrete (I ^op)) (Cat _ _) is the lax colimit of F (see nlab; note that the covariant construction is the oplax colimit and vice versa).

This required adding a lot of bicategorical definitions, including composition of lax functors, lax transformations, and modifications. I defined the Grothendieck construction by way of the canonical displayed category associated with F, and also proved some properties about the latter. I have tried to separate the PR into a series of meaningful commits with somewhat descriptive messages.

Checklist

Before submitting a merge request, please check the items below:

  • I've read the contributing guidelines.
  • The imports of new modules have been sorted with support/sort-imports.hs (or nix run --experimental-features nix-command -f . sort-imports).
  • All new code blocks have "agda" as their language.

If your change affects many files without adding substantial content, and
you don't want your name to appear on those pages (for example, treewide
refactorings or reformattings), start the commit message and PR title with chore:.

@Lavenza

Lavenza commented Mar 26, 2026

Copy link
Copy Markdown
Member

@aathn aathn force-pushed the cat-lax-colim branch 16 times, most recently from e2f5d1a to 62bf56f Compare April 2, 2026 00:03
@aathn aathn force-pushed the cat-lax-colim branch 7 times, most recently from 7c4cd8c to f3ef5e2 Compare April 10, 2026 20:47
@aathn aathn force-pushed the cat-lax-colim branch 5 times, most recently from 8b4b980 to b723bc9 Compare April 11, 2026 18:43
@aathn aathn force-pushed the cat-lax-colim branch 2 times, most recently from 6832902 to d880749 Compare April 11, 2026 19:41
@aathn aathn marked this pull request as ready for review April 11, 2026 19:44

@plt-amy plt-amy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay i have like round one

Comment thread src/Cat/Bi/Functor/Base.lagda.md
Comment thread src/Cat/Bi/Functor/Constant.lagda.md
Comment thread src/Cat/Bi/Functor/Hom.lagda.md
Comment thread src/Cat/Bi/Functor/IndexedCategory.lagda.md
Comment thread src/Cat/Bi/Functor/Transformation.lagda.md
Comment thread src/Cat/Bi/Duality.lagda.md
Comment thread src/Cat/Bi/Equivalence.lagda.md Outdated
Comment thread src/Cat/Instances/Product/Duality.lagda.md Outdated
Comment thread src/Cat/Bi/Instances/Functor.lagda.md
Comment thread src/Cat/Bi/Diagram/Colimit.lagda.md Outdated
@aathn aathn force-pushed the cat-lax-colim branch 4 times, most recently from ed95d81 to 4f57700 Compare April 15, 2026 22:02
@aathn aathn force-pushed the cat-lax-colim branch 2 times, most recently from c9758d6 to 0448384 Compare June 28, 2026 19:41

@plt-amy plt-amy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i just have some style quibbles, this is otherwise great work and very well-written!

Comment thread src/Cat/Bi/Functor/Base.lagda.md
Comment on lines +80 to +82
lf .Lf.hexagon f g h = ext λ _ → bicat! C
lf .Lf.right-unit f = ext λ _ → bicat! C
lf .Lf.left-unit f = ext λ _ → bicat! C

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wow 🤩

Comment thread src/Cat/Bi/Diagram/Colimit.lagda.md Outdated
Comment thread src/Cat/Bi/Diagram/Colimit.lagda.md Outdated
Comment thread src/Cat/Bi/Diagram/Colimit.lagda.md
Comment thread src/Cat/Bi/Diagram/Colimit.lagda.md Outdated
Comment thread src/Cat/Bi/Instances/Functor.lagda.md
Comment thread src/Cat/Bi/Duality.lagda.md
aathn added 5 commits June 30, 2026 21:12
Adds the canonical inclusion functor from the fibre categories of a
displayed category into the total category.  Also adds lemmas relating
this functor to the base change functor when the displayed category is a fibration.
Adds identity and composite constructions for lax functors and
pseudofunctors, as well as reasoning modules with helper lemmas.
Adds identity and composition constructions for lax and pseudonatural transformations.
Adds identity, vertical, and horizontal composition constructions for
modifications between lax transformations.
aathn and others added 9 commits June 30, 2026 22:32
Defines opposite and conjugate bicategories, obtained by swapping the
direction of 1-cells and 2-cells, respectively.  Also defines an oplax
functor as a lax functor on the conjugate categories, and defines the
conjugate dual of a pseudofunctor.
Defines the category of lax transformations between two
lax/pseudo-functors and modifications between them, and the same for
oplax transformations.  Defines the bicategories of lax/pseudo-functors
between two bicategories and (op-)lax transformations between them.
Adds the covariant pseudofunctor which given a fixed object X maps an
object Y to the hom-category from X to Y
Defines the constant pseudofunctor between bicategories B and C given
a fixed object in C, as well as the curried pseudofunctor from C into
the (oplax) pseudofunctor bicategory between B and C.
Defines adjunctions in a bicategory and adjoint equivalences, and proves
that they correspond to the familiar notions in Cat.  Also defines
pseudonatural equivalences as a pseudonatural transformations which are
componentwise equivalences.
Defines the canonical displayed category associated with a contravariant
pseudofunctor from a locally discrete category into Cat, and proves it
is a fibration.  Also proves that the fibres of the displayed category
coincide with the values of the pseudofunctor, and that the base change
functors coincide with the pseudofunctor mapping.

Defines the total category of this fibration using Cat.Displayed.Total
and specializes the canonical inclusion functor using the equivalences
mentioned above.

Finally, the module defines some specialized lemmas for indexed
categories and lax-transformations between them.
This defines the notion of a lax colimit, and shows that the
contravariant Grothendieck construction of a pseudofunctor F corresponds
to the lax colimit of F.
Co-authored-by: Amélia Liao <me@amelia.how>
@aathn aathn requested a review from plt-amy June 30, 2026 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants