第5章程序正确性证明new.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
不变式断言法实例2 对任一给定的自然数x,计算z=[ ],即计算x的平方根取整。 1+3+…(2n+1)=(n+1)2 y1=n; y3=2×y1+1; y2= (y1+1)2 输入断言: I(x):x0 输出断言: O(x,z):z2 ≤ x(z+1)2 循环不变式: P(x,y1,y2,y3): y12 ≤ x ∧ y2=(y1+1)2 ∧ y3 = 2y1+1 开始 (0,0,1)-(y1,y2,y3) y2+y3-y2 y 2≤ x (y1+1,y3+2)-(y1,y3) y1-z 结束 A I(x) B P(x,y1,y2,y3) D C O(x,z) F T · · · · 第三十页,共五十五页。 不变式断言法实例2 检验条件:I ∧ R = O 通路1:A-B I(x)= P(x,0,1,1) x0= 0 ≤ x ∧ 1=(0+1) 2 ∧ 1=2*0+1 通路2:B-D-B P(x,y1,y2,y3) ∧ y2≤x = p(x,y1+1,y2+y3+2,y3+2) y12≤x ∧ y2=(y1+1)2 ∧ y3 = 2y1+1 ∧ y2≤x = (y1+1) 2 ≤ x ∧ y2+y3+2=(y1+1+1) 2 ∧ y3+2=2(y1+1)+1 通路3:B-C P(x,y1,y2,y3) ∧ y2x =O(x,y1) y12 ≤ x ∧ y2=(y1+1)2 ∧y3 = 2y1+1∧ y2x = y12 ≤ x(y1+1)2 第三十一页,共五十五页。 不变式断言法实例2 检验条件2 y12 ≤ x ∧ y2=(y1+1)2 ∧ y3 = 2y1+1 ∧ y2 ≤ x = (y1+1) 2 ≤ x ∧ y2+y3+2=(y1+1+1) 2 ∧ y3+2=2(y1+1)+1 证明: x≥(y1+1)2 ——(y2 ≤ x , y2=(y1+1)2 ) y2+y3+2 = (y1+1)2 + 2y1 + 1+2 = (y1+1)2 +2 (y1+1)+1= (y1+1+1)2 y3+2=2y1+1+2=2(y1+1)+1 检验条件3 y12 ≤x ∧ y2=(y1+1)2 ∧y3 = 2y1+1 ∧ y2x = y12 ≤x(y1+1)2 证明: y12 ≤x xy2,y2=(y1+1)2 =x(y1+1)2 第三十二页,共五十五页。 作业 课本P174习题1、习题2。要求用不变式断言法证明。 第三十三页,共五十五页。 第5章 程序正确性证明 5.1程序正确性验证概述 5.2不变式断言法 5.3子目标断言法 5.4界函数法--计数器法 第三十四页,共五十五页。 5.3子目标断言法 子目标断言法与不变式断言法的主要区别是: 两种方法对循环所建立的断言不同。 不变式断言描述了程序变量y的中间值与初始值之间关系; 子目标断言法描述的是y的中间值与循环终止时的最终值yend之间的关系。 两种方法进行归纳的方向不同。 不变式断言沿着程序正常执行的方向进行归纳; 子目标断言法则沿着相反方向进行归纳。 第三十五页,共五十五页。 不变式断言法 输入断言: I(x,y):x0 =0 ∧ y0 =0 输出断言: O(x,y,z):z=gcd(x,y) 循环不变式断言: P(x,y):x=0 ∧ y=0 ∧ gcd(x,y) = gcd(x0, y0) 例:设x,y为非负整数,求x,y的最大公约数z的程序,即z=gcd(x,y)。 START Read(x,y) x0 y=x y:=y-x x y z:=y STOP T F T F I(x,y) a P(x,y) b c O(x,y,z) d e g · · · · · · 第三十六页,共五十五页。 子目标断言法(建立断言) 输入断言 I(x,y): x0 =0 ∧ y0 =0 ∧(x0≠0∨ y0≠0) 输出断言 O(x,y,z): z=gcd(x,y) 子目标断言 P(x,y,yend): x=0 ∧ y=0 ∧(x≠0∨ y≠0) = yend = gcd(x,y) START Read(x,y) x0 y=x y:=y-x x y z:=y STOP T F T F I(x,y) a P(x,y, yend) b c O(x,y,z) d e g · · · · · · 第三十七页,共五十五页。 子目标断

文档评论(0)

虾虾教育 + 关注
官方认证
文档贡献者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档