程序实现正确性证明

如何证明程序是正确的?

基于不变条件的程序逻辑正确性证明

  • 基于数学归纳法思想
  • 通过一组断言(不变条件)来证明程序正确性
  • 假设输入断言为真(归纳假设),证明经过程序操作之后,输出断言也为真即可(归纳证明)

举例:

  • 最大公约数算法

Note

给定两个正整数$m$,$n$,求出其最大公约数$d$,以及$a$和$b$使得满足$am+bn=d$。