教会数字中 m 的 0 次方

m to the power of 0 in Church’s Numerals

关于本科计算机科学的话题。
在回顾理论时,我遇到了一个关于 (0 m) 在 lambda 演算中对教会数字求幂的困扰。
据我所知,(0 m) when reduced results in λx. x,这不是预期的1 (= m^0),甚至不在教会的数字范围内。

我采用教会编码的lambda演算中的自然数n,通常如下

n := λfx. (f^n x) = (f ... (f x))

很多文献都这么说

EXP(m, n) := λmn. (n m)

returns m^n for given m and n of church's numerals,我知道这个函数在大多数情况下都能正确响应。 但是当 n = 0 since

时就不是这样了

(0 m) = ((λfx. x) m) → λx. x

在数学中,1是自然数的单位元,被视为乘法群,即x * 1 = 1 * xN中的任意x。因此,如果我以

的形式设置 EXP 函数

EXP’(m, n) := λmn. (n (MUL m) 1)

对于 MUL(m, n) = m * n,这似乎工作正常,恰逢 m^0 在数学中通常被定义为 1 这一事实。这在超操作的意义上也似乎很简单。

过度操作:https://en.m.wikipedia.org/wiki/Hyperoperation

我预计会有一些批评,比如 m^0 在数学上不一定是 1,死板的数学家会说这完全取决于定义。但是,采用前一种风格 EXP(m, n) 有任何逻辑上的支持吗?当 n = 0 时,它不是 return 教会的数字,所以对我来说仍然定义不明确。

问题是

  1. “为什么定义 EXP(m, n) := λmn. (n m) 通常被 m^n 接受,即使 它的输出可以是教会数字输入的非教会数字吗?”

  2. “你知道 EXP 的任何细微修正,以便该功能适用​​于所有教堂的数字输入吗?”

  3. “对我对(0 m)的批评有任何问题或误解。”

另外,(0 m)的结果是λx. x,是函数组合的恒等元,而不是1,有逻辑背景吗?是巧合还是我想得太认真了?

欢迎任何想法。

如有必要,我想遵循与教会数字相关的维基百科代数定义。

教会的编码:https://en.m.wikipedia.org/wiki/Church_encoding

谢谢。

一个简单的误解:你说“λx. x,不是1”,但λx. x确实是教会数字1。您可能知道教堂数字 1λfx. f x,但简单的 eta 缩减和 alpha 转换表明这等同于 λx. x.