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): make defining groupoids easier #2360

Closed
wants to merge 4 commits into from

Conversation

dwarn
Copy link
Collaborator

@dwarn dwarn commented Apr 8, 2020

The point of this PR is to lower the burden of proof in showing that a category is a groupoid. Rather than constructing well-defined two-sided inverses everywhere, with groupoid.of_trunc_split_mono you'll only need to show that every morphism has some retraction. This makes defining the free groupoid painless. There the retractions are defined by recursion on a quotient, so this saves the work of showing that all the retractions agree.

I used trunc instead of nonempty to avoid choice / noncomputability.

I don't understand why the @'s are needed: it seems Lean doesn't know what category structure C has without specifying it?

TO CONTRIBUTORS:

Make sure you have:

If this PR is related to a discussion on Zulip, please include a link in the discussion.

For reviewers: code review check list

@dwarn dwarn added the awaiting-review The author would like community review of the PR label Apr 8, 2020
@semorrison semorrison added blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. and removed awaiting-review The author would like community review of the PR labels Apr 9, 2020
@semorrison semorrison changed the title feat(category_theory): make defining groupoids easier feat(category_theory): make defining groupoids easier (blocked on #2368) Apr 9, 2020
@semorrison semorrison added awaiting-review The author would like community review of the PR and removed blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. labels Apr 10, 2020
@semorrison semorrison changed the title feat(category_theory): make defining groupoids easier (blocked on #2368) feat(category_theory): make defining groupoids easier Apr 10, 2020
@semorrison
Copy link
Collaborator

@dwarn, let's try an experiment. Our new PR merging system allows delegating approval. Let's try it. I'll write bors d+ in a moment, and then, if you're happy with the final changes I made, you can write a comment bors r+, and the robots will take over.

@semorrison
Copy link
Collaborator

bors d+

@bors
Copy link

bors bot commented Apr 10, 2020

✌️ dwarn can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@semorrison semorrison added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels Apr 11, 2020
@dwarn
Copy link
Collaborator Author

dwarn commented Apr 11, 2020

Looks good!
bors r+

bors bot pushed a commit that referenced this pull request Apr 11, 2020
The point of this PR is to lower the burden of proof in showing that a category is a groupoid. Rather than constructing well-defined two-sided inverses everywhere, with `groupoid.of_trunc_split_mono` you'll only need to show that every morphism has some retraction. This makes defining the free groupoid painless. There the retractions are defined by recursion on a quotient, so this saves the work of showing that all the retractions agree.

I used `trunc` instead of `nonempty` to avoid choice / noncomputability.

I don't understand why the @'s are needed: it seems Lean doesn't know what category structure C has without specifying it?
@bors
Copy link

bors bot commented Apr 11, 2020

Build succeeded

@bors
Copy link

bors bot commented Apr 11, 2020

Pull request successfully merged into master.

@bors bors bot changed the title feat(category_theory): make defining groupoids easier [Merged by Bors] - feat(category_theory): make defining groupoids easier Apr 11, 2020
@bors bors bot closed this Apr 11, 2020
@bors bors bot deleted the easy-groupoid branch April 11, 2020 09:57
anrddh pushed a commit to anrddh/mathlib that referenced this pull request May 15, 2020
…munity#2360)

The point of this PR is to lower the burden of proof in showing that a category is a groupoid. Rather than constructing well-defined two-sided inverses everywhere, with `groupoid.of_trunc_split_mono` you'll only need to show that every morphism has some retraction. This makes defining the free groupoid painless. There the retractions are defined by recursion on a quotient, so this saves the work of showing that all the retractions agree.

I used `trunc` instead of `nonempty` to avoid choice / noncomputability.

I don't understand why the @'s are needed: it seems Lean doesn't know what category structure C has without specifying it?
anrddh pushed a commit to anrddh/mathlib that referenced this pull request May 16, 2020
…munity#2360)

The point of this PR is to lower the burden of proof in showing that a category is a groupoid. Rather than constructing well-defined two-sided inverses everywhere, with `groupoid.of_trunc_split_mono` you'll only need to show that every morphism has some retraction. This makes defining the free groupoid painless. There the retractions are defined by recursion on a quotient, so this saves the work of showing that all the retractions agree.

I used `trunc` instead of `nonempty` to avoid choice / noncomputability.

I don't understand why the @'s are needed: it seems Lean doesn't know what category structure C has without specifying it?
cipher1024 pushed a commit to cipher1024/mathlib that referenced this pull request Mar 15, 2022
…munity#2360)

The point of this PR is to lower the burden of proof in showing that a category is a groupoid. Rather than constructing well-defined two-sided inverses everywhere, with `groupoid.of_trunc_split_mono` you'll only need to show that every morphism has some retraction. This makes defining the free groupoid painless. There the retractions are defined by recursion on a quotient, so this saves the work of showing that all the retractions agree.

I used `trunc` instead of `nonempty` to avoid choice / noncomputability.

I don't understand why the @'s are needed: it seems Lean doesn't know what category structure C has without specifying it?
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+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants