Source Language (CC) | Target Language (DCC) | ||||
| Context | Label Context | ||||
| Type Context | |||||
| Term | Term | ||||
| Type (Output) |
Type (Output) |
||||
| Examples | ||||
| Identity | Identity application | Non-dependent composition | Fully dependent composition | Eta-equivalence |
| Free-variables in types | New function in type | Dependent pair | ||
_), and quotation marks('), and must begin with a letter. U0, U1, etc.
Pi x:A.M. Write A -> B for non-dependent types, which are interpreted as Pi _:A.B.
\x:A.M. Applications in CC are M N; applications in DCC are M @ N.
x1:A1, x2:A2, ... , xn:An.
L({x1:A1, ... , xn:An}, x:A --> M:B).
Entries in the label context are separated with commas.
λ, Π, → for \, Pi, -> .
let x=M in N is supported for illustration purpose. N[M/x],
so, it might accept nonsense programs like let x=nonsense in U0.