λ learn

Gramática

La gramática del cálculo lambda con naturales extiende la de booleanos de la siguiente manera:

M:=zerosucc(M)pred(M)isZero(M)\begin{aligned} M &:= \ldots \\ &\mid \zero \\ &\mid \succ{M} \\ &\mid \pred{M} \\ &\mid \isZero{M} \end{aligned}

Los términos zero\zero, succ(M)\succ{M} son usados para representar los números naturales, mientras que pred(M)\pred{M} y isZero(M)\isZero{M} son operaciones sobre ellos.

Para ahorrarnos escribir succ(succ(succ(zero)))\succ{\succ{\succ{\zero}}} para representar el número 3, vamos a usar la notación 3\num{3}, y en general n\num{n} para representar el número natural nn. Pero no es un nuevo término, sino una abreviación de succ(succ(zero))\succ{\ldots\succ{\zero}} con nn ocurrencias de succ\mathsf{succ}.