- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计方法学--第三章 程序正确性证明
第三章 程序正确性证明; 什么样的程序才是正确的?如何来保证程序是正确的?;关于程序正确性的认识;程序正确性证明发展历程;程序正确性理论;程序正确性理论;程序规约的基本分类;程序规约的实例(1/2);例2:求两个非负整数的最大公约数。
[in a,b :integer; out y:integer]
Q: {a ≥ 0 ∧ b ≥ 0}
S
R:{y = MAX(i: 1 ≤ i ≤min(a,b) ∧
(a mod i = 0) ∧ (b mod i = 0); i)}
;程序正确性定义(1/3);程序规约Q{S}R 是一个逻辑表达式,其取值为真或假,其中取值为真的含义是指:给定一段程序S,若程序开始执行之前Q为真,S的执行将终止,且终止时R为真,则称为 “程序S,关于前置断言Q和后置断言R是完全正确的”。
;部分正确:若对于每个使得Q(i)为真,并且程序S计算终止的输入信息i,R(i,S(i))都为真,则称程序S关于Q和R是部分正确的。
程序终止:若对于每个使得Q(i)为真的输入i,程序S的计算都终止,则称程序S关于Q是终止的。
完全正确:程序是部分正确,同时又是终止的。
;(1)证明部分正确性的方法
A. Floyd的不变式断言法
B. Manna的子目标断言法
C. Hoare的公理化方法
(2)终止性证明的方法
A. Floyd的良序集方法
B. Knuth的计数器方法
C.Manna等人的不动点方法
(3)完全正确性的方法
A. Hoare公理化方法的推广
B. Burstall的间发断言法
C. Dijkstra的弱谓词变换方法以及强验证方法;循环不变式断言;不变式断言法;不变式断言法实例1;不变式断言法实例1;不变式断言法实例1(建立断言);不变式断言法实例1(建立检验条件);不变式断言法实例1(证明检验条件);不变式断言法实例2;不变式断言法实例;不变式断言法实例;子目标断言法;不变式断言法;子目标断言法(建立断言);子目标断言法(建立检验条件);子目标断言法(证明检验条件);;程序部分正确但不终止实例;本课的内容;良序集方法证明程序终止性;良序集的概念(1/2);良序集的概念(2/2);采用良序集证明程序终止性思路;用良序集方法证明程序终止性步骤;良序集方法证明程序终止性实例;良序集方法证明程序终止性实例;良序集方法证明程序终止性实例;采用良序集证明程序终止性总结;计数器方法证明程序终止性;计数器方法证明程序终止性实例;计数器方法证明程序终止性实例;计数器方法证明程序终止性实例;另一种计数器方法证明程序终止性;另一种计数器方法证明程序终止性实例;采用计数器方法证明程序终止性难点;作业;
文档评论(0)