Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Cubical Type Theory
Dan LicataWesleyan University
Guillaume BrunerieUniversité de Nice Sophia Antipolis
Synthetic geometry
2
Euclid’s postulates1. 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
one line through the point that does not intersect the line
Synthetic geometry
2
Euclid’s postulatesCartesian
1. To draw a straight line from any pointto any point.
2. To produce a finite straight line continuouslyin 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
one line through the point that does not intersect the line
Synthetic geometry
2
Euclid’s postulatesCartesian
models1. To draw a straight line from any pointto any point.
2. To produce a finite straight line continuouslyin 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
one line through the point that does not intersect the line
Synthetic geometry
2
Euclid’s postulatesCartesian
models1. To draw a straight line from any pointto any point.
2. To produce a finite straight line continuouslyin 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 postulatesCartesian
models
Spherical
1. To draw a straight line from any pointto any point.
2. To produce a finite straight line continuouslyin 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 postulatesCartesian
models
Spherical
1. To draw a straight line from any pointto any point.
2. To produce a finite straight line continuouslyin 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
of 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
α
programsM:A
are points
type A is a space
Types as spaces
5
M N
α
programsM:A
are points
type A is a space
proofs of equality
α : M =A Nare paths
Types as spaces
5
M N
α
programsM:A
are points
type A is a space
proofs of equality
α : M =A Nare paths
path operations
Types as spaces
5
M N
αid
programsM:A
are points
type A is a space
proofs of equality
α : M =A Nare paths
path operations
id : M = M (refl)
Types as spaces
5
M N
αidα
programsM:A
are points
type A is a space
proofs of equality
α : M =A Nare paths
path operations
id : M = M (refl)α-1 : N = M (sym)-1
Types as spaces
5
M N
α
P
β
idα
programsM:A
are points
type A is a space
proofs of equality
α : M =A Nare 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α
programsM:A
are points
type A is a space
proofs of equality
α : M =A Nare 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 idasc : γ o (β o α) =M=P (γ o β) o α
Equality type
8
x =A yp :
p1 =x=y p2? :
x : A
Equality type
8
x =A yp :
p1 =x=y p2? :
x : A
Equality type
8
x =A yp :
p1 =x=y p2? :
x : A
Proof-relevant equality
9
x =A yp :
p1 =x=y p2q :
x : A
Proof-relevant equality
9
x =A yp :
p1 =x=y p2q :
x : A
q1 =p1=p2 q2
Proof-relevant equality
9
x =A yp :
p1 =x=y p2q :
x : A
q1 =p1=p2 q2r :
Proof-relevant equality
9
x =A yp :
p1 =x=y p2q :
x : A
q1 =p1=p2 q2r :
...
Homotopy groups of spheres
10
kth homotopy group
n-di
men
sion
al s
pher
e
[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 ageneric program that lifts equivalences
Can do parametricity-like reasoningabout modules
Provides “right” equality for mathematical structures (groups, categories, …)
Higher inductive types
13
New way of forming types:
Inductive type specified by generatorsnot 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
Whiteheadfor n-types
Cohomology axioms
[Brunerie, Cavallo, Finster, Hou, Licata, Lumsdaine, Shulman]
T2 = S1 × S1
Mayer-Vietoris
A patch theory as a HIT
16
Generator forequality of equality
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 theorybased 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 ≃ Bp0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
21
α : A ≃ Bp0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalencep0 : α a0 =B b0
21
α : A ≃ Bp0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalencep0 : α a0 =B b0p0 : a0 =A α-1 b0
21
α : A ≃ Bp0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
p : a0 =A a1 �
p0 : α a0 =B b0p0 : a0 =A α-1 b0
21
α : A ≃ Bp0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
b0 b1
α a0 α a1
p0 p1p : a0 =A a1 �
B
p0 : α a0 =B b0p0 : a0 =A α-1 b0
21
α : A ≃ Bp0 : a0 =α b0 p1 : a1 =α b1 p0 =α p1 : a0 =A a1 ≃ b0 =B b1
Respect Equivalence
b0 b1
α a0 α a1
p0 p1p : a0 =A a1 �
B
p0 : α a0 =B b0p0 : a0 =A α-1 b0
α p : α a0 =B α a1
21
α : A ≃ Bp0 : 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 b0p0 : a0 =A α-1 b0
α p : α a0 =B α a1
21
α : A ≃ Bp0 : 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 b0p0 : a0 =A α-1 b0
α p : α a0 =B α a1
21
α : A ≃ Bp0 : 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 b0p0 : 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’
xt
y
z
w
l rA
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’
xt
y
z
w
l rA
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’
xt
y
z
w
l rA
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’
xt
y
z
w
l rA
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’
xt
y
z
w
l rA
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
ft
g
h
k
l rA$A’
24
x:A ⊢ p : f x =A’ g x λx.p : f =A$A’ g
ft
g
h
k
l rA$A’
f xt x
g x
h x
k x
l x r xA’
24
x:A ⊢ p : f x =A’ g x λx.p : f =A$A’ g
ft
g
h
k
l rA$A’
f xt x
g x
h x
k x
l x r xA’
b[x]
24
x:A ⊢ p : f x =A’ g x λx.p : f =A$A’ g
ft
g
h
k
l rA$A’
f xt x
g x
h x
k x
l x r xA’
b[x]λx.b
25
pt
q
u
v
l ra0 =A a1
p q u v : a0 =A a1l : p =a0=a1 q r : u =a0=a1 vt : p =a0=a1 u
25
pt
q
u
v
l ra0 =A a1
p q u v : a0 =A a1l : p =a0=a1 q r : u =a0=a1 vt : p =a0=a1 u
p ql
a0
a1 a1
a0refl
refl
25
pt
q
u
v
l ra0 =A a1
p q u v : a0 =A a1l : p =a0=a1 q r : u =a0=a1 vt : p =a0=a1 u
p ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
25
pt
q
u
v
l ra0 =A a1
p q u v : a0 =A a1l : p =a0=a1 q r : u =a0=a1 vt : p =a0=a1 u
p ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
26
pt
q
u
v
l ra0 =A a1
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
a0
p
26
pt
q
u
v
l ra0 =A a1
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
a0
p
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l
q
a0
p
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l t
q
a0
p
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l t
q
a0
r
v
p
u
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l t
q
a0
a0
a0a0
r
v
p
a0
u
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l t
q
a0
a0
a0a0
r
v
p
a0
u
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l t
q
a0
a0
a0a0
a1
r
v
p
a0
a1
a1a1
u
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l t
q
a0
a0
a0a0
a1
r
v
p
a0
a1
a1a1
u
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l t
q
a0
a0
a0a0
a1
r
v
p
a0
a1
a1a1
ub
26
pt
q
u
v
l ra0 =A a1p
ql
a0
a1 a1
a0refl
refl
p ut
a0
a1 a1
a0refl
refl
u vr
a0
a1 a1
a0refl
refl
l t
q
a0
a0
a0a0
a1
r
v
p
a0
a1
a1a1
ub
b
Kan condition:any n-dimensional open box has a lid, and an inside
27
Cubes
28
Line
29
ll0 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
aa↑x
a a
Degeneracies
32
x
y
a↑x <0/x> = aa
a↑xa a
Degeneracies
32
x
y
a↑x <0/x> = aa
a↑xa a a↑x <1/x> = a
Degeneracies
32
x
y
a↑x <0/x> = aa
a↑xa a a↑x <1/x> = a
p
Degeneracies
32
p
p↑y
x
y
p
a↑x <0/x> = aa
a↑xa a a↑x <1/x> = a
p
Degeneracies
32
p
p↑y
x
y
p
a↑x <0/x> = aa
a↑xa a a↑x <1/x> = a
pp↑y<0/y> = pp↑y<1/y> = p
Degeneracies
32
p
p↑y
x
y
p
a↑x <0/x> = aa
a↑xa a a↑x <1/x> = a
pp↑y<0/y> = pp↑y<1/y> = pp↑y<0/x> = (p<0/x>)↑y
Degeneracies
32
p
p↑y
x
y
p
a↑x <0/x> = aa
a↑xa a a↑x <1/x> = a
pp↑y<0/y> = pp↑y<1/y> = pp↑y<0/x> = (p<0/x>)↑yp↑y<1/x> = (p<1/x>)↑y
Degeneracies
32
p
p↑y
x
y
p
a↑x <0/x> = aa
a↑xa a a↑x <1/x> = a
pp↑y<0/y> = pp↑y<1/y> = pp↑y<0/x> = (p<0/x>)↑yp↑y<1/x> = (p<1/x>)↑y
a0a0↑ya1 a1↑y
Degeneracies
32
p
p↑y
x
y
p
a↑x <0/x> = a
substitution after weakening is identity, otherwise pushes inside
aa↑x
a a a↑x <1/x> = a
pp↑y<0/y> = pp↑y<1/y> = pp↑y<0/x> = (p<0/x>)↑yp↑y<1/x> = (p<1/x>)↑y
a0a0↑ya1 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