程序的公理化证明.pptVIP

  • 6
  • 0
  • 约1.87千字
  • 约 15页
  • 2019-11-30 发布于天津
  • 举报
程序的公理化证明 赵建华 南京大学计算机系 简介 C.A.R. Hoare提出的公理系统 断言中包含了逻辑公式和代码 组合式证明 先证明程序的各个部分,然后把这些证明组合起来,得到更大代码的证明。 本证明系统基于某个一阶推理系统. 断言的形式 Hoare三元式 {P} S {Q} S :代码 P(pre-condition,前置条件) Q (post-condition,后置条件) P和Q是一阶逻辑公式 三元式指出了一个部分正确性 如果S从一个满足P的状态开始执行,且S 能够正常执行完毕,那么最后的状态满足Q。 程序的抽象语法 基本语句 赋值语句:v:=e skip语句 复合语句 顺序:S;S 选择:if p then S else S fi 循环:while p do S 公理:赋值语句 {Q[e/v]} v:=e {Q} 如果语句v:=e执行之前的状态满足 Q[e/v],那么v:=e执行之后的状态满足Q。 Q[e/v]表示将公式Q中的v替换成为e后得到的公式。 例如:{x+1==10}x:=x+1{x==10} 公理:skip语句 skip语句不改变状态。 {P} skip {P} pre,post规则 在证明了一个断言之后,我们可以弱化其后置条件,或者强化其前置条件。 P=P’,{P’} S {Q} {P} S {Q} {P} S {Q’},Q’ = Q {P}

文档评论(0)

1亿VIP精品文档

相关文档