Zulip Chat Archive
Stream: Is there code for X?
Topic: pullbacks in Type u
Greg Price (Mar 31 2021 at 05:39):
Is there an explicit construction in mathlib of pullbacks in the category of types? I'd like to have something like this:
import category_theory.types
open category_theory category_theory.category
universes u
variables {X Y Z : Type u}
def pullback_obj (f : X ⟶ Z) (g : Y ⟶ Z) : Type u :=
{ p : X × Y // f p.1 = g p.2 }
along with the associated cone and is_limit
.
I think I see where such a construction would be -- category_theory.limits.shapes.types -- and I don't see it there. But I know I could be missing something.
Scott Morrison (Mar 31 2021 at 05:40):
Yep, it's missing. Definitely okay to add it. Make sure to add both the isomorphism to the pullback coming from has_pullbacks
, and the @[simp]
lemmas saying how that isomorphism commutes with pullback.fst
and pullback.snd
.
Greg Price (Mar 31 2021 at 05:42):
Cool. I actually have an implementation already, which I wrote the other day -- I'd be glad to send a PR. And I'll be sure to add those pieces.
Could I have an invitation to be able to push a branch?
Scott Morrison (Mar 31 2021 at 05:43):
What's your github username?
Greg Price (Mar 31 2021 at 05:43):
gnprice
Greg Price (Mar 31 2021 at 05:44):
I'm also interested in the specialization where one of the maps is mono:
def mono_pullback_obj (f : X ⟶ Z) (m : Y ⟶ Z) [mono m] : Type u :=
{ x // ∃ y, m y = f x }
(Or perhaps the better setup would be for m
to be the inclusion of a subtype too? Not sure.)
That's probably most natural to do after the more general case, though.
Scott Morrison (Mar 31 2021 at 05:44):
Sent.
Greg Price (Mar 31 2021 at 05:45):
Got it, thanks!
Greg Price (Mar 31 2021 at 07:42):
Last updated: Dec 20 2023 at 11:08 UTC