Zulip Chat Archive
Stream: Is there code for X?
Topic: Composing finite number of morphisms?
Chiyu Zhou (Aug 24 2022 at 01:24):
Hello, I'm a math undergraduate and I'm now working on proving van kampen theorem, groupoid version. In some part of the proof I need to cut a path p : path a z
into finite pieces p1 : path a b, p2 : path b c... pn : path y z
, map these pieces into morphisms (endpoints specified, so types are different) m1 : a -> b, m2: b -> c ... mn : y -> z
in a groupoid, and then compose them to get a single morphism a->z
. Now I've already managed to store the morphisms m1 : a -> b, m2: b -> c ... mn : y -> z
in d_array
, but lfold doesn't work because it requires the output to be all of the same type. What shall I do now? Perhaps I shall do some sort of induction?
Chiyu Zhou (Aug 24 2022 at 01:28):
There's also a concern that the endpoints may not be definitionally equal. i.e. I may need to compose m1 : a - >b, m2 : b' ->c
but with a proof of b = b'
. :pensive:
Junyan Xu (Aug 24 2022 at 02:48):
I think docs#category_theory.compose_path is what you are looking for; you should use docs#quiver.path instead of d_array. I don't know how your endpoints could be non-def-eq, but in category theory the way to compose morphisms with an equality proof at the endpoints is to insert a docs#category.eq_to_hom.
Junyan Xu (Aug 24 2022 at 02:51):
I'm wondering whether we should make a docs#quiver instance on every topological space with hom x y := path x y
.
Andrew Yang (Aug 24 2022 at 03:20):
We already have a quiver instance for all preorders IIRC. So that might give diamonds on ordered topological spaces.
Last updated: Dec 20 2023 at 11:08 UTC