Zulip Chat Archive
Stream: condensed mathematics
Topic: 0 \ne 0
Johan Commelin (Apr 13 2022 at 11:33):
I just got bitten by
@abelian.has_zero_object.{u u+1} Ab.{u} AddCommGroup.large_category.{u} AddCommGroup.category_theory.abelian.{u}
=
AddCommGroup.has_zero_object.{u}
Johan Commelin (Apr 13 2022 at 11:38):
cc @Scott Morrison
This showed up in a version of homology = homology
Johan Commelin (Apr 13 2022 at 11:38):
Should has_zero_object
be a Prop
?
Scott Morrison (Apr 13 2022 at 11:38):
Yes. :-)
Scott Morrison (Apr 13 2022 at 11:39):
I guess it was missed in the big Prop-ification of the limits API.
Scott Morrison (Apr 14 2022 at 03:32):
I had a quick go at this. I run into trouble because this helpful @[simp]
lemma is no longer true:
@[simp] lemma functor.zero_obj {B : Type*} [category B] [has_zero_morphisms C] (X : B) :
(0 : B ⥤ C).obj X = 0 := rfl
Scott Morrison (Apr 14 2022 at 03:32):
Because 0
is now produced using choice, there is no reason to expect (0 : B ⥤ C).obj X
should be the previously chosen 0
: it should be any other (isomorphic) zero object.
Scott Morrison (Apr 14 2022 at 03:55):
I think resolving this cleanly will requiring installing the is_zero_object
predicate in mathlib. If no one has tackled this in a week I will try to get to it then.
Johan Commelin (Apr 14 2022 at 04:21):
Thanks for diving into this. Note that there is already a lot of API for is_zero(_object)
in LTE.
Scott Morrison (Apr 14 2022 at 04:46):
Pity it's not in mathlib. :-)
Johan Commelin (Apr 19 2022 at 10:35):
Here's a first PR: https://github.com/leanprover-community/mathlib/pull/13511
Johan Commelin (Apr 19 2022 at 13:41):
I'm working on turning has_zero_object
into a Prop
. There are way too many instances of this class in mathlib :see_no_evil: :grinning:
Johan Commelin (Apr 19 2022 at 14:28):
Here's the next PR:
refactor(category_theory): make has_zero_object a Prop #13517
Last updated: Dec 20 2023 at 11:08 UTC