Zulip Chat Archive

Stream: Is there code for X?

Topic: Adjunction space, a.k.a. attaching space


Michael Rothgang (Jul 16 2024 at 19:05):

Given two topological spaces XX and YY and a map f ⁣:AYf\colon A\to Y from a subspace AXA\subset X to YY, one can form the adjunction, commonly denoted XfYX\cup_f Y, as the quotient of the disjoint union XYX\sqcup Y by the equivalence relation generated by all pairs af(a)a \sim f(a).

Does mathlib have this? (It has the disjoint union and the quotient topology, so defining this wouldn't be hard. I wasn't planning to do so now, but if it exists, I would probably use it.)

Adam Topaz (Jul 16 2024 at 19:06):

Again, this is an example of a colimit (in this case, a pushout).

Michael Rothgang (Jul 16 2024 at 19:06):

I see - I should learn how to think far more categorically!

Adam Topaz (Jul 16 2024 at 19:07):

the general setup is this: you have three spaces AA, XX and YY, and you look at two maps f:AXf : A \to X and g:AYg : A \to Y. Then take the quotient of the disjoint union of XX and YY identifying the images of a:Aa : A in the copy of XX and YY.

Adam Topaz (Jul 16 2024 at 19:08):

your adjunction space is the special case where ff is the inclusion of AA into XX and gg is the composition of your ff with this inclusion.

Michael Rothgang (Jul 16 2024 at 19:11):

Thanks; makes perfect sense!
Is there some custom notation for the pushout (or colimits in general)? How would I write this down (or where can I look to see one example myself)?

Adam Topaz (Jul 16 2024 at 19:12):

import Mathlib

open CategoryTheory Limits

noncomputable
example (A X Y : TopCat) (f : A  X) (g : A  Y) : TopCat := pushout f g

Michael Rothgang (Jul 16 2024 at 19:13):

Wow, so short! Thanks a lot!

Adam Topaz (Jul 16 2024 at 19:13):

note that it's noncomputable, unfortunately. If you want something more concrete, you will likely have to make things more explicit.

Michael Rothgang (Jul 16 2024 at 19:14):

I certainly don't need to generate code. I'll see if I need to use anything more concrete...

Dagur Asgeirsson (Jul 16 2024 at 19:23):

This file claims to be about pullbacks and pushouts in TopCat. It develops some API for explicit pullback, but there is barely anything about pushouts. If you need an explicit construction of the pushout, you might want to take a look at how this is done there for the pullback and dualize.

Michael Rothgang (Jul 16 2024 at 19:33):

This looks exactly like what I would do, thanks a lot!


Last updated: May 02 2025 at 03:31 UTC