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

feat(category_theory/limits/shapes): another prototype for special shapes #1622

Closed
wants to merge 16 commits into from

Conversation

semorrison
Copy link
Collaborator

This is another attempt at defining a is_binary_products structure, and the conversions back and forth to the general setup.

As an example of use, it allows setting up binary products in Type as:

example : has_binary_products.{v} (Type v) :=
mk' (λ X Y, X × Y) (λ X Y,
  { hom_iso := (λ Q,
    { hom := λ f, (λ q, (f q).1, λ q, (f q).2),
      inv := λ p q, (p.1 q, p.2 q) }) })

@rwbarton, could you have a look at some point?

I'm planning on redoing the existing construction in category_theory/limits/shapes/binary_products.lean of associators and unitors for binary products in this formalism, to test how it works.

If this looks okay, we'll have to do some copy-and-paste for the all the other special shapes.

@semorrison semorrison added the WIP Work in progress label Oct 27, 2019
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.

Some typo-fix suggestions and a question.

src/category_theory/yoneda.lean Outdated Show resolved Hide resolved
src/category_theory/yoneda.lean Show resolved Hide resolved
src/category_theory/limits/limits.lean Outdated Show resolved Hide resolved
src/category_theory/limits/limits.lean Outdated Show resolved Hide resolved
src/category_theory/limits/limits.lean Outdated Show resolved Hide resolved
src/category_theory/limits/limits.lean Outdated Show resolved Hide resolved
src/category_theory/limits/limits.lean Outdated Show resolved Hide resolved
`is_binary_product X Y P` asserts that there is an isomorphism of hom-spaces
`(Q ⟶ P) ≅ (Q ⟶ X) × (Q ⟶ Y)`, natural in `Q`.
-/
structure is_binary_product (X Y P : C) :=
Copy link
Member

Choose a reason for hiding this comment

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

This is certainly the more readable statement. But I wonder if taking the more inherently functorial approach would buy us something down the road. I.e. declare this to be an iso between yoneda.obj P and the product of the yoneda functors of X and Y in the functor category. Of course the naturality part of that iso wouldn't break down so nicely into two parts, but maybe simp-lemma can take care of that.

Co-Authored-By: Johan Commelin <johan@commelin.net>
@jcommelin
Copy link
Member

dda5c0c is introducing unique_up_to_canonical_iso, which @kbuzzard will surely like 😉
I do wonder if that should maybe come in its own PR, because now this PR is trying to do 2 things at once.

@semorrison semorrison closed this Apr 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WIP Work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants