Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Free groupoids and final functors #348

Merged
merged 17 commits into from
Jan 31, 2024
Merged

Free groupoids and final functors #348

merged 17 commits into from
Jan 31, 2024

Conversation

ncfavier
Copy link
Member

Description

Closes #335 in the maximally annoying way, by using the fully correct definition of final functors:

  • define the free groupoid on a category and show that it satisfies the universal property of the left biadjoint to the inclusion of groupoids into categories (dual to the core)
  • define connected categories as those that are merely inhabited and merely have a zigzag connecting every two objects (ensuring that their free groupoid is connected in the sense of HoTT), prove that this is equivalent to the coequaliser Ob/Hom being contractible
  • redefine final functors as those whose comma categories are connected, adapt the existing proofs that composition with a final functor leaves colimits unchanged and that final functors are closed under composition, and give some examples of final functors (full, essentially surjective functors between groupoids; right adjoints; inclusions of terminal objects)

The new definition is much more annoying to work with and I am very much open to improvements to the proofs, particularly the closure under composition of final functors. I couldn't find the argument fully spelt out anywhere (even the nlab handwaves that it "suffices to consider the case of a zigzag of length one"), and I think I understand why...

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
Copy link
Member

Lavenza commented Jan 22, 2024

Pull request preview

@ncfavier ncfavier marked this pull request as draft January 22, 2024 18:24
@ncfavier ncfavier marked this pull request as ready for review January 24, 2024 15:16
@ncfavier ncfavier requested review from plt-amy and TOTBWF January 24, 2024 15:16
plt-amy
plt-amy previously approved these changes Jan 30, 2024
@plt-amy plt-amy self-requested a review January 31, 2024 01:00
Copy link
Member Author

@ncfavier ncfavier left a comment

Choose a reason for hiding this comment

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

This is much, much better than what I came up with!

@plt-amy plt-amy merged commit 8e80bdb into main Jan 31, 2024
5 checks passed
@plt-amy plt-amy deleted the final branch January 31, 2024 12:12
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.

Final functors are a pain
3 participants