programming and proving with higher inductive types
play

Programming and Proving with Higher Inductive Types Dan Licata - PowerPoint PPT Presentation

Programming and Proving with Higher Inductive Types Dan Licata Wesleyan University Department of Mathematics and Computer Science Constructive Type Theory [Martin-Lf] Three senses of constructivity: 2 Constructive Type Theory


  1. Path induction Type of paths is inductively from a to somewhere generated by y2 id p2 y1 y3 a p3 p1 a 16

  2. Path induction Type of paths is inductively from a to somewhere generated by y2 id p2 y1 y3 a p3 p1 a Fix a type A with element a:A. For a family of types C(y:A, p:a=y), to give an element of C(y,p) for all y and p:a=y , su ffi ces to give an element of C(a,id) 16

  3. Type theory is a synthetic theory of spaces/ ∞ -groupoids 17

  4. Homotopy Type Theory type theory new programs and types category theory homotopy theory 18

  5. Univalence [Voevodsky] 19

  6. Univalence [Voevodsky] Equivalence of types is a generalization to spaces of bijection of sets 19

  7. Univalence [Voevodsky] Equivalence of types is a generalization to spaces of bijection of sets Univalence axiom: equality of types ( A = Type B ) is (equivalent to) equivalence of types ( Equiv A B ) 19

  8. Univalence [Voevodsky] Equivalence of types is a generalization to spaces of bijection of sets Univalence axiom: equality of types ( A = Type B ) is (equivalent to) equivalence of types ( Equiv A B ) ∴ all structures/properties respect equivalence 19

  9. Univalence [Voevodsky] Equivalence of types is a generalization to spaces of bijection of sets Univalence axiom: equality of types ( A = Type B ) is (equivalent to) equivalence of types ( Equiv A B ) ∴ all structures/properties respect equivalence Not by collapsing equivalence, but by exploiting proof-relevant equality: transport does real work 19

  10. Higher inductive types [Bauer,Lumsdaine,Shulman,Warren] New way of forming types: Inductive type specified by generators not only for points (elements), but also for paths 20

  11. Constructivity Non-a ffi rmation of classical principles ✓ ? Computational interpretation Proof-relevant mathematics ✓ 21

  12. Homotopy Type Theory type theory new possibilities for computer- new programs checked proofs and types category theory homotopy theory 22

  13. Outline 1.Certified homotopy theory 2.Certified software 23

  14. Outline 1.Certified homotopy theory 2.Certified software 24

  15. Homotopy Theory A branch of topology, the study of spaces and continuous deformations [image from wikipedia] 25

  16. Homotopy in HoTT π 1 (S 1 ) = ℤ Van Kampen Freudenthal π n (S n ) = ℤ π k<n (S n ) = 0 Covering spaces Hopf fibration K(G,n) Whitehead π 2 (S 2 ) = ℤ Cohomology for n-types axioms π 3 (S 2 ) = ℤ Blakers-Massey James Construction π 4 (S 3 ) = ℤ ? [Brunerie, Finster, Hou, Licata, Lumsdaine, Shulman] 26

  17. Homotopy in HoTT π 1 (S 1 ) = ℤ Van Kampen Freudenthal π n (S n ) = ℤ π k<n (S n ) = 0 Covering spaces Hopf fibration K(G,n) Whitehead π 2 (S 2 ) = ℤ Cohomology for n-types axioms π 3 (S 2 ) = ℤ Blakers-Massey James Construction π 4 (S 3 ) = ℤ ? [Brunerie, Finster, Hou, Licata, Lumsdaine, Shulman] 26

  18. Homotopy Groups Homotopy groups of a space X: π 1 (X) is fundamental group (group of loops) π 2 (X) is group of homotopies (2-dimensional loops) π 3 (X) is group of 3-dimensional loops … 27

  19. Telling spaces apart = | 28

  20. Telling spaces apart = | fundamental group fundamental group is non-trivial ( ℤ × ℤ ) is trivial 28

  21. The Circle Circle S 1 is a higher inductive type generated by loop base 29

  22. The Circle Circle S 1 is a higher inductive type generated by loop base : S 1 base loop : base = base 29

  23. The Circle Circle S 1 is a higher inductive type generated by loop base : S 1 point base loop : base = base 29

  24. The Circle Circle S 1 is a higher inductive type generated by loop base : S 1 point base loop : base = base path 29

  25. The Circle Circle S 1 is a higher inductive type generated by loop-1 loop id base : S 1 point base loop : base = base path Free type: equipped with structure inv : loop o loop -1 = id id loop -1 ... loop o loop 29

  26. The Circle Circle recursion: loop function S 1 � X determined by base base’ : X base’ loop’ : base’ = base’ loop’ 30

  27. The Circle Circle recursion: loop function S 1 � X determined by base base’ : X base’ loop’ : base’ = base’ loop’ Circle induction: To prove a predicate P for all points on the circle, su ffi ces to prove P(base) , continuously in the loop 30

  28. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base 31

  29. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base id 31

  30. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base id loop 31

  31. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base id loop loop -1 31

  32. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base id loop loop -1 loop o loop 31

  33. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base id loop loop -1 loop o loop loop -1 o loop -1 31

  34. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base id loop loop -1 loop o loop loop -1 o loop -1 loop o loop -1 31

  35. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base id loop loop -1 loop o loop loop -1 o loop -1 loop o loop -1 = id 31

  36. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base 0 id loop loop -1 loop o loop loop -1 o loop -1 loop o loop -1 = id 31

  37. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base 0 id 1 loop loop -1 loop o loop loop -1 o loop -1 loop o loop -1 = id 31

  38. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base 0 id 1 loop -1 loop -1 loop o loop loop -1 o loop -1 loop o loop -1 = id 31

  39. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base 0 id 1 loop -1 loop -1 2 loop o loop loop -1 o loop -1 loop o loop -1 = id 31

  40. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base 0 id 1 loop -1 loop -1 2 loop o loop -2 loop -1 o loop -1 loop o loop -1 = id 31

  41. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base 0 id 1 loop -1 loop -1 2 loop o loop -2 loop -1 o loop -1 0 loop o loop -1 = id 31

  42. Fundamental group of circle How many di ff erent loops are there on loop the circle, up to homotopy? base 0 id 1 loop integers are “codes” -1 loop -1 for paths on the circle 2 loop o loop -2 loop -1 o loop -1 0 loop o loop -1 = id 31

  43. Fundamental group of circle Definition. Ω (S 1 ) is the type of loops at base i.e. the type (base = S1 base) 32

  44. Fundamental group of circle Definition. Ω (S 1 ) is the type of loops at base i.e. the type (base = S1 base) Theorem. Ω (S 1 ) is equivalent to ℤ , by a map that sends o to + 32

  45. Fundamental group of circle Definition. Ω (S 1 ) is the type of loops at base i.e. the type (base = S1 base) Theorem. Ω (S 1 ) is equivalent to ℤ , by a map that sends o to + Corollary: Fundamental group of the circle is isomorphic to ℤ 32

  46. Fundamental group of circle Definition. Ω (S 1 ) is the type of loops at base i.e. the type (base = S1 base) Theorem. Ω (S 1 ) is equivalent to ℤ , by a map that sends o to + Corollary: Fundamental group of the circle is isomorphic to ℤ 0-truncation (set of connected components) of Ω (S 1 ) 32

  47. Fundamental group of circle Theorem. Ω (S 1 ) is equivalent to ℤ Proof (Shulman, L.): two mutually inverse functions wind : Ω (S 1 ) � ℤ loop - : ℤ � Ω (S 1 ) 33

  48. Fundamental group of circle Theorem. Ω (S 1 ) is equivalent to ℤ Proof (Shulman, L.): two mutually inverse functions wind : Ω (S 1 ) � ℤ loop - : ℤ � Ω (S 1 ) loop 0 = id loop +n = loop o loop o … loop ( n times) loop -n = loop -1 o loop -1 o … loop -1 ( n times) 33

  49. Universal Cover wind : Ω (S 1 ) � ℤ defined by lifting a loop to the cover, and giving the other endpoint of 0 34

Recommend


More recommend