正如Yuval指出的那样,不仅有一个定点运算符。有很多。换句话说,定点定理的方程式没有一个答案。因此,您不能从它们派生运算符。
这就像问人们如何得出作为的解。他们不!该方程式没有唯一的解决方案。(x,y)=(0,0)x=y
万一您想知道的是第一个定点定理是如何发现的。让我说,我也想知道当我第一次看到它们时是如何提出定点/递归定理的。看来如此巧妙。特别是可计算性理论形式。与尤瓦尔所说的不同,人们不是在玩耍之前才发现一些东西。这是我发现的:
据我所知,该定理最初是由SC Kleene引起的。Kleene通过挽救Church原始lambda演算不一致的证据,提出了原始不动点定理。教会最初的lambda演算遭受了Russel类型的悖论。改进的λ演算避免了该问题。Kleene研究了不一致的证明,以查看修改后的lambda演算是否会遇到类似的问题,并将不一致的证明转化为修改过的lambda演算的有用定理。通过他关于lambada微积分与其他计算模型(图灵机,递归函数等)的等效性工作,他将其转移到其他计算模型。
如何得出您可能会问的运算符?这是我要牢记的。定点定理是关于删除自引用的。
每个人都知道说谎者悖论:
我是巢穴。
或者以更语言的形式:
这句话是错误的。
现在大多数人认为这句话的问题在于自我参照。它不是!可以消除自我指称(问题在于真理,一种语言通常无法谈论自己句子的真理,请参见塔斯基关于真理定理的不可定义性)。删除自引用的形式如下:
如果您两次编写以下引号,第二次在引号内,则结果为假:“如果您两次编写以下引号,第二次在引号内,则结果为假:”
没有自我参照,我们有关于如何构建句子然后对其进行处理的说明。并且所构造的句子等于指令。请注意,在 -calculus中,我们不需要引号,因为数据和指令之间没有区别。λ
现在,如果我们对此进行分析,则有,其中是构造并对其执行操作的指令。MMMxxx
Mx=f(xx)
所以是,我们有Mλx.f(xx)
MM=(λx.f(xx))(λx.f(xx))
这是针对固定。如果要使其成为运算符,我们只需添加,我们得到:fλfY
Y=λf.(MM)=λf.((λx.f(xx))(λx.f(xx)))
因此,我只是牢记没有自我参照的悖论,这有助于我理解含义。Y