A K N Correction: We will redo the empty type the rules were - - PowerPoint PPT Presentation
A K N Correction: We will redo the empty type the rules were - - PowerPoint PPT Presentation
A K N Correction: We will redo the empty type the rules were wrong; the video was re-uploaded hcomp i ( x:A B) [ N] M N(x) M(x) N(x) x.hcomp i B [ N(x)] M(x) B X fill the square with the same x along i A i transp i
Correction:
We will redo the empty type
the rules were wrong; the video was re-uploaded
i
A
X
hcompi (Πx:AB) [φ ↦ N] M λx.hcompi B [φ ↦ N(x)] M(x)
fill the square with the same x along i
N(x) N(x)
M(x)
B
i
filler
x x'
transpi (Πx:AB) φ M λx.transpi B[filleri(x)/x] φ M(filler0(x))
M(x') M(x)
filleri(x) :≡ transp-fill~i A φ x
back and forth
i
filler
fst(M) fst(N) fst(N) snd(N) snd(N) s n d ( M )
hcompi (Σx:AB) [φ ↦ N] M ⟨ hcompi A [φ ↦ fst(N)] fst(M) , compi B[filleri/x] [φ ↦ snd(N)] snd(M) ⟩ filleri :≡ hfilli A [φ ↦ fst(N)] fst(M)
needs compi because B(filler/x) depends on i
i
filler
fst(M)
transpi (Σx:AB) φ M ⟨ transpi A φ fst(M) , transpi B[filleri/x] φ snd(M) ⟩ filleri :≡ transp-filli A φ fst(M)
snd(M)
i
f i l l e r
transp-fill~i A φ M
M
A
hfilli A [φ ↦ N] M
i
filler
M N N
A
i
f i l l e r
transp-filli A φ M
M
A
compi A [φ ↦ N] M
i
filler
M N N
Ai
DERIVED OPERATORS
the unit natural numbers functions pairs paths the empty type disjoint sums the circle universes
Q N
hcompi (Pathj.A(M; N)) [φ ↦ Q] P
P
M P Q
≡ λj.hcompi A [φ ↦ Q@j, j=0 ↦ M, j=1 ↦ N] P@j
Pathj.A(M; N)
A
Q Q
N
transpi (Pathj.A(M; N)) φ P
P M P
≡ λj.compi A [φ ↦ P@j, j=0 ↦ M, j=1 ↦ N] P@j
A
Pathj.A(M; N)
the unit the empty type functions pairs paths disjoint sums natural numbers the circle universes negative types positive types
transpi ℕ φ M
M always works
M
hcompi ℕ [φ ↦ N] M
Otherwise, what should we do? If φ = true, this should reduce to N[1/i]
Freely generated inductive types now have irreducible hcomps
M N N
C
ℕ
elim(hcomp) = comp(elim) E(O) :≡ elimℕ[x.C](M; x.y.N; O) filleri :≡ hfilli ℕ [φ ↦ O] P E(hcompi ℕ [φ ↦ O] P) ≡ compi C[filleri/x] [φ ↦ E(O)] E(P)
transp can always be reduced*
*except for indexed inductive families
e.g., ⊥, ℕ, 2, A+B, the circle, etc.
- 1. Inductive types have formal hcomps
- 2. Elim commutes with formal hcomps
inl inr A+B A B
transp (A+B) φ inl(M) ≡ inl(transp A φ M) transp (A+B) φ inr(M) ≡ inr(transp B φ M)
inl(hcompi A [φ ↦ N] M) ≡ hcompi (A+B) [φ ↦ inl(N)] inl(M) inr(hcompi B [φ ↦ N] M) ≡ hcompi (A+B) [φ ↦ inr(N)] inr(M) A+B suc(hcompi ℕ [φ ↦ N] M) ≡ hcompi ℕ [φ ↦ suc(N)] suc(M) ℕ
Optional*
hcomp can commute with constructors
*Cubical Agda has these rules