指称语义,证明定点迭代导致最小的固定点

时间:2015-10-01 12:42:04

标签: haskell denotational-semantics

我正在研究denotational semantics上的Haskell wikibook部分,我有点坚持这个练习:

  

证明通过定点迭代开始获得的固定点   也是最少的一个,它比任何其他都小   固定点。 (提示:是我们的cpo中最少的元素,g是   单调)。

以下陈述定义了导致练习的概念的核心(我认为):

其中f是阶乘函数,并且显示为g的固定点,假设g是连续的。

我认为我基本上理解了g(f)= f的部分,但我真的不知道该练习是做什么的。根据我的理解,阶乘函数f是最不固定的点(至少基于运算符)但我对它({直观地)将函数与{{3}进行比较意味着什么并不清楚? ,更不用说除了示例中显示的最小固定点之外我将如何找到固定点。

我理解比其他所有东西都少,而且我理解由于g(x)是单调的,如果我将它应用于两个东西,其中一个小于另一个,结果仍然会服从这个顺序。

我想我会以一些函数f'和假设开始证明。如果是这种情况,通过g的单调性质,我可以显示。如果我可以证明必须g(f')= g(f)或f'= f我认为证明是完整的但我不知道如何表明。

1 个答案:

答案 0 :(得分:4)

x为序列bot, g(bot), g(g(bot)), ...的上/下限。设yg(单调)的任意固定点。我们想要证明x <= y

通过对迭代次数的归纳,很容易看出序列中的每个元素都是<= y。实际上,它对于bot来说很简单,如果z<= y的单调性,我们会得到g(z) <= g(y) = y

因此,y是序列的上限。但x最少,x <= y。 QED。