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

seifert van kampen theorem in homotopy type theory
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

1

Seifert-van Kampen Theorem in Homotopy Type Theory

* Favonia @ CMU Michael Shulman @ U of San Diego

[ Toronto version ]

slide-2
SLIDE 2

2

Homotopy Type Theory

  • types ~= spaces
  • terms ~= points
  • functions ~= continuous maps
  • identifications ~= paths

* Non-trivial identifications * Type theory <-> topology

slide-3
SLIDE 3

3

a b

terms

Iterated Paths

slide-4
SLIDE 4

3

a b

terms paths

Iterated Paths

slide-5
SLIDE 5

3

a b

terms paths

Iterated Paths

slide-6
SLIDE 6

3

a b

terms paths paths of paths

Iterated Paths

slide-7
SLIDE 7

4

a b f(a) f(b) ~> f A B Functorial

slide-8
SLIDE 8

5

Subject of Study

fundamental groups of pushouts

slide-9
SLIDE 9

5

Subject of Study

"structure of loops" fundamental groups of pushouts

slide-10
SLIDE 10

5

Subject of Study

"structure of loops" fundamental groups of pushouts "disjoint union added with bridges"

slide-11
SLIDE 11

6

Fundamental Groups a

(unique) ways to travel from a to a

slide-12
SLIDE 12

6

Fundamental Groups a

(unique) ways to travel from a to a

here they correspond to integers

positive <--> clockwise negative <--> counter zero <--> staying

slide-13
SLIDE 13

6

Fundamental Groups a

(unique) ways to travel from a to a

here they correspond to integers

positive <--> clockwise negative <--> counter zero <--> staying

Trunc 0 (a == a) ~= Z

slide-14
SLIDE 14

7

Fundamental Groups a

(unique) ways to travel from a to a

much more if a new path is added

Trunc 0 (a == a) ~= Z * Z

(free product)

slide-15
SLIDE 15

8

(Homotopy) Pushouts A B C

slide-16
SLIDE 16

8

(Homotopy) Pushouts A B 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)

c f(c) g(c)

slide-17
SLIDE 17

9

A B C

ways to travel from to ?

(Homotopy) Pushouts

slide-18
SLIDE 18

10

A B C (Homotopy) Pushouts

slide-19
SLIDE 19

10

A B C

alternative paths in A and B

(Homotopy) Pushouts

slide-20
SLIDE 20

11

Theorem Statement

fund.grp(pushout) ~= ?(??(A), ??(B), C)

??: paths between any two points for any A, B, C, f and g,

slide-21
SLIDE 21

12

Fundamental Groupoids a

(unique) ways to travel from a to b

b

Trunc 0 (a == b)

slide-22
SLIDE 22

13

Theorem Statement

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

slide-23
SLIDE 23

14

Alternative Sequences

induction on both ends: A to A, A to B, B to A, B to B [p1, p2, ..., pn] A B

slide-24
SLIDE 24

15

Alternative Sequences

A B = A B A B = A B quotients of alternative sequences by killing trivial identifications

slide-25
SLIDE 25

16

Alternative Sequences

each case is a quotient

  • f alternative sequences

induction on both ends: A to A, A to B, B to A, B to B [p1, p2, ..., pn] A B

slide-26
SLIDE 26

17

Alternative Sequences

next: unify four cases into

  • ne type family alt.seq
slide-27
SLIDE 27

17

Alternative Sequences

next: unify four cases into

  • ne type family alt.seq

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

~=

show respects for bridges by C. ex:

slide-28
SLIDE 28

18

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

~=

slide-29
SLIDE 29

18 [..., p] |--> [..., p, trivial]

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

~=

|-->

slide-30
SLIDE 30

18 [..., p] |--> [..., p, trivial]

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

[..., p, trivial] <--| [..., p]

~=

|--> <--|

slide-31
SLIDE 31

19

Alternative Sequences

A -> A A -> B B -> A B -> B

seq a (f c) ~= seq a (g c) seq b (f c) ~= seq b (g c) seq (f c) a ~= seq (g c) a seq (f c) b ~= seq (g c) b

commutes

slide-32
SLIDE 32

20

Theorem

fund.groupoid(pushout) ~= alt.seqs(fund.groupoid(A), fund.groupoid(B), C)

(zero pages left before the proofs)

for any A, B, C, f and g,

slide-33
SLIDE 33

21

Recipe of Equivalences

* two functions back and forth ("decode" and "encode") * round-trips are identity

slide-34
SLIDE 34

22

fund.groupoid -> alt.seqs

(all paths)

encode

Trunc 0 (p == q) -> alt.seqs p q

slide-35
SLIDE 35

22

fund.groupoid -> alt.seqs

path induction: consider only trivial paths

(all paths)

encode

Trunc 0 (p == q) -> alt.seqs p q (p : Pushout) -> alt.seqs p p

slide-36
SLIDE 36

22

fund.groupoid -> alt.seqs

path induction: consider only trivial paths

(all paths)

encode

Trunc 0 (p == q) -> alt.seqs p q (p : Pushout) -> alt.seqs p p

pushout induction

A B A A B B

bridges by C (next page)

slide-37
SLIDE 37

23

A B A B A B

applying the diagonal in coherence square

=?

case A case B

slide-38
SLIDE 38

23

A B A B A B

applying the diagonal in coherence square

=?

case A case B witnessed by the quotient

slide-39
SLIDE 39

24

alt.seq -> fund.groupoid

just compositions!

decode

slide-40
SLIDE 40

24

alt.seq -> fund.groupoid

just compositions!

decode

grpd -> seqs -> grpd

again by path induction (similar to "encode")

decode encode

slide-41
SLIDE 41

24

alt.seq -> fund.groupoid

just compositions!

decode

grpd -> seqs -> grpd

again by path induction (similar to "encode")

seqs -> grpd -> seqs

induction on sequences

lemma: encode(decode[p1,p2,...]) = p1 :: encode(decode[p2,...])

decode encode encode decode

slide-42
SLIDE 42

25

Theorem

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

slide-43
SLIDE 43

26

Final Notes

* Refined version: Can focus on just the set of base points of C covering its components.

github.com/HoTT/HoTT-Agda/blob/1.0/Homotopy/VanKampen.agda

* All mechanized in Agda

www.cs.cmu.edu/~kuenbanh/files/vankampen.pdf

* Submitted to CSL 2016