Cubical Type Theory Dan Licata Wesleyan University Guillaume - - PowerPoint PPT Presentation
Cubical Type Theory Dan Licata Wesleyan University Guillaume - - PowerPoint PPT Presentation
Cubical Type Theory Dan Licata Wesleyan University Guillaume Brunerie Universit de Nice Sophia Antipolis Synthetic geometry Euclids postulates 1. To draw a straight line from any point to any point. 2. To produce a finite straight line
Synthetic geometry
2
Euclid’s postulates
- 1. To draw a straight line from any point
to any point.
- 2. To produce a finite straight line continuously
in a straight line.
- 3. To describe a circle with any center and distance.
- 4. That all right angles are equal to one another.
- 5. Given a line and a point not on it, there is exactly
- ne line through the point that does not intersect
the line
Synthetic geometry
2
Euclid’s postulates Cartesian
- 1. To draw a straight line from any point
to any point.
- 2. To produce a finite straight line continuously
in a straight line.
- 3. To describe a circle with any center and distance.
- 4. That all right angles are equal to one another.
- 5. Given a line and a point not on it, there is exactly
- ne line through the point that does not intersect
the line
Synthetic geometry
2
Euclid’s postulates Cartesian models
- 1. To draw a straight line from any point
to any point.
- 2. To produce a finite straight line continuously
in a straight line.
- 3. To describe a circle with any center and distance.
- 4. That all right angles are equal to one another.
- 5. Given a line and a point not on it, there is exactly
- ne line through the point that does not intersect
the line
Synthetic geometry
2
Euclid’s postulates Cartesian models
- 1. To draw a straight line from any point
to any point.
- 2. To produce a finite straight line continuously
in a straight line.
- 3. To describe a circle with any center and distance.
- 4. That all right angles are equal to one another.
Synthetic geometry
2
Euclid’s postulates Cartesian models Spherical
- 1. To draw a straight line from any point
to any point.
- 2. To produce a finite straight line continuously
in a straight line.
- 3. To describe a circle with any center and distance.
- 4. That all right angles are equal to one another.
Synthetic geometry
2
Euclid’s postulates Cartesian models Spherical
- 1. To draw a straight line from any point
to any point.
- 2. To produce a finite straight line continuously
in a straight line.
- 3. To describe a circle with any center and distance.
- 4. That all right angles are equal to one another.
- 5. Two distinct lines meet at two antipodal points.
category theory homotopy theory type theory
Homotopy type theory
3
[Awodey,Warren,Voevodsky,Streicher,Hofmann Lumsdaine,Gambino,Garner,van den Berg]
higher
Homotopy type theory is a synthetic theory
- f spaces
4
Types as spaces
5
M N α
Types as spaces
5
M N α
type A is a space
Types as spaces
5
M N α
programs M:A are points type A is a space
Types as spaces
5
M N α
programs M:A are points type A is a space proofs of equality α : M =A N are paths
Types as spaces
5
M N α
programs M:A are points type A is a space proofs of equality α : M =A N are paths path operations
Types as spaces
5
M N α id
programs M:A are points type A is a space proofs of equality α : M =A N are paths path operations
id : M = M (refl)
Types as spaces
5
M N α id α
programs M:A are points type A is a space proofs of equality α : M =A N are paths path operations
id : M = M (refl) α-1 : N = M (sym)
- 1
Types as spaces
5
M N α P β id α
programs M:A are points type A is a space proofs of equality α : M =A N are paths path operations
id : M = M (refl) α-1 : N = M (sym) β o α : M = P (trans)
- 1
Homotopy
6
Deformation of one path into another α β
Homotopy
6
Deformation of one path into another α β
Homotopy
6
Deformation of one path into another α β = 2-dimensional path between paths
Homotopy
6
Deformation of one path into another α β = 2-dimensional path between paths
α =x=y β δ :
Types as spaces
7
M N α P β id α
programs M:A are points type A is a space proofs of equality α : M =A N are paths path operations
id : M = M (refl) α-1 : N = M (sym) β o α : M = P (trans)
- 1
homotopies
ul : id o α =M=N α il : α-1 o α =M=M id asc : γ o (β o α) =M=P (γ o β) o α
Equality type
8
x =A y p : p1 =x=y p2 ? : x : A
Equality type
8
x =A y p : p1 =x=y p2 ? : x : A
Equality type
8
x =A y p : p1 =x=y p2 ? : x : A
Proof-relevant equality
9
x =A y p : p1 =x=y p2 q : x : A
Proof-relevant equality
9
x =A y p : p1 =x=y p2 q : x : A q1 =p1=p2 q2
Proof-relevant equality
9
x =A y p : p1 =x=y p2 q : x : A q1 =p1=p2 q2 r :
Proof-relevant equality
9
x =A y p : p1 =x=y p2 q : x : A q1 =p1=p2 q2 r : ...
Homotopy groups of spheres
10
kth homotopy group n-dimensional sphere
[image from wikipedia]
Univalence
11
[Voevodsky]
Univalence
11
Equivalence of types is a generalization to spaces of bijection of sets [Voevodsky]
Univalence
11
Equivalence of types is a generalization to spaces of bijection of sets Univalence axiom, roughly: all structures/properties respect equivalence [Voevodsky]
Univalence
12
Transporting along an equality is a generic program that lifts equivalences Can do parametricity-like reasoning about modules Provides “right” equality for mathematical structures (groups, categories, …)
Higher inductive types
13
New way of forming types: Inductive type specified by generators not only for points (elements), but also for paths [Bauer,Lumsdaine,Shulman,Warren]
14
Subsume quotient types, which have been problematic in intensional type theory Direct constructive definitions of spaces and other mathematical concepts Some nascent programming applications
Higher inductive types
Homotopy in HoTT
15
π1(S1) = πk<n(Sn) = 0 π2(S2) = Hopf fibration π3(S2) = πn(Sn) = Freudenthal π4(S3) = ? James Construction K(G,n) Blakers-Massey Van Kampen Covering spaces Whitehead for n-types Cohomology axioms [Brunerie, Cavallo, Finster, Hou, Licata, Lumsdaine, Shulman] T2 = S1 × S1 Mayer-Vietoris
A patch theory as a HIT
16
Generator for R:Type a↔b@i doc[n] compressed
points describe repository contents paths are patches
gzip
doc[n] doc[n] doc[n] doc[n] a↔b@i c↔d@j c↔d@j a↔b@i i≠j
paths between paths are equations between patches
Computation
17
Bezem,Coquand,Huber, 2013 gave a constructive model of type theory in Kan cubical sets; evaluator based on this This work: a syntactic type theory based on these ideas [Coquand,Huber,Bezem,Barras, Licata,Harper,Brunerie,Shulman, Altenkirch,Kaposi,Polansky…]
Everything Respects Equivalence
18
19
α : A ≃ B α’ : A’ ≃ B’ α×α’ : A × A’ ≃ B × B’
Respect Equivalence
19
α : A ≃ B α’ : A’ ≃ B’ α×α’ : A × A’ ≃ B × B’
Respect Equivalence
α×α’(a:A,a’:A’) = (α a, α’ a’)
19
α : A ≃ B α’ : A’ ≃ B’ α×α’ : A × A’ ≃ B × B’
Respect Equivalence
α×α’(a:A,a’:A’) = (α a, α’ a’) (α×α’)-1(b:B,b’:B’) = (α-1 b, α’-1 b’)
20
Respect Equivalence
α : A ≃ B α’ : A’ ≃ B’ α$α’ : A $ A’ ≃ B $ B’
20
Respect Equivalence
α$α’(f:A $ A’) = α’ . f . α-1 α : A ≃ B α’ : A’ ≃ B’ α$α’ : A $ A’ ≃ B $ B’
20
Respect Equivalence
α$α’(f:A $ A’) = α’ . f . α-1 (α$α’)-1(g:B $ B’) = α’-1 . g . α α : A ≃ B α’ : A’ ≃ B’ α$α’ : A $ A’ ≃ B $ B’
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
p0 : α a0 =B b0
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
p0 : α a0 =B b0 p0 : a0 =A α-1 b0
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
p : a0 =A a1
- p0 : α a0 =B b0
p0 : a0 =A α-1 b0
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
b0 b1 α a0 α a1 p0
p1
p : a0 =A a1
- B
p0 : α a0 =B b0 p0 : a0 =A α-1 b0
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
b0 b1 α a0 α a1 p0
p1
p : a0 =A a1
- B
p0 : α a0 =B b0 p0 : a0 =A α-1 b0 α p : α a0 =B α a1
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
b0 b1 α a0 α a1 p0
p1
α p p : a0 =A a1
- B
p0 : α a0 =B b0 p0 : a0 =A α-1 b0 α p : α a0 =B α a1
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
b0 b1 α a0 α a1 p0
p1
α p p : a0 =A a1
- B
p0 : α a0 =B b0 p0 : a0 =A α-1 b0 α p : α a0 =B α a1
21
α : A ≃ B p0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
b0 b1 α a0 α a1 p0
p1
α p p : a0 =A a1
- B
p0 : α a0 =B b0 p0 : a0 =A α-1 b0
! p0 ; α p ; p1
α p : α a0 =B α a1
Missing Sides
22
23
p : x =A y p’ : x’ =A’ y’ (p,p’) : (x,x’) =A×A’ (y,y’)
23
p : x =A y p’ : x’ =A’ y’ (p,p’) : (x,x’) =A×A’ (y,y’) (x,x’) (t,t’) (y,y’) (z,z’) (w,w’) (l,l’) (r,r’) A×A’
23
p : x =A y p’ : x’ =A’ y’ (p,p’) : (x,x’) =A×A’ (y,y’) (x,x’) (t,t’) (y,y’) (z,z’) (w,w’) (l,l’) (r,r’) A×A’ x t y z w l r A
23
p : x =A y p’ : x’ =A’ y’ (p,p’) : (x,x’) =A×A’ (y,y’) (x,x’) (t,t’) (y,y’) (z,z’) (w,w’) (l,l’) (r,r’) A×A’ x t y z w l r A b
23
p : x =A y p’ : x’ =A’ y’ (p,p’) : (x,x’) =A×A’ (y,y’) (x,x’) (t,t’) (y,y’) (z,z’) (w,w’) (l,l’) (r,r’) A×A’ x t y z w l r A b x’ t’ y’ z’ w’ l’ r’ A’
23
p : x =A y p’ : x’ =A’ y’ (p,p’) : (x,x’) =A×A’ (y,y’) (x,x’) (t,t’) (y,y’) (z,z’) (w,w’) (l,l’) (r,r’) A×A’ x t y z w l r A b x’ t’ y’ z’ w’ l’ r’ A’ b’
23
p : x =A y p’ : x’ =A’ y’ (p,p’) : (x,x’) =A×A’ (y,y’) (x,x’) (t,t’) (y,y’) (z,z’) (w,w’) (l,l’) (r,r’) A×A’ x t y z w l r A b x’ t’ y’ z’ w’ l’ r’ A’ b’ (b,b’)
24
x:A ⊢ p : f x =A’ g x λx.p : f =A$A’ g
24
x:A ⊢ p : f x =A’ g x λx.p : f =A$A’ g f t g h k l r A$A’
24
x:A ⊢ p : f x =A’ g x λx.p : f =A$A’ g f t g h k l r A$A’ f x t x g x h x k x l x r x A’
24
x:A ⊢ p : f x =A’ g x λx.p : f =A$A’ g f t g h k l r A$A’ f x t x g x h x k x l x r x A’ b[x]
24
x:A ⊢ p : f x =A’ g x λx.p : f =A$A’ g f t g h k l r A$A’ f x t x g x h x k x l x r x A’ b[x] λx.b
25
p t q u v l r a0 =A a1 p q u v : a0 =A a1 l : p =a0=a1 q r : u =a0=a1 v t : p =a0=a1 u
25
p t q u v l r a0 =A a1 p q u v : a0 =A a1 l : p =a0=a1 q r : u =a0=a1 v t : p =a0=a1 u p q l a0 a1 a1 a0 refl refl
25
p t q u v l r a0 =A a1 p q u v : a0 =A a1 l : p =a0=a1 q r : u =a0=a1 v t : p =a0=a1 u p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl
25
p t q u v l r a0 =A a1 p q u v : a0 =A a1 l : p =a0=a1 q r : u =a0=a1 v t : p =a0=a1 u p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl
26
p t q u v l r a0 =A a1 q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl a0 p
26
p t q u v l r a0 =A a1 q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl a0 p
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l q a0 p
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l t q a0 p
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l t q a0 r v p u
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l t q a0 a0 a0 a0 r v p a0 u
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l t q a0 a0 a0 a0 r v p a0 u
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l t q a0 a0 a0 a0 a1 r v p a0 a1 a1 a1 u
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l t q a0 a0 a0 a0 a1 r v p a0 a1 a1 a1 u
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l t q a0 a0 a0 a0 a1 r v p a0 a1 a1 a1 u b
26
p t q u v l r a0 =A a1 p q l a0 a1 a1 a0 refl refl p u t a0 a1 a1 a0 refl refl u v r a0 a1 a1 a0 refl refl l t q a0 a0 a0 a0 a1 r v p a0 a1 a1 a1 u b b
Kan condition: any n-dimensional
- pen box has a lid,
and an inside
27
Cubes
28
Line
29
l
l0 l1
Square
30
s x y
s00 s01 s11 s10
Square
30
s1-
s-0 s x y
s-1 s0- s00 s01 s11 s10
Square with its boundary
31
s x y
Square with its boundary
31
s x y
s<0/x>
Square with its boundary
31
s<1/x>
s x y
s<0/x>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<0/x>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<1/y> s<0/x>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<1/y> s<0/x> s<0/x><0/y>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<1/y> s<0/x> s<0/x><1/y> s<0/x><0/y>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<1/y> s<0/x> s<1/x><0/y> s<0/x><1/y> s<0/x><0/y>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y> s<0/y><1/x>
Square with its boundary
31
s<1/x>
s<0/y> s x y
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y> s<0/y><1/x> substitutions for independent variables commute ≡
Degeneracies
32
x y
a
Degeneracies
32
x y
a a↑x a a
Degeneracies
32
x y
a↑x <0/x> = a a a↑x a a
Degeneracies
32
x y
a↑x <0/x> = a a a↑x a a a↑x <1/x> = a
Degeneracies
32
x y
a↑x <0/x> = a a a↑x a a a↑x <1/x> = a p
Degeneracies
32
p p↑y x y
p a↑x <0/x> = a a a↑x a a a↑x <1/x> = a p
Degeneracies
32
p p↑y x y
p a↑x <0/x> = a a a↑x a a a↑x <1/x> = a p
p↑y<0/y> = p p↑y<1/y> = p
Degeneracies
32
p p↑y x y
p a↑x <0/x> = a a a↑x a a a↑x <1/x> = a p
p↑y<0/y> = p p↑y<1/y> = p p↑y<0/x> = (p<0/x>)↑y
Degeneracies
32
p p↑y x y
p a↑x <0/x> = a a a↑x a a a↑x <1/x> = a p
p↑y<0/y> = p p↑y<1/y> = p p↑y<0/x> = (p<0/x>)↑y p↑y<1/x> = (p<1/x>)↑y
Degeneracies
32
p p↑y x y
p a↑x <0/x> = a a a↑x a a a↑x <1/x> = a p
p↑y<0/y> = p p↑y<1/y> = p p↑y<0/x> = (p<0/x>)↑y p↑y<1/x> = (p<1/x>)↑y
a0 a0↑y a1 a1↑y
Degeneracies
32
p p↑y x y
p a↑x <0/x> = a substitution after weakening is identity,
- therwise pushes inside
a a↑x a a a↑x <1/x> = a p
p↑y<0/y> = p p↑y<1/y> = p p↑y<0/x> = (p<0/x>)↑y p↑y<1/x> = (p<1/x>)↑y
a0 a0↑y a1 a1↑y
Dimensions
33
n-dimensional cube has n dimension names free α-equivalence: make {x,…}-cube into {x’,...}-cube Substitution of 0 or 1: faces Weakening:degeneracy/reflexivity [Coquand,Pitts] Properties are cubical identities
34
s<1/x>
s<0/y> s
s<1/y> s<0/x> l t r b
34
s<1/x>
s<0/y> s
s<1/y> s<0/x>
s<x↔y><0/x> = s<0/y>
l t r b
34
s<1/x>
s<0/y> s
s<1/y> s<0/x>
s<x↔y><0/x> = s<0/y>
l t r b
s<x↔y><0/y> = s<0/x>
34
s<1/x>
s<0/y> s
s<1/y> s<0/x>
s<x↔y><0/x> = s<0/y>
l t r b
s<x↔y>
t l b r
s<x↔y><0/y> = s<0/x>
Symmetries
34
s<1/x>
s<0/y> s
s<1/y> s<0/x>
s<x↔y><0/x> = s<0/y>
l t r b
s<x↔y>
t l b r
s<x↔y><0/y> = s<0/x>
35
s<1/x>
s<0/y>
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
35
s<1/x>
s<0/y>
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
s<x/y> is a line ({x}-cube)
35
s<x/y><0/x> = s<0/x><0/y>
s<1/x>
s<0/y>
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
s<x/y> is a line ({x}-cube)
35
s<x/y><0/x> = s<0/x><0/y>
s<1/x>
s<0/y>
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
s<x/y> is a line ({x}-cube)
35
s<x/y><0/x> = s<0/x><0/y> s<x/y><1/x> = s<1/x><1/y>
s<1/x>
s<0/y>
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
s<x/y> is a line ({x}-cube)
35
s<x/y><0/x> = s<0/x><0/y> s<x/y><1/x> = s<1/x><1/y>
s<1/x>
s<0/y>
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
s<x/y> is a line ({x}-cube)
35
s<x/y><0/x> = s<0/x><0/y> s<x/y><1/x> = s<1/x><1/y>
s<1/x>
s<0/y>
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
s<x/y> is a line ({x}-cube) s<x/y>
Diagonals
35
s<x/y><0/x> = s<0/x><0/y> s<x/y><1/x> = s<1/x><1/y>
s<1/x>
s<0/y>
s<1/y> s<0/x> s<1/x><0/y> s<1/x><1/y> s<0/x><1/y> s<0/x><0/y>
s<x/y> is a line ({x}-cube) s<x/y>
Dimensions
36
n-dimensional cube has n dimension names free α-equivalence: make {x,...}-cube into {x’,...}-cube Substitution of 0 or 1: faces Weakening: degeneracy/reflexivity Exchange: symmetry Contraction: diagonal [Coquand,Pitts] Properties are cubical identities