seifert van kampen theorem in homotopy type theory
play

Seifert-van Kampen Theorem in Homotopy Type Theory [ Toronto - PowerPoint PPT Presentation

Seifert-van Kampen Theorem in Homotopy Type Theory [ Toronto version ] Michael Shulman @ U of San Diego * Favonia @ CMU 1 Homotopy Type Theory * Type theory <-> topology - types ~= spaces - terms ~= points - functions ~= continuous


  1. Seifert-van Kampen Theorem in Homotopy Type Theory [ Toronto version ] Michael Shulman @ U of San Diego * Favonia @ CMU 1

  2. Homotopy Type Theory * Type theory <-> topology - types ~= spaces - terms ~= points - functions ~= continuous maps - identifications ~= paths * Non-trivial identifications 2

  3. Iterated Paths a terms b 3

  4. Iterated Paths a terms paths b 3

  5. Iterated Paths a terms paths b 3

  6. Iterated Paths a terms paths paths of paths b 3

  7. Functorial a f(a) f ~> b f(b) A B 4

  8. Subject of Study fundamental groups of pushouts 5

  9. Subject of Study fundamental groups of pushouts "structure of loops" 5

  10. Subject of Study fundamental groups of pushouts "structure of loops" "disjoint union added with bridges" 5

  11. Fundamental Groups (unique) ways to a travel from a to a 6

  12. Fundamental Groups (unique) ways to a travel from a to a here they correspond to integers positive <--> clockwise negative <--> counter zero <--> staying 6

  13. Fundamental Groups (unique) ways to a travel from a to a here they correspond to integers positive <--> clockwise negative <--> counter zero <--> staying Trunc 0 (a == a) ~= Z 6

  14. Fundamental Groups (unique) ways to a travel from a to a much more if a new path is added Trunc 0 (a == a) ~= Z * Z (free product) 7

  15. (Homotopy) Pushouts B A C 8

  16. (Homotopy) Pushouts g(c) B c f(c) A C data Pushout (A B C : Type) (f : C -> A) (g : C -> B) : Type where left : A -> Pushout A B C f g right : B -> Pushout A B C f g glue : (c : C) -> left (f c) == right (g c) 8

  17. (Homotopy) Pushouts B A C ways to travel from to ? 9

  18. (Homotopy) Pushouts B A C 10

  19. (Homotopy) Pushouts B A C alternative paths in A and B 10

  20. Theorem Statement for any A, B, C, f and g, fund.grp(pushout) ~= ?(??(A), ??(B), C) ??: paths between any two points 11

  21. Fundamental Groupoids (unique) ways to a travel from a to b b Trunc 0 (a == b) 12

  22. Theorem Statement for any A, B, C, f and g, fund.groupoid(pushout) ~= ?(fund.groupoid(A), fund.groupoid(B), C) ?: "seqs of alternative elems" 13

  23. Alternative Sequences [p1, p2, ..., pn] induction on both ends: A to A, A to B, B to A, B to B A B 14

  24. Alternative Sequences quotients of = alternative A B A B sequences by killing trivial = identifications A B A B 15

  25. Alternative Sequences [p1, p2, ..., pn] induction on both ends: A to A, A to B, B to A, B to B A B each case is a quotient of alternative sequences 16

  26. Alternative Sequences next: unify four cases into one type family alt.seq 17

  27. Alternative Sequences next: unify four cases into one type family alt.seq show respects for bridges by C. ex: alt.seq a (f c) ~= alt.seq a (g c) ~= 17

  28. alt.seq a (f c) ~= alt.seq a (g c) ~= 18

  29. alt.seq a (f c) ~= alt.seq a (g c) ~= [..., p] |--> [..., p, trivial] |--> 18

  30. alt.seq a (f c) ~= alt.seq a (g c) ~= [..., p] |--> [..., p, trivial] |--> [..., p, trivial] <--| [..., p] <--| 18

  31. Alternative Sequences seq a (f c) ~= seq a (g c) A -> A A -> B seq (f c) a ~= seq (g c) a seq (f c) b ~= seq (g c) b commutes B -> A B -> B seq b (f c) ~= seq b (g c) 19

  32. Theorem for any A, B, C, f and g, fund.groupoid(pushout) ~= alt.seqs(fund.groupoid(A), fund.groupoid(B), C) (zero pages left before the proofs) 20

  33. Recipe of Equivalences * two functions back and forth ("decode" and "encode") * round-trips are identity 21

  34. fund.groupoid -> alt.seqs encode (all paths) Trunc 0 (p == q) -> alt.seqs p q 22

  35. fund.groupoid -> alt.seqs encode (all paths) Trunc 0 (p == q) -> alt.seqs p q path induction: consider only trivial paths (p : Pushout) -> alt.seqs p p 22

  36. fund.groupoid -> alt.seqs encode (all paths) Trunc 0 (p == q) -> alt.seqs p q path induction: consider only trivial paths (p : Pushout) -> alt.seqs p p pushout induction bridges by C A B (next page) A B A B 22

  37. case A A B =? case B A B A B applying the diagonal in coherence square 23

  38. case A A B =? case B A B A B applying the diagonal in coherence square witnessed by the quotient 23

  39. alt.seq -> fund.groupoid decode just compositions! 24

  40. alt.seq -> fund.groupoid decode just compositions! grpd -> seqs -> grpd encode decode again by path induction (similar to "encode") 24

  41. alt.seq -> fund.groupoid decode just compositions! grpd -> seqs -> grpd encode decode again by path induction (similar to "encode") seqs -> grpd -> seqs decode encode induction on sequences lemma: encode(decode[p1,p2,...]) = p1 :: encode(decode[p2,...]) 24

  42. Theorem for any A, B, C, f and g, fund.groupoid(pushout) = alt.seqs(fund.groupoid(A), fund.groupoid(B), C) 25

  43. Final Notes * Refined version: Can focus on just the set of base points of C covering its components. * All mechanized in Agda github.com/HoTT/HoTT-Agda/blob/1.0/Homotopy/VanKampen.agda * Submitted to CSL 2016 www.cs.cmu.edu/~kuenbanh/files/vankampen.pdf 26

Recommend


More recommend