Normalization for Cubical Type Theory
Syntactic open
(subterminal object) syn : E, j!1 = (1, 0 → α*1), Pr(T□) ≃ E/syn, syn* : E → E/syn, syn* : E/syn → E
Syntactic T□-model
T□-Mod(U○)
Family of term variables
var : Pr(A□)/α*tm, tm : Pr(T□)
Glued interval
I ≡ j*yT□(I), I : E, j*I = yT□(I). j*I = yA□(·.I).
Lemma 32
Y → U, j : U ↪○ X, i : U ↪● X,
Normalisation for Cubical Type Theory
Remark 35
α : A□ → T□, α! ⊣ α*, i : A ↪● G , E : Pr(A□), (α!E, E → α*α!E)
Construction 36
Γ : A□, ⦇Γ⦈
Construction 37
M' : T□ → E, α : A□ → T□, ⟦−⟧ : A□ → E, M'(α(Γ)), j*⟦Γ⟧ = yT□(α(Γ)) = α!yA□(Γ).
Construction 38
X : E, [⟦−⟧, X] → α*j*X : Pr(A□), M'(α(Γ)) → X : E,
Construction 39
⦇−⦈ → ⟦−⟧ : Hom(A□, E)
Normalisation function
M' : T□ → E, M.tp → (M'.tp)M'. atomM'.tp*, nftp.
Correctness of normalisation
Completeness, Soundness
Injectivity of type constructors
E = Sh(G□), ∀A, A', B, B'. M.Π(A, B) = M.Π(A', B') ⇒ ●((A, B) = (A', B'))
Idempotence of normalisation
nbe(A) = A, nbe(a) = a