




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五课 程序设计方法学根本实际 构造化程序的正确性证明n课件已上载至ftp10/程序设计方法学蔡铭本课的内容n1.反复递归引理n2.正确性定理n3.构造化程序正确性证明的代数方法n4.循环不变式产生的方法构造化程序正确性证明思绪n任何构造化程序都可以用序列、条件和循环3种构造表示,其中循环的正确性最为复杂,假设可以用序列和条件构造来表示循环,那么可以使正确性证明得以简化。反复递归引理1/5n 根本概念:基于程序函数的程序正确性概念。 n 假设知一个程序P和一个预期函数F,假设有n f=Pn 那么称程序P正确地实现了函数f,或说程序P是正确的。反复递归引理2/5n反复递归引理
2、内容n引理1 while-do的正确性定理n引理2 do-until的正确性定理n引理3 do-while-do的正确性定理反复递归引理引理13/5n引理1 知预期函数f和循环程序Pn while p do g n 那么 f=P的充要条件是:对一切XDf, n 程序P终止,且 f=if p then g;f反复递归引理引理1 4/5证明:必要性: f= P=while p do g if p then g;f p=while p do g=if p then g; while p do g =if p then g;f 充分性: if p then g;f while p do g if p
3、then g;f =if p then g;if p then g;f = if p then g;if p then g;(if p then g) = if p then g;if p then g;I = while p do g 反复递归引理引理2/3 5/5引理2 知函数f和循环程序P:do g until p ,那么 f=P的充要条件是:程序P终止,且 f=g;if p then f 引理3 知函数f和循环程序P:do1 g while p do2 h ,那么 f=P的充要条件是:程序P终止,且 f=g;if p then h;f 反复递归引理通知我们,循环程序的验证可以经过将循环
4、化为递归的方法,转化为终止性和由选择以及序列组成的无循环程序进展验证! 正确性定理1/2知预期函数f和根本程序P,那么f=P的充要条件是: XDf,程序P终止,且对于不同的根本程序,函数f分别满足以下关系情形a:对于序列,p=g;h,有f=(x,y)|y=h*g(x)情形b:对于if-then程序,if p then g fi,有 f=(x,y)|p(x)y=g(x) | p(x) y=x情形c:对于if-then-else,if p then g else h fi,有 f=(x,y)|p(x) y=g(x)|p(x) y=h(x)情形d:对while-do程序,while p do g o
5、d,有 f=(x,y)|p(x) y=f*g(x)|p(x) y=x情形e:对于do-until程序,do g until p od,有 f=(x,y)|p*g(x) y=g(x)|p*g(x)-y=f*g(x)情形f:对于do-while-do程序,do1 g while p do2 h od,有 f=(x,y)|p*g(x) y=g(x)|p*g(x)-y=g(x)正确性定理-证明2/2情形a,b,c由程序函数直接可得情形d,由下式可得根据引理1: 对while-do程序,while p do g ,有 while p do = if p then g;f = (x,y)|p(x) y=f
6、*g(x)|p(x) y=x = f 情形e,f由引理2,3可证构造化程序正确性证明的代数方法n给定一个程序P的预期程序函数f,假设XDf,程序P是终止的,且经过正确性定理求解程序P的程序函数f,假设与预期函数f相等,那么得证。n证明步骤:n 1:程序P是终止的;n 2:f和程序P的定义域一样; n 3:经过正确性定理求解程序P的程序函数f,与预期函数f相等。n对于相对简单直观的程序,可以直接运用代数方法计算程序函数。n对于复杂的序列和条件程序,循环程序的证明,可以采取跟踪表方法求解程序函数。代数方法跟踪表1.知程序P:x:=x+y;y:=x-y;x:=x-y;求它的程序函数 假设变量x,y的
7、初值是x0,y0,执行第一个赋值语句后变量值为x1,y1,那么可以建立赋值表如下:语句xy1x:=x+yx1=x0+y0y1=y02y:=x-yx2=x1y2=x1-y13x:=x-yx3=x2-y2y3=y2分析跟踪表可知:X3=x2-y2=x1-(x1-y1)=y1=y0 Y3=y2=x1=y1=x0+y0-y0=x0经过跟踪表法,可知程序P的程序函数为(x,y),(y,x)代数方法例子跟踪表例:知预期函数f是x,y,a是整数,且x0 (x,y,a),(0,a*x+y,a) 程序P如下,其中x 0: while x0 do x,y=x-1,y+a 证明程序P是正确的,即f=P 证明1:程序
8、是终止的 证明2:定义域一样 证明3:f=(x,y)|p(x)-y=f*g(x) | p(x)-y=x,其中 p(x)=(x0),p(x)=(x=0) 利用f*g(x)的跟踪表证明3代数方法例子n于是有:n x2=0 y2=a0*(x0-1)+y0+a0=a0*x0+y0n即当x0时 x,y,a :=0,a*x+y,an 当x=0时 x,y,a := 0,y,a = 0,a*0+y,an因此可知,f (x,y,a)(0,a*x+y,a),与预期函数相等,因此得证。语句xyx,y:=x-1,y+ax1=x0-1y1=y0+a0 x,y,a:=0,a*x+y,ax2=0y2:=a0*x1+y1循环
9、不变式产生的方法 对于程序部分正确性证明的不变式断言法,这一方法的关键是建立一个正确的不变式断言,对普通程序来说,不变式断言的建立主要依托程序员对程序的了解,尚无系统的方法。 但对构造化程序来说,假设知它的程序函数,那么可以根据不变式形状定理,来确定它的一个循环不变式。循环不变式产生的方法不变式形状定理:不变式形状定理:假设假设f=while p(x) do g(x) ,x0是初始值,那么是初始值,那么 循环不变式循环不变式q(x)为:为: f(x) = f(x0)证明:证明:1.在第一次进入循环时,在第一次进入循环时, f(x0) = f(x0),因此,因此q(x)成成立。立。2.试证假设在
10、每一次进入循环前试证假设在每一次进入循环前q(x) 成立,即成立,即f(x0)=f(x),那么执行循环后,那么执行循环后q(x)也成立,即证明也成立,即证明 p(x) q(x) = q(g(x)=(f(g(x)=f(x0)由由p(x)为真,以及正确性定理为真,以及正确性定理 f=(x,y)|p(x) y=f*g(x)|p(x) y=x可可知知 即即 f(x0)=f(x)y=f*g(x)=f(g(x)循环不变式产生的方法同理可知如下定理:2 假设 f(x)=do g(x) until p(x) ,那么该循环不变式q(x)为 f(x)=(f(x)=f*g(x0)3假设 f(x)=do1 g(x)
11、while p(x) do2 h(x) ,那么该循环不变式q(x)为 f(x)=f*h*g(x)循环不变式产生的方法例1对于循环程序P:while v0 do u,v=u+1,v-1 其程序函数为(u,v),(u+v,0),求其循环不变式对循环中一切变量,分别计算f(x)和f(x0),列表如下:那么循环不变式为f(x)=f(x0) = u+v=u0+v0 xf(x)f(x0)Uu+vu0+v0v00循环不变式产生的方法例2求程序P: while ab do a,q:=a-b,q+1 的循环不变式该程序的程序函数为(a,b,q),(a-a/b*b),b,a/b+qa-a/b*b=a0-(a0/b
12、0)*b0 1b=b0 2(a/b)+q=(a0/b0)+q0 3由(1)、(2)得:a0-a=b*(a0/b0-a/b) 4由(3)得:a0/b0-a/b=q-q0 5综合(4)、(5)得 a0-a=b*(q-q0)xf(x)f(x0)aa-a/b*ba0-a0/b0*b0BbB0q(a/b)+q(a0/b0)+q程序正确性证明练习nP174页习题1和2nP190页习题1和6s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D
13、1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOc
14、L9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShP
15、eMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&
16、;s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfK8H5D2A-x*u$qZnWkShPdMaJ7F4C1
17、z)w&s!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK
18、8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVj
19、SgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5Ew*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkSh
20、PeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&am
21、p;s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTiQeNbJ8G
22、5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5
23、E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgP
24、dLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2At!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeM
25、aJ7G4C1z)w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s
26、#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlUiQfNbG4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办文办会办事管理制度
- 基金公司公司管理制度
- 公司境内投资管理制度
- 外包客服店铺管理制度
- 广西建工安全管理制度
- 定制校服销售方案(3篇)
- 初级工厂车间管理制度
- DB6103T 93-2025 猕猴桃高温热害预警等级划分规范
- 水库参数复核方案(3篇)
- 车位成本控制方案(3篇)
- 大型养路机械综合讲义
- 高分子材料完整版课件
- 2022年商务标技术标最全投标文件模板
- TFDS系统介绍(济南)
- 滚子链链轮的基本参数和主要尺寸
- 青海省基本医疗保险门诊特殊病慢性病病种待遇认定表
- 幼儿园组织构架图-及工作流程
- 维氏硬度计作业指导书
- 酒店各部门员工考核标准评分表
- JJG 162-2019饮用冷水水表 检定规程(高清版)
- 输出轴零件的机械加工工艺规程
评论
0/150
提交评论