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
.