Zulip Chat Archive
Stream: toric
Topic: 0-over-lim: Limit-preserving functors lift
Moisés Herradón Cueto (Mar 31 2025 at 15:21):
Hi! I'm trying to learn Lean and I thought this project looked interesting.
I was trying to prove 0-over-lim
: Limit-preserving functors lift to over categories, and I think it's false as stated.
It says the following: let be a category. If a functor preserves limits of shape , then the induced functor in the over categories preserves limits of shape as well.
The problem is that the shape of the limits has to change once you pass to the over category. Take, for example, to be two objects and no non-trivial morphisms. Then, a functor is a choice of two objects in , and the limit of such a functor is the product of two objects. On the other side, a functor from is a diagram with three objects, and the limit of such a functor is a fibered product over .
There are functors which preserve products, but not finite products. For example (****wrong example, sorry), in the category of abelian groups, the functor preserves products (direct sums), but it does not preserve the fibered product .
This also works as an example that PreservesFiniteProducts.overPost
in CategoryTheory/Limits/Preserves/Finite.lean
is false.
I haven't yet figured out what this is used for. Anyway, I would love to attempt to contribute, but my knowledge of Lean is tiny.
Aaron Liu (Mar 31 2025 at 15:35):
What are the morphisms in the fibered product ? Sorry if this is a dumb question but I can't figure it out.
EDIT: I had my diagrams the wrong way around
Moisés Herradón Cueto (Mar 31 2025 at 15:47):
As I'm trying to write it out I'm realizing that my example doesn't work :face_palm: Let me try to find another one...
Moisés Herradón Cueto (Mar 31 2025 at 15:58):
Take to be the category of abelian groups, and to be the functor . This preserves products.
If we consider the fibered product, both of whose factors are , this is the kernel of the map
Which I think is freely generated by and , which means that
(Even if I got the generators wrong, it's a subgroup of a free group, so it's free, and the rank is correct) So,
And also
( In the fibered product, all maps are the identity)
Kevin Buzzard (Mar 31 2025 at 16:08):
I am a bit confused by what you're saying. The claim is that if some functor preserves limits of shape J then some other functor does too. What is your functor and what is J in your proposed counterexample?
Kevin Buzzard (Mar 31 2025 at 16:12):
Oh I think I have it now. C=D=Ab, J= discrete two-element category, F(A)=A/2A
Moisés Herradón Cueto (Mar 31 2025 at 16:16):
Sorry, let me clarify all the notation. The theorem says that is a category, is an object, preserves limits of shape . Then, preserves limits of shape . I'm claiming that in the conclusion, the shape should be different. In my example:
-
is a category with two objects and no morphisms between them.
-
A functor is the same as a choice of two objects in . The limit of this functor, if it exists, is the product of these objects.
- A functor is the same as a choice of two objects with morphisms and . The limit is the fibered product .
Aaron Liu (Mar 31 2025 at 16:18):
Is the cokernel of the doubling map?
Moisés Herradón Cueto (Mar 31 2025 at 16:19):
Yes, or , if you prefer.
Yaël Dillies (Mar 31 2025 at 16:21):
All we want in the end is that if F
preserves finite limits then so does Over.post F
. Feel free to change the statement of 0-over-lim
so long as you can still prove that from it!
Moisés Herradón Cueto (Mar 31 2025 at 16:23):
Ohh, that's great news!
Notification Bot (Mar 31 2025 at 16:23):
Moisés Herradón Cueto has marked this topic as resolved.
Yaël Dillies (Mar 31 2025 at 16:24):
Should I assign you to the task?
Moisés Herradón Cueto (Mar 31 2025 at 16:26):
I'm not very confident, to be honest... And I suspect that if I do prove it, it might be really poor quality. But if it's all the same to everyone else, I'll give it a shot.
Yaël Dillies (Mar 31 2025 at 16:29):
It is yours :smile:
Kevin Buzzard (Mar 31 2025 at 17:02):
I would imagine that a limit of shape J in is the same as a limit of shape some (finite) modification of J in , so this should hopefully be fine.
Edward van de Meent (Mar 31 2025 at 17:28):
i'm not sure how you would get a map from the limit in into though... i imagine the ability to do this is very dependent on the choice of and ...
Edward van de Meent (Mar 31 2025 at 17:38):
for example, imagine the poset such that , all are larger than elements of , and is not comparable with the other infinities. then the limit of in is , but it is not clear how to recover this from a limit in (to me)
Edward van de Meent (Mar 31 2025 at 17:40):
since in particular, has a cone over but does not factor through (EDIT: i'm confusing limits with colimits)
Edward van de Meent (Mar 31 2025 at 17:45):
thinking about this again, indeed if we choose shape and add (unique) arrows for every , i imagine we get the right limit?
Moisés Herradón Cueto (Mar 31 2025 at 17:47):
That's my hope for sure
Andrew Yang (Mar 31 2025 at 19:26):
I am doubtful that we actually need this because the functor we care about is a right adjoint and this follows from the "adunction in over category" thing. But this would be a great addition into mathlib anyways.
Andrew Yang (Mar 31 2025 at 19:29):
The thing we want in mathlib might be:
- If
J
is connected andF
preserves it, then so doesOver.post F
. - If
F
preserves products indexed byI
, thenOver.post F
preserves pullbacks indexed byI
.
Andrew Yang (Mar 31 2025 at 19:34):
It would also be nice to have the colimit version. Here I think the (analogous to original) claim is true.
Edward van de Meent (Mar 31 2025 at 19:51):
to make the first thing concrete, does the following look good?
import Mathlib
open CategoryTheory
open Limits
example {C D J : Type*} [Category C] [Category D]
[Category J] [IsConnected J] (F : C ⥤ D) {X : C} (K : J ⥤ Over X)
(hF : PreservesLimit (K ⋙ Over.forget X) F) :
PreservesLimit K (Over.post F) := by
sorry
I could be putting the Over.forget
in the wrong place
Edward van de Meent (Mar 31 2025 at 19:57):
alternatively, the "forall" case:
example {C D J : Type*} [Category C] [Category D] [Category J]
[IsConnected J] (F : C ⥤ D) (X : C) (hF : PreservesLimitsOfShape J F) :
PreservesLimitsOfShape J (Over.post (X := X) F) :=
sorry
Edward van de Meent (Mar 31 2025 at 20:01):
as for the second thing:
example {C D J : Type*} [Category C] [Category D]
(F : C ⥤ D) (X : C) (hF : PreservesLimitsOfShape (Discrete J) F) :
PreservesLimitsOfShape (CategoryTheory.Limits.WidePullbackShape J) (Over.post (X := X) F) :=
sorry
Notification Bot (Apr 01 2025 at 12:32):
Moisés Herradón Cueto has marked this topic as unresolved.
Moisés Herradón Cueto (Apr 01 2025 at 18:25):
I made a pull request. Like I said, I'm just learning Lean, so any and all feedback would be greatly appreciated!
Yaël Dillies (Apr 01 2025 at 18:59):
You were quick! Having a look :smile:
Yaël Dillies (Apr 09 2025 at 08:23):
I just stumbled upon docs#CategoryTheory.Over.ConstructProducts.over_product_of_widePullback, which is what you proved, but less general. We'll have to remember to remove it when we upstream your work!
Last updated: May 02 2025 at 03:31 UTC