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): kernels #1988
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this PR! It looks really nice!
I've left some remarks, and some are maybe a bit short, but that isn't meant as harsh critique. (I'm just a bit short on time atm.)
/-- Every equalizer of (f, f) is an isomorphism -/ | ||
def limit_cone_parallel_pair_self_is_iso (c : cone (parallel_pair f f)) (h : is_limit c) : | ||
is_iso (c.π.app zero) := | ||
begin |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this proof you are defining data using rw
and similar tactics. This usually creates problems once you try to use the data.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Luckily, in this case, z.hom.hom
is actually defeq to c.π.app zero
, so not only would rfl
have shown t
, we can simply get rid of the rewrite altogether.
On the other hand, for epi_limit_cone_parallel_pair_is_iso
, I cannot see an easy way to get rid of the rewrite and especially the convert (on the other hand, I am not yet convinced that in this situation it really matters how the inverse is defined, as long as there are proofs that it is an inverse).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In theory it doesn't matter. But it might complicate proving this about it. (Not in a conceptually hard way, but in a tedious, annoying, kind of way.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm inclined to say that this looks ready for merging, but I would love to also here from other reviewers. @semorrison @rwbarton any comments?
* chore(category_theory): require morphisms live in Type * move back to Type * fixes * feat(category_theory/limits): kernels * finishing basic API for kernels * update post leanprover-community#1412 * fix * documentation * documentation * more docs * replacing dumb code * forall -> Pi * removing all instances * working on Reid's suggested lemmas * experiments * lots to do * Show that equalizers are monomorphisms * Show that equalizer of (f, f) is always an iso * Show that an equalizer that is an epimorphism is an isomorphism * Clean up * Show that the kernel of a monomorphism is zero * Fix * Show that the kernel of a linear map is a kernel in the categorical sense * Modify proof * Compactify proof * Various cleanup * Some more cleanup * Fix bibtex * Address some issues raised during discussion of the PR * Fix some more incorrect indentation * Some more minor fixes * Unify capitalization in Bibtex entries * Replace equalizer.lift.uniq with equalizer.hom_ext * Some more slight refactors * Typo Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* chore(category_theory): require morphisms live in Type * move back to Type * fixes * feat(category_theory/limits): kernels * finishing basic API for kernels * update post leanprover-community#1412 * fix * documentation * documentation * more docs * replacing dumb code * forall -> Pi * removing all instances * working on Reid's suggested lemmas * experiments * lots to do * Show that equalizers are monomorphisms * Show that equalizer of (f, f) is always an iso * Show that an equalizer that is an epimorphism is an isomorphism * Clean up * Show that the kernel of a monomorphism is zero * Fix * Show that the kernel of a linear map is a kernel in the categorical sense * Modify proof * Compactify proof * Various cleanup * Some more cleanup * Fix bibtex * Address some issues raised during discussion of the PR * Fix some more incorrect indentation * Some more minor fixes * Unify capitalization in Bibtex entries * Replace equalizer.lift.uniq with equalizer.hom_ext * Some more slight refactors * Typo Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
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
This PR replaces #1445. Since then, the following has been added:
punit
) and all kernels (f.ker.subtype
)