DennyQi's Log

Church Numerals

图灵证明了图灵机可计算的函数等价于由λ\lambda-calculus定义的可计算函数。下面我们就来看如何由λ\lambda-calculus定义可计算函数。

Church Numerals(丘奇数)

Church Numerals的定义

首先,我们需要用λ\lambda-term表示自然数。我们可以用一个combinator表示一个自然数,对于自然数nn,其对应的combinator会取变量f,xf,x,然后把ffapply到xxnn次。这样定义的自然数称为Church Numerals。

具体地,用λfx.(x)\lambda fx.(x)表示自然数0,记为c0c_0;用λfx.(f(x))\lambda fx.(f(x))表示自然数11,记为c1c_1;用λfx.(f(f(x)))\lambda fx.(f(f(x)))表示自然数22,记为c2c_2。为了书写方便,把f(f(x))f(f(x))写作f2(x)f^2(x),令xf0(x),fn+1(x)=f(fn(x))x\equiv f^0(x),f^{n+1}(x)=f(f^n(x))。这样就可以定义:nN\forall n\in \Ncnλfx.(fn(x))c_n\equiv \lambda fx.(f^n(x))

Church Numerals的运算

接下来,可以用combinator定义丘奇数的加法、乘法与幂运算。

A+λxypq.xp(ypq)\textsf{A}_+\equiv \lambda xypq.xp(ypq)