在Segerberg中提出了基于公理模式(A1),(A2),(A3),(A4)和(A5)的PDL的腋化[1977]。 从上面的定义即时就是ψ是相对于⊨的声音,即,
对于所有公式A,如果⊢a,那么⊨a。
证明通过诱导在⊢的扣除长度上进行。 关于⊨的完整性问题,即,即,
对于所有公式A,如果⊨a,那么⊢a,
由几个逻辑学家追求。 在Segerberg [1977]中提出的推理线是第一次证明⊢的完整性的尝试。 很快,Parikh也想出了一个证据。 1978年初Segerberg在他的论点中发现了一个缺陷(最终修复),Parikh发表了什么可以被认为是Parikh在Parikh的完整性的第一个证明[1978]。 自此发布以来⊢的不同凭证已发布。 Kozen和Parikh [1981]。 更多细节可以在Pratt [2017]中找到。
还追捧了PDL的不同替代证明理论。 甚至早期,特别是在普拉特[1978]中。 然后,我们还提到了Nishimura [1979]和Vakarelov相关理论的完整性[1983]。
用于PDL的推动谓词的替代制定用于PDL的无限性推断规则,例如在Goldblatt [1992A]中。 (无限制的推理规则需要无限数量的房屋。)让⊢'是以命题动态逻辑的语言对应于包含Axiom Schemas(A1),(A2)的每个实例的最小常规模态逻辑的语言中的推动性谓词。A3)和(A4)并在以下无限制的推理规则下关闭:
(我)
从{[β] [αn] a:n≥0}推断[β] [α*] a
可以证明,⊢'既是声音又完整,尊重⊨,即,
对于所有公式A,⊢'aiff。
换句话说,就生成所有有效公式而言,证明系统⊢和⊢'是等效的。
2.3可辨赖性和复杂性
复杂性理论的目的是在时间或空间的资源方面建立属性A SAT A的可计算。 逻辑L的复杂性通常被确定为决定其公式的可靠性,定义为:
(l-坐)
给定L的公式A,是一个满意的吗?
在本节中,我们调查了以下决策问题的复杂性:
(页面描述语言-坐)
给定PDL的公式A,是一个满意的吗?
PDL的完全公理化是该组公式的有效PDL公式或换句话说的递归定义,该组公式的否定是不可满意的。 因此,关于问题(PDL-SAT),我们有一个子程序,如果PDL公式A不可满足,则会回答“否”。 子程序(SP1)包括枚举所有公式⊢ - Deftumible,从公理开始,并在推理规则的帮助下推断其他定理。 给予足够的时间,如果配方是⊢ - 推动,子程序将最终发现它。 因此,如果A不可满足,则(SP1)必须最终找到¬A,并且在它时答案“否”。
但是,如果公式A是满足的,那么(SP1)将永远不会找到。 它会永远运行,一个人无法随时肯定。 但有一种不确定性的方式。 如果PDL公式是满足的,我们也可以考虑第二个子过程,如果PDL公式是满足的,则会回答“是”。 实际上,PDL最早的结果之一是PDL具有有限模型属性的证据,即,
对于所有公式A,如果SAT A,那么存在有限型号,使得M SAT A.
有限型号属性为子程序(SP2)提供了基础,该子程序(SP2)由PDL的有限模型枚举并测试其中一个是否满足公式。 (对于所有公式A和所有有限型号M,如果通过应用V(a)的定义,则易于测试。 对称地到第一个子过程(SP1),如果公式A不可满足,那么(SP2)将永远不会找到满足它的型号,它将永远运行,并且可以随时肯定。
现在,将(SP1)和(SP2)组合在一起我们具有决定PDL公式A是否满足的方法。 它足以并行运行它们:如果a是满足的那么(sp2)最终将回答“是”,如果a是不可取的那么(sp1)最终会回答“否”。 程序(SP1)或(SP2)提供答案时停止。
如果获得的程序足以得出结论,问题(PDL-SAT)是可判定的,则实际上是非常效率的。 结果 - 由于费克尔和夫人[1979]和kozen和parikh [1981] - 比有限模型属性强,即小型物业:
对于所有公式A,如果SAT A,那么存在一个有限的尺寸指数M坐姿A.
这意味着我们现在可以知道何时停止寻找满足过程中公式的模型(SP2)。 因此,我们可以使用(SP2)来测试配方是否是满足的,但一旦我们用尽了所有小型型号,我们可以得出结论,公式是不可取的。 这产生了一种过程中非确定性地运行的过程(内XPTIME):猜测大多数单独指数的大小模型,并检查它是否满足公式。 但关键导致PDL的复杂性理论来自Fischer和Ladner [1979]和Pratt [1980A]。 观察PDL公式可以有效地描述线性空间有界交替图测机器的计算,Fischer和Lader [1979]首先建立了(PDL-SAT)的指数时间的下限。 通过PRATT [1980A]获得了(PDL-SAT)的EXPTIME上限,其将语义表的方法改编为PDL。 因此,(PDL-SAT)是EXPTIME的。 (算法在实践中更有效率,尽管在最坏的情况下仍然在最坏情况下在最坏的情况下运行,但在De GiacoComo和Massacci [2000]中提出。)
3.结构化编程和程序的正确性
从历史上看,计划的逻辑源于20世纪60年代后期的计算机科学家的工作,该专家对对编程语言分配意义并找到关于这些程序的证据的严格标准。 例如,这种证明可以是关于程序关于预期行为的正确性,或者关于程序的终止。 精英纸是Floyd [1967],它使用流程图呈现了结构化计算机程序的特性分析。 yanov [1959]或Engeler(1967])的一些早期工作已经进行了先进的和学习的正式语言,可以表达程序连接的性质。 HOARE的形式主义[1969]是PDL的出现中的里程碑。 建议作为弗洛伊德流程图的严谨公理解释。 我们经常在提到这种形式主义时谈论Hoare Logic,或Phary-Hoare逻辑,或Hoare微积分。 HOARE COMPULAS涉及陈述的真实性(“HOARA三元组”),例如建立前提a,程序α和条件后B之间的连接之间的连接。每当持有作为一个在成功执行α后,α的执行前提是α,然后是在成功执行α之后的状态。
几十年前,这是真的,仍然是这样的:验证程序比在合理的各种输入上测试它更频繁。 当输入不产生预期输出时,“错误”是固定的。 如果最终用于每个测试的输入,我们获得了预期的输出,则一个合理的信念,即该程序没有错误。 但是,这是一种耗时的验证方法,它会为可能失败的未经测试的输入离开位置。 在程序实现并进入使用后找到这些错误更昂贵的资源。 与正式方法的程序正确性的推理对于关键系统至关重要,因为它提供了详尽证明程序没有错误的方法。
3.1 ChaRe微积分
为了说明Hoare Calculus中规则捕获的计划的原则,足以咨询其中一些。 (n.b
{一个}α1{b} {b}α2{c}
{一个}α1;α2{c}
(组成规则)
组合规则捕获了方案的基本顺序组成。 作为场所,我们对两个程序α1和α2的部分正确性有两个假设。 第一假设是当在满足A的状态下执行α1时,当它停止时,它将在满足B的状态下完成。 第二假设是当在满足B的状态下执行α2时,当它停止时,它将在满足C的状态下完成。 该规则的结论是关于程序α1的部分正确性;α2(即,α1顺序地与α2顺序组成),其从两个假设中遵循。 即,我们可以得出结论,如果α1;α2在满足a的状态下执行,那么它在满足C的状态下完成,每当停止时。
迭代规则是一个重要的规则,因为它捕获了程序重复执行某些部分代码的基本能力,直到某个条件停止保持。
{a∧b}α{一个}
{a}虽然b doα{¬bəa}
(迭代规则)
最后,两项后果规则是基本的,提供正式的基础,以便直观地明确涉及较弱的后期条件和更强的先决条件。
{一个}α{b} b→c
{一个}α{c}
(后果的规则1)
c→一个{一个}α{b}
{c}α{b}
(后果2)
从HOARE所示的形式主义[1969],我们遗漏了其AXIOM模式,因为它需要一阶语言。 最后,在随后的HOARE逻辑的工作中,也经常添加更多规则。 请参阅APT [1979],以便早期概述。
3.2 Hoare Calculus和PDL
动态逻辑来自普拉特的诠释,在模态逻辑的形式主义中,对角度的头衔和Hoare微积分。 通过模态[α],我们可以正式表达,通过执行程序α可以获得的所有状态满足公式A.这是通过写入[α] a来完成的。 因此,HOARE三{A}α{B}简单地被PDL公式捕获
一个→[α] b。
此外,通过定义缩写,可以在PDL中轻松引入重要的编程构造:
如果A然后αβ:=((a?;α)∪(¬a?;β))
虽然doα:=((a?;α)*;¬a?)
重复α直到a:=(α;((¬a;α)*; a?a))
中止:= 0?
跳过:= 1?
因此,似乎使用PDL,我们配备精良,以逻辑证明结构化程序的正确性。 除了PDL和HOARE微积分之间的这种相当挥手的联系,也许尚不清楚它们是如何正式联系的。 PDL实际上是在PDL的公理系统中可以证明HOARE微积分的所有规则的概念概括。 (严格地,Hoare Calculus包含需要大阶动态逻辑的扩展语言的公理。)这是非常显着的,因此我们将展示如何派生它们。
证明通过假设规则的房屋来开始。 然后通过使用这些假设,公理和PDL规则,而不是其他的,目标是确定规则逻辑上的结论。 因此,对于组合的规则,我们首先假设其PDL制剂中的→[α1] b,以及通过假设{b}α2{c},即b→[α2] c。 目的是证明{a}α1;α2{c}。 精确地,我们希望从一组公式{A→[α1] B,B→[α2] C}中建立→[α1;α2] c是⊢掉 - 推动。
1。A→[α1] b。假设{a}α1{b}
2。b→[α2] c。假设{b}α2{c}
3。[α1] B→[α1] [α2] C从2使用[α1]的单调
4。A→[α1] [α2] c。从1和3使用命题推理
5。[α1;α2] C 4 [α1] [α2] C Axiom Schema(A1)
6。A→[α1;α2] c。从4和5使用命题推理
- {一个}α1;α2{c}
迭代规则的证明稍微涉及。
1。a∧b→[α] a。假设{a∧b}α{a}
2。a→(b→[α] a)从1个使用命题推理
3。[B?] [α] A1(B→[α] A)Axiom Schema(A4)
4。a→[b?] [α] a从2和3使用命题推理
5。[b?;α]a∈[b?] [α] a Axiom Schema(A1)
6。a→[b?;α] a。从4和5使用命题推理
7。a→[(b?;α)*] a从6使用(i)
8。A→(¬b→(¬bəa))命题是重言
9。A→[(b?;α)*](¬b→(¬bəa))从7和8使用[(b?;α)*]和命题推理
10。[¬b?](¬bəa)↔(¬b→(¬bəa))Axiom Schema(A4)
11. A→[(b?;α)*] [¬b吗?](¬bəa)从9和10使用[(b?α)*]和命题推理
12. [(b?;α)*;¬b?](¬bəa)↔[(b?α)*] [¬b_](¬bəa)Axiom Schema(A1)
13。A→[(b?α)*;¬b?](¬bəa)从12个使用命题推理
- {a}虽然b doα{¬bəa}
在PDL的背景下,两项后果规则实际上是组合规则的特殊情况。 为了获得第一规则,用跳过用α和α2替换α1。 为了获得第二条规则,用kip和α2用α替代α1。 应用Axiom Schema(A4)就足够了,并备注[α;跳过] A和[跳过;α] A1 [α] A也是所有A和所有α的尺寸。
3.3总正确性
通过Hoare自己的录取[1979],他的原始微积分仅仅是一个起点,遭受了相当的限制。 特别是,它只允许一个人对部分正确性的推理。 也就是说,陈述{a}α{b}的真实性仅确保在满足a将以满足b的状态结束的状态下的α的所有执行都在满足b的状态下,或者不会停止。 也就是说,部分正确的程序可能具有非终止执行。 (事实上,没有终止执行的程序将始终是部分正确的。这是例如程序的例子,而1确实跳过。公式A→[虽然1 DO SKIP] B用于所有公式A和B.)计算为A计算不提供基础证明程序终止。 可以修改它以便考虑计划的总正确性:部分正确性加上终止。 通过修改迭代规则来实现。 我们在此处不提供它,并将感兴趣的读者推荐[1981]。
让我们首先观察到确定性程序,人们可以通过这种公式捕获总正确性
一个→⟨α⟩b。
表达式⟨α⟩b意味着存在α的α,其终止于满足B的状态。此外,如果α是确定性的,则这种可能的终止执行是α的独特执行。 因此,如果首先设法证明程序是确定性的,则该技巧很好地效果足以证明其总正确性。
在PDL的领域中存在总正确性问题的一般解决方案。 但我们需要稍微扩展一下。 Pratt已经在PRATT [1980B]中,PDL不可衷于捕捉程序的无限循环。 在反应中,通过StreetT引入了具有重复(RPDL)的PDL [1982]。 它包含所有程序α,所以Δα站在语义上的新命题:
v(Δα)= {x:状态存在无限序列z0,z1,...... z0 = x和所有n≥0,znr(α)zn + 1}。
Streett [1982]猜测RPDL可以通过准确地添加到以下Axiom Schemas的PDL的证明系统来公理化RPDL。
(a6的)
δα→⟨α⟩δα(a7)
[α*](一个→⟨α⟩a)→(一个→δα)
Sakalauskaite和Valev [1990]提供了猜想的证明。 (种组合PDL的变体中的猜测版本也被证明是在Gargov和Passy [1988]中。)
很容易看出,在上面提出的Hoare Calculus中,非终止只能来自迭代的规则。 类似地,不终止PDL程序只能来自使用无界迭代。 表达式Δα表示α*可以发散,这只是我们所需要的那种概念。 我们现在可以感应地定义谓词,使得对于程序α,当α可以进入非终止计算时,公式∞(α)将是真的。
∞(π):= 0其中π∈π0
∞(一个?):= 0
∞(ανβ):=∞(α)∨∞(β)
∞(α,β):=∞(α)∨⟨α⟩∞(β)
∞(α*):=δα∨⟨α*⟩∞(α)
最后,程序的总正确性可以通过这种形式的公式表达
一个→(¬∞(α)∧[α] b),
这意味着字面意思是,如果是这种情况,那么程序α无法永远运行,并且每个成功执行α都将以满足B的状态结束。
一些变体
结果关于通过延长或限制其语法获得的多种PDL变体的表达,可解除性,复杂性,公理化和完整性的比较力,构成了丰富文学的主题。 我们只能说这么多,我们将在任何其他变种中解决这些变体,留下了动态逻辑中其他重要工作的大块。
4.1 PDL没有测试
Axiom图谱[aα]b↔(a→b)似乎表明,对于每个公式c,存在等效的无试验式c'-i.e.,存在无试验式c',使得⊨c↔c'。 观察到这种断言是不真实的。 让PDL0成为PDL的限制,以无测试常规程序,即,不包含测试的程序。 Berman和Paterson [1981]考虑了PDL公式⟨(p?;π)*;¬p?;π; p?⟩1,这是
⟨while当时p doπ⟩⟨π⟩p,
数学联邦政治世界观提示您:看后求收藏(笔尖小说网http://www.bjxsw.cc),接着再看更方便。