Zulip Chat Archive
Stream: condensed mathematics
Topic: endomorphisms
Johan Commelin (Jun 04 2022 at 06:33):
Is there anyone who would like to work on src/for_mathlib/endomorphisms/
? If you want to play around with a bit of category theory, I think this can be fun.
Kevin Buzzard (Jun 04 2022 at 12:19):
You should advertise in #maths ;-)
Kevin Buzzard (Jul 02 2022 at 13:48):
So here is an update on for_mathlib/endomorphisms/
. There is basically one sorry
in it, here, and it's going to be some work to remove.
Here's some of the mathematics behind the statement of the sorry
. If A is an abelian category then one can make a new abelian category endomorphisms A
whose objects are pairs (Y,f) with Y an object of A and f an endomorphism of Y. Morphisms are maps intertwining the endomorphisms, and there's a forgetful functor back down to A. If Y is an object and X is a complex of objects in endomorphism A
, then both the endomorphism of Y and the endomorphisms of the objects of X induce endomorphisms of Ext^i(X,Y) (Ext group computed in the category of complexes of objects of A up to homotopy). Let e_i denote the difference of these two endomorphisms. The claim is that e_i is an isomorphism for all i iff Ext_{end}^j(X,Y)=0 for all j, where here Ext_{end} means computing ext groups in the category of complexes of objects of endomorphism A
, so in particular you probably get different answers in this category than when just considering everything as objects of A.
The proof looks like this: @Andrew Yang developed a theory of projective replacements, but unfortunately we seem to need to develop a parallel theory of projective replacements in endomorphism categories with extra properties. If P is a suitable complex of projective objects with endomorphisms and P is quasi-isomorphic to X (apparently these are called "replacements" now), then one can consider the complex (with morphisms going the other way) C_i := Hom(P^i,Y) with differentials coming from P^i, and one checks that the homology of the complex C_i is the Ext group. If instead you do homomophisms intertwining the endomorphisms then the homology of the resulting complex is the endomorphism Ext group. So it just comes down to checking that e_i : C_i -> C_i (the difference of the endomorphisms) is surjective and its kernel is the equivariant endomorphisms; this gives a short exact sequence of complexes, and it's easily checked that the associated long exact sequence of homology has the property that every third term is 0 iff all the maps in the long exact sequence which have source and target one of the other terms, are isomorphisms:
All those middle maps are isomorphisms iff all those Ext_{end} terms are 0.
Right now I'm trying to write down a Lean sketch of this in the file src/for_mathlib/endomorphisms/Ext.lean
. It's a shame but it seems (unless I'm missing a trick) that we'll have to redo a lot of the projective replacement stuff, because to ensure that the are surjective we seem to need to ensure that the objects-with-endomorphisms are of the form free Q
, i.e., for some projective , with the endomorphism being multiplication by .
Random thought that might save a lot of work: is it likely to be true that every projective object in endomorphisms A
is of the form free Q
for some object Q
which is projective in A
?
Adam Topaz (Jul 02 2022 at 14:03):
Unfortunately, that random thought is probably not true, as you can take direct summands of a projective which will again be projective (although I don't have an explicit example at hand).
Adam Topaz (Jul 02 2022 at 14:06):
But I think that such projectives are "dense" in the sense that any object can be resolved by a projective of that form.
Kevin Buzzard (Jul 02 2022 at 14:06):
If it's not true then it probably means we have to redo a bunch of the projective replacement stuff so that it works in this context (I should also say that this is actually an observation of Adam, we've exchanged many direct messages about the situation and the reason I'm posting publically was just to sort out my thoughts a bit)
Kevin Buzzard (Jul 02 2022 at 14:08):
Yes I believe you that they're dense: take a random object Y in endomorphisms A, imagine it in A, take a projective Q
which maps onto it, and now by a universal property free Q
will surject onto it in endomorphisms A
.
Johan Commelin (Jul 02 2022 at 14:19):
Maybe the construction of projective replacements can take an extra argument that returns a preferred projective cover for every object?
Johan Commelin (Jul 02 2022 at 14:19):
Then you don't have to redo it, but only generalize/refactor.
Kevin Buzzard (Jul 02 2022 at 14:21):
Interesting idea! The only extra thing I need, according to my paper argument, is that each object in the endomorphism-replacement P
is (isomorphic to something) of the form free Q
with Q
projective in A
.
Johan Commelin (Jul 02 2022 at 14:21):
Yep, that sounds right to me
Julian Külshammer (Jul 02 2022 at 15:02):
Random observations that most likely doesn't buy you anything currently: Your category endomorphisms A
is in mathlib as docs#category_theory.endofunctor.algebra for the identity endofunctor.
Adam Topaz (Jul 02 2022 at 15:41):
They're even essentially defeq
Adam Topaz (Jul 02 2022 at 15:42):
Here's a fun one: CompHaus
is the category of algebras of the codensity monad of the inclusion of Fintype
into Type
;)
Joël Riou (Jul 02 2022 at 15:43):
I may have a solution. The free
projective objects surjects onto any object, and in particular any projective object P
. By the projective condition of P
, P
is actually a direct factor of some of these Q := free ?
. Then, any condition formulated as the surjectivity of a natural map is satisfied by any projective P
if it is satisfied by the free
objects.
Adam Topaz (Jul 02 2022 at 16:17):
@Joël Riou interesting idea. The actual argument we had in mind is a bit more complicated, but in principle this has to work because things must be unique up to homotopy. The question is whether it would be less work to deal with all the homotopies, or just to construct things in a more explicit way as Kevin indicated. I'll have to think about this more carefully.
Adam Topaz (Jul 02 2022 at 16:19):
The reason we want free ?
is because we want to map out of it eventually, but if we have some non-free but projective thing P
, then we can resolve by a free, split the epi, and map out of the free to get a map out of the P
. This may be enough, I'm not sure.
Johan Commelin (Jul 02 2022 at 16:45):
Yes, I've convinced myself that this should work.
Johan Commelin (Jul 02 2022 at 16:46):
So now we only need to get a complex of projective objects in endomorphisms A
that is a replacement for X
, and such that endomorphism.forget
maps all those projective objects to projective objects in A
.
Johan Commelin (Jul 02 2022 at 16:49):
But afaict, that's true in general.
Johan Commelin (Jul 02 2022 at 16:54):
No wait, it looks like an actual condition.
Joël Riou (Jul 02 2022 at 17:33):
Johan Commelin said:
No wait, it looks like an actual condition.
SImilarly as above, to show that the forgetful functor preserves projectives, it suffices to check it for the free
functor applied to projectives. In that case, this is stability of projectives by direct sums. (Alternatively, if we have exact infinite products, one may use the exactness of the right adjoint of the forgetful functor, which is the dual construction to free
, more into power series than polynomials...)
Adam Topaz (Jul 02 2022 at 17:35):
Yeah we have the cofree
construction already ;)
Johan Commelin (Jul 02 2022 at 18:00):
Aah, of course. I pushed a proof of
instance projective_X [enough_projectives C] (P : endomorphisms C) [projective P] :
projective P.X :=
Johan Commelin (Jul 02 2022 at 18:02):
So now we can just work with X.replace
for X : endomorphisms A
. Because by definition that is a complex with projective objects as components.
Julian Külshammer (Jul 02 2022 at 19:07):
For porting to mathlib, would it be of interest to generalise most of the things you have to the endofunctor.algebra setting mentioned earlier? Pretty sure this is possible, assuming the appropriate endofunctor right exact, additive, etc. (as one of my latest papers deals with this set-up)
Johan Commelin (Jul 02 2022 at 19:17):
Yeah, I guess that makes sense
Julian Külshammer (Jul 03 2022 at 10:39):
Wait a minute, wouldn't it have been easier to realise the category endomorphisms A
as the functor_category from the free category on one morphism (aka N as a 1-object category) to A? In this case most of the basic instances should already be in mathlib?
Adam Topaz (Jul 03 2022 at 12:08):
The defeqs of the current def are much nicer than the functor from the free category approach, IMO.
Kevin Buzzard (Jul 03 2022 at 12:14):
So the surjectivity proof we need is the following. If and are objects of an abelian category, equipped with endomorphisms and , and if is a morphism in the category (not necessarily intertwining the endomorphisms), then we want such that . In general we can't have such . If is of the form free Q
i.e. with then we can make , it's of the form with and . The question is whether we can make knowing only that is projective in the endomorphism category.
Johan Commelin (Jul 03 2022 at 12:21):
Yes, see Joël's argument above
Johan Commelin (Jul 03 2022 at 12:21):
Kevin Buzzard (Jul 03 2022 at 12:22):
Another way of saying what I'm saying above is "I don't understand Joël's argument yet". I thought it was worth writing down precisely the statement we needed.
Kevin Buzzard (Jul 03 2022 at 12:25):
Once I understand this, I am ready to get started formalising the argument.
Kevin Buzzard (Jul 03 2022 at 12:32):
So, say is projective. Choose as above. Say . Extend to . Now we get . Now restrict back down to . Oh it's as easy as that? :D
Adam Topaz (Jul 03 2022 at 12:36):
P=Q?
Kevin Buzzard (Jul 03 2022 at 12:37):
Sorry, let me try again. Let be projective. Choose such that is a direct summand of . Then continue as above. Is that OK?
Kevin Buzzard (Jul 03 2022 at 12:37):
Oh, you're saying works! Yes, I guess it does.
Kevin Buzzard (Jul 03 2022 at 12:39):
The delicate part of the argument is that the splitting will not be the "obvious" map.
Adam Topaz (Jul 03 2022 at 12:41):
Right!
Adam Topaz (Jul 03 2022 at 12:41):
It’s just the one you get from projectivity
Johan Commelin (Jul 05 2022 at 05:22):
the short-exactness is done
Kevin Buzzard (Jul 05 2022 at 07:35):
The argument that's worrying me in the endomorphisms directory is this hideous diagram chase. I'll have a look at it this evening.
Johan Commelin (Jul 05 2022 at 07:36):
Can you already state it? Or do you need more setup?
Kevin Buzzard (Jul 05 2022 at 08:02):
I've stated it, it's the bottom sorry.
Kevin Buzzard (Jul 05 2022 at 08:03):
There's an isomorphism called j
which is a composite of about three isomorphisms and is supposed to intertwine two maps of the form .
Johan Commelin (Jul 05 2022 at 08:05):
Yep, I see it.
Joël Riou (Jul 05 2022 at 08:18):
Kevin Buzzard said:
There's an isomorphism called
j
which is a composite of about three isomorphisms and is supposed to intertwine two maps of the form .
I do not have much time today to work on this, but if dsimp/simp
does not work well, I would suggest getting rid of convert
on the line convert iso.app this _
in the definition of j
. There is an annoying single 𝓐 (0 - -i)
. It you introduce an eq_to_iso
isomorphism (single 𝓐 p).obj Y ≅ (single 𝓐 q).obj Y
when p=q
, it may dsimp/simp
better.
Johan Commelin (Jul 05 2022 at 08:22):
There are also a bunch of have
s for data. I'm fixing those now.
Kevin Buzzard (Jul 05 2022 at 08:23):
Thanks. I defined the map late last night!
Johan Commelin (Jul 05 2022 at 08:33):
I split the goal into two pieces, as you suggested.
Johan Commelin (Jul 05 2022 at 09:10):
I just added
lemma hom_single_iso_naturality'
(P₁ P₂ : bounded_homotopy_category C) (B : C) (i : ℤ)
(f : P₁.val.as ⟶ P₂.val.as) :
(preadditive_yoneda.obj ((single C i).obj B)).map (of_hom f).op ≫ (hom_single_iso P₁ B i).hom =
(hom_single_iso P₂ B i).hom ≫
(((preadditive_yoneda.obj B).right_op.map_homological_complex _ ⋙
homological_complex.unop_functor.right_op ⋙
(_root_.homology_functor _ _ _).op).map f).unop :=
with a minor sorry
.
Johan Commelin (Jul 05 2022 at 09:11):
Compiling :fencing: to see if I didn't break the build
Johan Commelin (Jul 05 2022 at 09:11):
j
is mostly built from preadditive_yoneda
stuff. So maybe your goal isn't too bad.
Johan Commelin (Jul 05 2022 at 09:13):
I pushed to branch jmcwip
because I need to run
Joël Riou (Jul 05 2022 at 10:14):
I have just removed the minor sorry
in this lemma hom_single_iso_naturality'
.
Joël Riou (Jul 06 2022 at 16:24):
Today, I have worked on one of the two compatibilities in Ext_is_zero_iff
. I have struggled very much because of op/unop
intricacies with homological_complex/homotopy_category
. Modulo two more sorried basic statements, this should be ok soon, but I have to stop for today. I may have some time tomorrow morning only.
Joël Riou (Jul 06 2022 at 16:26):
If anyone sees how to fill these sorries in for_mathlib/endomorphisms/Ext.lean
, feel free to do so.
Johan Commelin (Jul 06 2022 at 16:32):
Thanks for your work!
Johan Commelin (Jul 06 2022 at 18:53):
I closed the compatibility sorry.
Johan Commelin (Jul 06 2022 at 19:21):
Other one is done as well
Joël Riou (Jul 07 2022 at 10:37):
I have almost finished proving the last compatibility in for_mathlib/endomorphisms/Ext.lean
. The only left sorry
is a basic naturality statement that I have moved to hom_single_iso.lean
. It is the naturality with respect to the other variable. In principle, I would think that it should be easier than the naturality on the first variable, but I have no idea about the internals of the definitions in this file and I have no more Lean time today (dance again...). Maybe @Adam Topaz this could be for you?
Johan Commelin (Jul 10 2022 at 10:02):
The sorries are now done.
Joël Riou (Jul 10 2022 at 11:12):
I have just finished the other naturality sorry that was left for the presheaf iso eval_freeFunc_homology_zero
.
Last updated: Dec 20 2023 at 11:08 UTC