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

[Merged by Bors] - feat(category_theory/groupoid/free): free groupoid on a quiver #16666

Closed
wants to merge 47 commits into from

Conversation

bottine
Copy link
Collaborator

@bottine bottine commented Sep 27, 2022

Define the free groupoid on a quiver and prove its universal property.


Open in Gitpod

@bottine bottine added the awaiting-review The author would like community review of the PR label Sep 27, 2022
@bors
Copy link

bors bot commented Oct 3, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(category_theory/groupoid/free): free groupoid on a quiver [Merged by Bors] - feat(category_theory/groupoid/free): free groupoid on a quiver Oct 3, 2022
@bors bors bot closed this Oct 3, 2022
@bors bors bot deleted the bottine/free_groupoid_cats branch October 3, 2022 12:02
@alreadydone alreadydone restored the bottine/free_groupoid_cats branch October 6, 2022 05:05
@alreadydone alreadydone reopened this Oct 6, 2022
Copy link
Collaborator

@alreadydone alreadydone left a comment

Choose a reason for hiding this comment

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

Hi @bottine, I just had some time to look at this PR more closely, and find it very nice in general, but I do have some suggestions that you may want to include in your subsequent PR, so I temporarily re-opened this PR to add them. The main issue is with the module docstring and name of some declarations, and the rest are just nitpicks.

Not sure if you were aware that @dwarn has defined is_free_groupoid for Nielsen-Schreier, but I don't see an easy connection between that (nonstandard) concept with what you're doing here.

I'll be looking into the subgroupoid PR and two-step quotient groupoid construction next!

src/category_theory/groupoid/free_groupoid.lean Outdated Show resolved Hide resolved
src/category_theory/groupoid/free_groupoid.lean Outdated Show resolved Hide resolved
src/category_theory/groupoid/free_groupoid.lean Outdated Show resolved Hide resolved
src/category_theory/path_category.lean Outdated Show resolved Hide resolved
src/category_theory/path_category.lean Outdated Show resolved Hide resolved
src/category_theory/groupoid/free_groupoid.lean Outdated Show resolved Hide resolved
src/category_theory/path_category.lean Outdated Show resolved Hide resolved
src/category_theory/path_category.lean Outdated Show resolved Hide resolved
Comment on lines 26 to 31
- `free_groupoid V`: a type synonym for `V`.
- `free_groupoid_groupoid`: the `groupoid` instance on `free_groupoid V`.
- `lift`: the lifting of a prefunctor from `V` to `V'` where `V'` is a groupoid, to a functor.
`free_groupoid V ⥤ V'`.
- `lift_spec` and `lift_unique`: the proofs that, respectively, `lift` indeed is a lifting
and is the unique one.
Copy link
Collaborator

Choose a reason for hiding this comment

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

All these links aren't working now but maybe you don't intend them to link to declarations?
For example you need to write category_theory.groupoid.free.free_groupoid instead of free_groupoid for the first link to work. This name feels quite redundant though. You may want to write def _root_.category_theory.free_groupoid to get a more succinct name.

free_groupoid_groupoid is actually category_theory.groupoid.free.free_groupoid.category_theory.groupoid which is super-redundant; you may consider explicitly naming the instance like I suggested above.

lift_unique appears to be called lift_unique_spec now, and the quotient, path_category, and symmetrify versions have the inconsistent name lift_spec_unique. I think we don't need spec in the name; if you search mathlib there are lots of things named lift_unique but not lift_spec_unique/lift_unique_spec. It's best to uniformize them in your follow-up PR.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Is it better to write those as links? By looking at a few other files in mathlib, I haven't found many such links for stuff defined in the file at hand.

src/combinatorics/quiver/basic.lean Outdated Show resolved Hide resolved
bottine and others added 12 commits October 6, 2022 06:34
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
@bottine
Copy link
Collaborator Author

bottine commented Oct 6, 2022

Thanks a lot! I think I've corrected everything.

As for is_free_groupoid, the way I understand it, all this was implemented with the very specific application of Nielsen-Schreier in mind, which implied some special-purpose definitions. Ideally, I'd like to have all the right tools to prove Nielsen-Schreier again using generic stuff on groupoids, but we'll see how it goes.

Note I'd like to take the opportunity to add functoriality of the free groupoid: working on this now, pushing as soon as possible.

@alreadydone
Copy link
Collaborator

Thanks!

Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

Thanks 🎉

bors merge

@bors
Copy link

bors bot commented Oct 11, 2022

Already running a review

@alreadydone
Copy link
Collaborator

I guess bors can't merge the same PR twice :) It wasn't added to the queue. We should probably close this to avoid confusing people. I think @bottine is meant to open another PR with the new changes in this PR or possibly more.

@bors bors bot deleted the bottine/free_groupoid_cats branch October 11, 2022 07:01
@alreadydone alreadydone restored the bottine/free_groupoid_cats branch October 11, 2022 07:01
@bottine
Copy link
Collaborator Author

bottine commented Oct 11, 2022

@alreadydone @jcommelin : Here you go #16907 (I had to make a new useless commit for git(hub?) to accept this new branch as different).

@alreadydone alreadydone deleted the bottine/free_groupoid_cats branch October 11, 2022 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) t-algebra Algebra (groups, rings, fields etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants