Formal Proof of a Program: Find
Abstract:
In 1971, C. A. R. Hoare gave the proof of correctness and termination of a rather complex algorithm, in a paper entitled Proof of a program: Find. It is a hand-made proof, where the program is given together with its formal specication and where each step is fully justied by a mathematical reasoning. We present here a formal proof of the same program in the system Coq, using the recent tactic of the system developed to establishing the total correctness of imperative programs. We follow Hoare's paper as close as possible, keeping the same program and the same specication. We show that we get exactly the same proof obligations, which are proved in a straightforward way, following the original paper. We also explain how more informal reasonings of Hoare's proof are formalized in the system Coq. This demonstrates the adequacy of the system Coq in the process of certifying imperative programs. 1
Citations
| 352 | The omega test: a fast and practical integer programming algorithm for dependence analysis – Pugh - 1991 |
| 2 | Essays in Computing Science – Hoare, Jones - 1989 |
| 1 | 1] The Coq Proof – Coquand, Huet - 1988 |

