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 JJ be a category. If a functor preserves limits of shape JJ, then the induced functor in the over categories preserves limits of shape JJ as well.

The problem is that the shape of the limits has to change once you pass to the over category. Take, for example, J={A,B}J = \{A, B\} to be two objects and no non-trivial morphisms. Then, a functor JC J \to C is a choice of two objects in CC, and the limit of such a functor is the product of two objects. On the other side, a functor from JC/XJ \to C/X is a diagram with three objects, and the limit of such a functor is a fibered product over XX.

There are functors which preserve products, but not finite products. For example (****wrong example, sorry), in the category of abelian groups, the functor MHom(Z/2Z,M)M\mapsto \operatorname{Hom}({\mathbb Z/2\mathbb Z}, M) preserves products (direct sums), but it does not preserve the fibered product Z×Z/2Z\mathbb Z \times_{\mathbb Z/2} \mathbb Z.

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 Z×Z/2Z\mathbb{Z} \times_{\mathbb{Z}/2} \mathbb{Z}? 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 Ab\mathbf{Ab} to be the category of abelian groups, and F ⁣:AbAbF\colon \mathbf {Ab}\to \mathbf{Ab} to be the functor F(M)=M/2MF(M) = M/2M. This preserves products.

If we consider the fibered product, both of whose factors are Z11Z/2Z\mathbb Z \xrightarrow{1\mapsto 1} \mathbb Z/2\mathbb Z, this is the kernel of the map

ZZ(a,b)abmod2Z/2Z\mathbb Z \oplus \mathbb Z \xrightarrow{(a,b)\mapsto a-b\mod 2} \mathbb Z/2\mathbb Z

Which I think is freely generated by α=(2,0)\alpha = (2,0) and β=(1,1)\beta = (1,1), which means that

Z×Z/2ZZZZ\mathbb Z\times_{\mathbb Z/2\mathbb Z} \mathbb Z \cong \mathbb Z\oplus \mathbb Z

(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,

F(Z×Z/2ZZ)F(ZZ)Z/2Z×Z/2ZF(\mathbb Z\times_{\mathbb Z/2\mathbb Z} \mathbb Z) \cong F(\mathbb Z\oplus \mathbb Z) \cong \mathbb Z/2\mathbb Z\times \mathbb Z/2\mathbb Z

And also

F(Z)×F(Z/2Z)F(Z)Z/2Z×Z/2ZZ/2Z()Z/2ZF(\mathbb Z)\times_{F(\mathbb Z/2\mathbb Z)} F(\mathbb Z) \cong \mathbb Z/2\mathbb Z \times_{\mathbb Z/2\mathbb Z} \mathbb Z/2\mathbb Z \overset{(*)}\cong \mathbb Z/2\mathbb Z

(()(*) 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 CC is a category, XX is an object, F ⁣:CDF\colon C\to D preserves limits of shape JJ. Then, F ⁣:C/XD/F(X)F\colon C/X\to D/F(X) preserves limits of shape JJ. I'm claiming that in the conclusion, the shape should be different. In my example:

  • C=D=AbC=D=\mathbf {Ab}
  • X=Z/2ZX = \mathbb Z/2\Z
  • F(M)=M/2MF (M) = M/2M
  • JJ is a category with two objects and no morphisms between them.

  • A functor c ⁣:JCc\colon J\to C is the same as a choice of two objects in CC. The limit of this functor, if it exists, is the product of these objects.

  • A functor c ⁣:JC/Xc\colon J\to C/X is the same as a choice of two objects with morphisms AXA\to X and BXB\to X. The limit is the fibered product A×XBA\times_X B.

Aaron Liu (Mar 31 2025 at 16:18):

Is M/2MM / 2M the cokernel of the doubling map?

Moisés Herradón Cueto (Mar 31 2025 at 16:19):

Yes, or MZZ/2ZM\otimes_{\mathbb Z} {\mathbb Z/2\mathbb Z}, 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 C/XC/X is the same as a limit of shape some (finite) modification of J in CC, 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 CC into XX though... i imagine the ability to do this is very dependent on the choice of CC and XX...

Edward van de Meent (Mar 31 2025 at 17:38):

for example, imagine the poset C:=N+{1,2,3}C := \mathbb{N} + \{\infty_1,\infty_2, \infty_3\} such that 13\infty_1 \leq \infty_3, all i\infty_i are larger than elements of N\mathbb{N}, and 2\infty_2 is not comparable with the other infinities. then the limit of N\mathbb{N} in C/3C/\infty_3 is 1\infty_1, but it is not clear how to recover this from a limit in CC (to me)

Edward van de Meent (Mar 31 2025 at 17:40):

since in particular, 2\infty_2 has a cone over N\mathbb{N} but does not factor through 1\infty_1 (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 J+{}J + \{*\} and add (unique) arrows fj:jf_j : j \rightarrow * for every jJ+{}j \in J + \{*\}, 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:

  1. If J is connected and F preserves it, then so does Over.post F.
  2. If F preserves products indexed by I, then Over.post F preserves pullbacks indexed by I.

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