UP | HOME

NOTE: Lambda Cube

First we have UTLC(untyped lambda calculus) to STLC(simply typed lambda calculus), by adding arrow type(\(\to\)): \(\lambda x:Nat.x\)

1 Lambda cube

Lambda cube starts from STLC.

1.1 STLC -> \(\lambda 2\)

Terms depend on Types: \(\lambda (a : *).\lambda (x:a).x\)

1.2 \(\lambda 2\) -> \(\lambda \omega\)

Types depend on Types: \(\lambda (a : *).a \to a\)

1.3 \(\lambda 2\) -> \(\lambda \Pi\) (\(\Pi\) type)

Types depend on Terms: \(\Pi (x : a).M\)

1.4 COC(calculus of construction)

Mix \(\Pi\) and \(\lambda\), type is term.

COC = \(\lambda 2\) + \(\lambda \omega\) + \(\lambda \Pi\)

1.5 CIC(calculus of inductive construction)

Introduce Inductive, e.g. =data Nat = zero | suc Nat=

CIC = COC + Inductive

Date: 2020-09-17 Thu 00:00

Author: Lîm Tsú-thuàn