We will consider the inductive mechanisms in five techniques for verifying iterative/recursive program structures: inductive assertion, predicate transformers, subgoal induction, computation induction, structural induction. We will discover that all five techniques can be justified by a single theorem about inductive proof techniques. We will also show that all five techniques face the problem of finding properties that will carry an induction.
Such properties are called inductive sets. We will see that the inductive sets of the five techniques are easily related to one another and that a program proof by any of the techniques can be easily converted to a proof by any of the other techniques. Our conclusion is that computer programs simply are inductive definitions of the functions they compute. Induction is the only method by which they can be proved. The problems of induction are therefore unavoidable.
我们将在五种验证迭代/递归程序结构的技术中考虑归纳机制:归纳断言,谓词转换器,子目标归纳,计算归纳,结构归纳。我们将发现,可以通过关于归纳证明技术的一个定理来证明所有五种技术都是合理的。我们还将展示所有五种技术都面临着寻找具有归纳特性的问题。 P>
这种性质称为归纳集。我们将看到,这五种技术的归纳集很容易彼此关联,并且任何一种技术的程序证明都可以很容易地通过其他任何一种技术转换为证明。我们的结论是,计算机程序只是它们计算功能的归纳定义。归纳法是证明它们的唯一方法。因此,归纳问题是不可避免的。 P>
机译:基于k诱导和不变推理的C程序的验证和驳斥
机译:通过约束重写归纳验证程序程序
机译:国际原子能机构如何验证一个国家的核计划是否和平:法律依据
机译:使用全程序归纳验证阵列操作程序
机译:归纳为理解计算机程序的基础。
机译:基于知识的基于知识编程模式的验证受到资源受限嵌入式设备的自然语言的启发
机译:验证多线程程序的基础