Zulip Chat Archive

Stream: Is there code for X?

Topic: diagram chase map


Kevin Buzzard (Jul 28 2025 at 12:39):

Given the following commutative diagram
Screenshot 2025-07-28 at 13.33.59.png

in a (concrete) abelian category, with exact rows, I'd like to define the dotted morphism by "given cc in CC, randomly pull back to b∈Bb\in B, push down to EE and then along to FF, and this is well-defined because if I choose another bb the difference is in AA which dies by the time it gets to FF because D→E→FD\to E\to F is the zero map", and I'd like to know that the square with the dotted side is commutative.

Is this the sort of thing we just have machinery for nowadays? I have formalized it as top and bottom : ShortComplex C and the hypothesis Epi (top.g) but I am flexible, I just don't want to do the diagram chase myself if it's already there, but I have no real idea about how to search for it. Loogling for CategoryTheory.Epi, CategoryTheory.ShortComplex gave me 123 results and the first few did not look like what I wanted.

Markus Himmel (Jul 28 2025 at 12:51):

If I'm not mistaken this should follow from docs#CategoryTheory.ShortComplex.Exact.desc

Aaron Liu (Jul 28 2025 at 13:30):

import Mathlib

universe u v
open CategoryTheory

variable {C : Type u} [Category.{v} C] [Preadditive C] [Balanced C] {top : ShortComplex C} {bot : ShortComplex C}
    (top_exact : top.Exact) [Epi top.g] {hom1 : top.X₁ ⟶ bot.X₁} {hom2 : top.X₂ ⟶ bot.X₂}
    (comm : CommSq top.f hom1 hom2 bot.f)

noncomputable def hom3 : top.X₃ ⟶ bot.X₃ :=
  top_exact.desc (hom2 ≫ bot.g) <| by
    rw [← Category.assoc, comm.w, Category.assoc, bot.zero, Limits.comp_zero]

theorem hom3_comm : CommSq top.g hom2 (hom3 top_exact comm) bot.g where
  w := top_exact.g_desc (hom2 ≫ bot.g) _

Kevin Buzzard (Jul 28 2025 at 17:23):

Thanks, yes, this will surely do. Somehow the more general question is how one can search for such a result without having to ask here, but right now I'm just happy I can proceed :-)

Aaron Liu (Jul 28 2025 at 17:45):

I did loogle and it gave me what I wanted

Aaron Liu (Jul 28 2025 at 17:46):

@loogle CategoryTheory.ShortComplex.Exact, |- _ ⟶ _

loogle (Jul 28 2025 at 17:46):

:search: CategoryTheory.ShortComplex.Exact.desc, CategoryTheory.ShortComplex.Exact.lift, and 2 more

Aaron Liu (Jul 28 2025 at 17:46):

first result :)

Kevin Buzzard (Jul 28 2025 at 17:49):

Aah I see, I should demand that the answer is a morphism. I see I also didn't ask for exactness in my attempt.

Joël Riou (Jul 29 2025 at 09:09):

The first line can be understood as a "colimit cokernel cofork" (C is the cokernel of the map from A to B). Then, the map from C can be constructed using docs#CategoryTheory.Limits.CokernelCofork.IsColimit.desc' (or by applying directly IsColimit.desc, which is what ShortComplex.Exact.desc does).
(One difficulty with the formalization of homological algebra is that there are many different ways to state properties of diagrams.)


Last updated: Feb 28 2026 at 14:05 UTC