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/limits/shapes/multiequalizer): Multi(co)equalizers #10169

Closed
wants to merge 7 commits into from

Conversation

adamtopaz
Copy link
Collaborator

This PR adds another special shape to the limits library, which directly generalizes shapes for many other special limits (like pullbacks, equalizers, etc.). A multiequalizer can be thought of an an equalizer of two maps between two products. This will be used later on in the context of sheafification.

I don't know if there is a standard name for the gadgets this PR introduces. I would be happy to change the names if needed.


Open in Gitpod

@adamtopaz adamtopaz added awaiting-review The author would like community review of the PR awaiting-CI The author would like to see what CI has to say before doing more work. labels Nov 4, 2021
@adamtopaz adamtopaz changed the title feat(category_theory/limits/shapes/multifork): Multi(co)equalizers feat(category_theory/limits/shapes/multiequalizer): Multi(co)equalizers Nov 4, 2021
src/category_theory/limits/shapes/multiequalizer.lean Outdated Show resolved Hide resolved
src/category_theory/limits/shapes/multiequalizer.lean Outdated Show resolved Hide resolved
@[nolint has_inhabited_instance]
structure multicospan_index (C : Type u) [category.{v} C] :=
(α β : Type v)
(f s : β → α)
Copy link
Member

Choose a reason for hiding this comment

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

These names are not very mnemonic. Also, should α and β be bundled?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I think I'll switch them to L resp. R (for left resp. right). Is there a particular reason you think they should not be bundled?

In the (hopefully near?) future where we have pseudofunctors, I can imagine wanting to talk about the category of multicospan_indexs and to a morphism in this category, obtain a functor between walking_multicospans which fit together into a pseudofunctor. This might be an argument for bundling.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I renamed \alpha -> L and \beta -> R, also f -> fst_to/fst_from and s -> snd_to/snd_from.

src/category_theory/limits/shapes/multiequalizer.lean Outdated Show resolved Hide resolved
src/category_theory/limits/shapes/multiequalizer.lean Outdated Show resolved Hide resolved
src/category_theory/limits/shapes/multiequalizer.lean Outdated Show resolved Hide resolved
@github-actions github-actions bot removed the awaiting-CI The author would like to see what CI has to say before doing more work. label Nov 4, 2021
@erdOne
Copy link
Member

erdOne commented Nov 5, 2021

Could there / should there be isomorphisms from the multiequalizer to the equalizer of the products, and simp lemmas showing that the projections on both sides are the same?

@adamtopaz
Copy link
Collaborator Author

Could there / should there be isomorphisms from the multiequalizer to the equalizer of the products, and simp lemmas showing that the projections on both sides are the same?

Good idea. I'll try to add that soon.

@adamtopaz
Copy link
Collaborator Author

Could there / should there be isomorphisms from the multiequalizer to the equalizer of the products, and simp lemmas showing that the projections on both sides are the same?

Good idea. I'll try to add that soon.

On second thought, I think it would be too much additional work to do this properly, so I think it would be better to leave this for a future PR. I added a comment under the Projects section in the module docstring regarding this.

@erdOne
Copy link
Member

erdOne commented Nov 5, 2021

Did you run into any obstacle when trying to do so?

If not, and that it is merely time-consuming, I could try do it since I would probably need these results when gluing.

An alternative would be to develop API about multicoequalizers in Top, but I doubt that this would be easier.

@adamtopaz
Copy link
Collaborator Author

Did you run into any obstacle when trying to do so?

If not, and that it is merely time-consuming, I could try do it since I would probably need these results when gluing.

An alternative would be to develop API about multicoequalizers in Top, but I doubt that this would be easier.

There is no real difficulty, what to do it properly would require the following:

  1. Given a multifork, construct a fork for the two maps between the products, and vice versa.
  2. Prove that a multifork is a limit if and only if the associated fork is a limit (and vice versa).
  3. Construct the isomorphism between the multiequalizer and equalizer.
  4. And, of course, dualize everything...

So the main obstacle is time, and that all of this would probably be too much for a single PR :)

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

@github-actions github-actions bot 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 Nov 5, 2021
@adamtopaz
Copy link
Collaborator Author

bors r-

@bors
Copy link

bors bot commented Nov 5, 2021

Canceled.

@jcommelin
Copy link
Member

bors d+

@bors
Copy link

bors bot commented Nov 5, 2021

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

@github-actions github-actions bot added the delegated The PR author may merge after reviewing final suggestions. label Nov 5, 2021
@adamtopaz
Copy link
Collaborator Author

bors r+

bors bot pushed a commit that referenced this pull request Nov 5, 2021
…rs (#10169)

This PR adds another special shape to the limits library, which directly generalizes shapes for many other special limits (like pullbacks, equalizers, etc.).  A `multiequalizer` can be thought of an an equalizer of two maps between two products. This will be used later on in the context of sheafification.

I don't know if there is a standard name for the gadgets this PR introduces. I would be happy to change the names if needed.
@bors
Copy link

bors bot commented Nov 5, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(category_theory/limits/shapes/multiequalizer): Multi(co)equalizers [Merged by Bors] - feat(category_theory/limits/shapes/multiequalizer): Multi(co)equalizers Nov 5, 2021
@bors bors bot closed this Nov 5, 2021
@bors bors bot deleted the multifork branch November 5, 2021 19:40
ericrbg pushed a commit that referenced this pull request Nov 9, 2021
…rs (#10169)

This PR adds another special shape to the limits library, which directly generalizes shapes for many other special limits (like pullbacks, equalizers, etc.).  A `multiequalizer` can be thought of an an equalizer of two maps between two products. This will be used later on in the context of sheafification.

I don't know if there is a standard name for the gadgets this PR introduces. I would be happy to change the names if needed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated The PR author may merge after reviewing final suggestions. 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

3 participants