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

Uniqueness of normalisation

Normalisation algorithm

Decidability of equality