关于非确定性终止循环的推理


10

如果有的话,这是一个“音轨B”问题。简介:当我尝试为非确定性程序赋予语义时,我想到的第一件事就是无法证明仅以确定性方式终止的循环的语义。当然有人已经弄清楚了在这种情况下该怎么做,或者至少指出这很困难,但是我不知道如何去寻找它(因此有“引用请求”标签)。

背景

我想用非确定性来建模同时语言。我认为这是使用Smyth powerdomain为这种语言建模的一种显而易见的方式(或者至少是幼稚的方式),但是如果我错了,请纠正我。我们将使用该语言将命令的含义建模为一个函数,该函数的域是状态集S,其共域是集,其中是表示非终止的最小元素,而是状态的幂集。P(S)={}P(S)P(S)

我们将命令解释为从状态到非终止事件或到表示可能结果的状态集。是不确定的选择。σ{σ1,σ2,}PQ

  • skipσ={σ}
  • x:=Eσ={σ[(Eσ)/x]}
  • abortσ=
  • if E then P else Qσ=Pσ如果Eσ=true,否则为Qσ
  • PQσ=如果Pσ=Qσ=,否则PσQσ
  • P;Qσ=如果或对于某些,否则为Pσ=Qτ=τPστPσQτ

有一个有向的完整偏序,其中对于和任何如果和都是正确的集合,并且,并且我们可以扩展这对功能从到逐点:如果每,和是将每个状态映射到的函数。SSP(S)S1S2S1S2S1S2fSP(S)f1f2f1(σ)f2(σ)σf

循环的含义是是链,如果,则,否则,如果或对于某些,否则。(此定义假定我刚刚定义的是Scott连续的,但我认为将其放在一边是安全的。)while E do Pσff(f)f(f(f))f(g)(σ)={σ}E(σ)=falsePσ=g(τ)=τPστPσg(τ)f

考虑以下程序:

x:=0;
b:=true;
while b do
x:=x+2;
b:=falseb:=true

从直觉上讲,这是一个可以返回任何正偶数或不终止的循环,并且与我们使用最弱的自由先决条件可以证明的有关(可以证明是一个循环)不变的)。但是,由于循环具有不终止的能力(我们可以通过总是采用右侧分支的程序来完善非确定性的选择),因此该程序在任何初始状态下的含义都是。(非正式地减少:将值为false的任何状态映射到其自身以及值为任何状态的用于定义循环的的固定点。)n.x=2nbbf

这意味着我提出的幼稚语义与我期望能够推理程序的方式并不相符。我责怪我的语义,但是不解决它们。


4
我认为,通过使用作为程序含义的共同域,您实际上已经放弃了对程序中可能出现分歧的推理。天真的想法是使用,但是我不知道这是否会带来另一个问题。{}P(S)P(S{})
伊藤刚(Tsuyoshi Ito)

是的,您绝对正确,只要看一下,就已经很明显,甚至在进入示例之前,希望就已经消失了。你的建议发生在我为好,但我觉得你最终在这个例子中,同样的问题是,只要潜在的非终止是由模拟不是,如果我们选择后者,这会干扰我们以通常的方式将循环的意义赋予最小固定点的能力。{}P(S)S{}{}
罗布·西蒙斯

您是否看过动态逻辑?语义是根据状态与状态之间的关系给出的,您可以使用逻辑来推理部分正确性和全部正确性,也就是说,终止计算的属性,而所有计算都以给定属性终止。
戴夫·克拉克

在这种情况下,我还没有考虑过动态逻辑,但是我看到了它可能与之相关-当我回到匹兹堡时,我会看看Platzer和他的学生的想法。
罗布·西蒙斯

Answers:


10

在[dB80]中,Hitchcock和Park对递归的终止属性的分析被证明对应于基于所谓关系的Egli-Milner解释[Egl75,Plo76]的语义分析,该分析表达了不稳定的不确定性。如果该概念产生了至少一个导致期望结果的计算(即使存在非终止计算),则该概念表明关系的不确定关系是正确的。这似乎与您要执行的操作相对应。

接下来,将语句的含义表征为函数 将每个初始状态映射到一些可能包含非空状态集,使得在。通过将每个初始状态映射到各个结果的并集的函数来描述语句和之间的不确定性选择。因此,无论何时或˚F 小号 σ ˚F 小号˚F 小号= { } 小号1 小号2 σ ˚F 小号1σ ˚F 小号2σ š 1 š 2SfSσfSfS()={}S1S2σfS1(σ)fS2(σ)S1S2具有不确定结果产生不良结果的可能性,那么他们的不确定结果也是如此。作为最终状态的最终结果集,人们在此分析中获得了所谓的Egli-Milner状态幂集:

}PE--M(S)={ sS | s是有限且非空的,或包含}

为什么在此模型中不将无限子集视为最终状态的可能集合?在所有关系术语的基本构建块仅产生有限的,非空的可能最终状态集合的假设下,仅当可能进行无限计算时,才可能生成无限可能的最终状态集合。可以看出如下。从给定状态开始,以根 和状态为节点的树的形式,构造所有可能计算的集合。叶子的集合就是可以到达的最终最终状态的,除了σ 0 σ 0 σ 0Sσ0σ0σ0,在叶子中可能会丢失,但通过树中存在无限路径这一事实在最终状态集中表示出来。通过上述假设,由于只有有限的不确定性选择可用,因此该树是有限分支的。因此,在任何给定的有限深度处只有有限数量的叶子。因此,只有在存在无限计算的情况下(König引理[Kön32]的应用),才能生成无限数量的可能最终状态。

ë -中号小号P ë -中号小号(PE--M(S),E--M)是 定义为:对于,E--Ms,tPE--M(S)

sE--Mt=(ss{}t)(ss=t) .

在这里,可以将视为占位符,通过 插入更大的集可以代替生成更多状态。因此,是的最小元素。此外,位姿具有 链的lub。类似地,从 到的严格功能通过。而且,至少这种功能是ë -中号{ } P ë -中号小号È -中号P ë -中号小号È -中号ω 小号{ } P Ë --Mš ë -中号 λ σ { } ωE--M{}(PE--M(S),E--M)(PE--M(S),E--M)ωS{}PE--M(S)E--Mλσ.{}和此类功能的 omega-链的lub 也存在。ω

[dB80] JW de Bakker。程序正确性的数学理论。普伦蒂斯·霍尔(Prentice Hall),1980年。

[Egl75] H Egli。用于不确定性计算的数学模型。技术报告,苏黎世联邦理工学院,1975年。

[Kön32] DKönig。终结论与无限论 技术报告,莱比锡,1932年。

[Plo76] GD Plotkin。功率域构造。SIAM Journal on Computation,5(3):452-487,1976。

免责声明:这几乎是我曾经与人合着的书中的全部文字:

WP de Roever和K Engelhardt。数据提炼:面向模型的证明方法及其比较。剑桥大学出版社,1998年。


4
短语“这几乎是我曾经合着的书中的逐字记录”,应该加上“ Extra Awesomeness:”而不是“ Disclaimer:”:-D作为前缀。谢谢,这是非常有帮助的。
罗布·西蒙斯

看待不确定性(以及我想看待它的一种方式)的一种方式是,它是一种规格不足的形式-具有不确定性选择的程序由始终选择第一,总是选择第二的程序来完善。或(请参见McIver和Morgan在该特定领域的广泛工作)采用概率为.5的一种选择或另一种选择的程序。所以循环,非确定性不会终止由循环精制从未终止,也可以通过你的硬币翻转循环终止(以概率1)
罗布·西蒙斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.