你如何评价教会数字的取幂?

时间:2013-12-29 21:41:08

标签: lambda-calculus

对教会数字的指数定义为:

expt ≡ λmnsz.nmsz

但是在权力不是0或1的情况下,我在评估它时遇到了一些麻烦。考虑这个例子:

expt C3 C2 ≡ [λmnsz.nmsz](λsz.s^3 z) (λsz.s^2 z)

其中

λsz.s^2 z = λsz.s(sz)

Cn代表Church Numeral n

代替m和n,我得到:

λsz. (λsz.s^2 z)(λsz. s^3 z)sz
λsz. (λsz.s^2 z)(s^3 z)
λsz. (s^3)^2 z

并且事实是

λsz. (s^m)^n z = s^(m*n) z

最后一句话缩减为

C6 ≡ λsz. s^6 z 

expt C3 C2应评估为C9。

那我哪里出错了?

1 个答案:

答案 0 :(得分:1)

这是错误的:

λsz. (λsz.s^2 z)(λsz. s^3 z)sz
λsz. (λsz.s^2 z)(s^3 z)
λsz. (s^3)^2 z

你不能将(λsz.s^ 3 z)应用于sz。你必须将(λsz.s^ 2 z)应用于(λsz.s^ 3 z),因为评估是从左到右。

λsz. (λsz.s^2 z) (λsz. s^3 z) sz
λsz. (λz.(λsz. s^3 z)^2 z) sz
λsz. (λz.(λsz. s^3 z)((λsz. s^3 z) z)) sz
λsz. (λz.(λsx. s^3 x)((λsy. s^3 y) z)) sz
λsz. (λz.(λsx. s^3 x) (λy. z^3 y)) sz
λsz. (λz.(λx. (λy. z^3 y)^3 x)) sz
λsz. (λz.(λx. (λy. z^3 y)((λy. z^3 y) ((λy. z^3 y) x)))) sz
λsz. (λz.(λx. (λy. z^3 y)((λy. z^3 y) (z^3 x)))) sz
λsz. (λz.(λx. (λy. z^3 y)(z^3 (z^3 x)))) sz
λsz. (λz.(λx. (λy. z^3 y)(z^6 x))) sz
λsz. (λz.(λx. (z^3 (z^6 x)))) sz
λsz. (λz.(λx. (z^9 x))) sz
λsz. (λx. (s^9 x)) z
λsz. (s^9 z)