教会数字中 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 * x
对N
中的任意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 教会的数字,所以对我来说仍然定义不明确。
问题是
“为什么定义 EXP(m, n) := λmn. (n m)
通常被 m^n
接受,即使
它的输出可以是教会数字输入的非教会数字吗?”
“你知道 EXP
的任何细微修正,以便该功能适用于所有教堂的数字输入吗?”
“对我对(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
.
关于本科计算机科学的话题。
在回顾理论时,我遇到了一个关于 (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 * x
对N
中的任意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 教会的数字,所以对我来说仍然定义不明确。
问题是
“为什么定义
EXP(m, n) := λmn. (n m)
通常被m^n
接受,即使 它的输出可以是教会数字输入的非教会数字吗?”“你知道
EXP
的任何细微修正,以便该功能适用于所有教堂的数字输入吗?”“对我对
(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
.