Information and Computation - Semantics of Data Types
Essays in computing science
Extracting &ohgr;'s programs from proofs in the calculus of constructions
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A practical algorithm for exact array dependence analysis
Communications of the ACM
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Communications of the ACM
Verification of non-functional programs using interpretations in type theory
Journal of Functional Programming
Combining Generic and Domain Specific Reasoning by Using Contexts
AISC '02/Calculemus '02 Proceedings of the Joint International Conferences on Artificial Intelligence, Automated Reasoning, and Symbolic Computation
Verification of non-functional programs using interpretations in type theory
Journal of Functional Programming
Journal of Automated Reasoning
Formally certified stable marriages
Proceedings of the 48th Annual Southeast Regional Conference
Hi-index | 0.00 |
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 handmade proof, where the program is given together with its formal specification and where each step is fully justified by 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 establish the total correctness of imperative programs. We follow Hoare's paper as closely as possible, keeping the same program and the same specification. 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 aspects 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.