Report Number: CS-TR-74-473
Institution: Stanford University, Department of Computer Science
Title: Automatic program verification II: verifying programs by algebraic and logical reduction.
Author: Suzuki, Norihisa
Date: December 1974
Abstract: Methods for verifying programs written in a higher level programming language are devised and implemented. The system can verify programs written in a subset of PASCAL, which may have data structures and control structures such as WHILE, REPEAT, FOR, PROCEDURE, FUNCTION and COROUTINE. The process of creation of verification conditions is an extension of the work done by Igarashi, London and Luckham which is based on the deductive theory by Hoare. Verification conditions are proved using specialized simplification and proof techniques, which consist of an arithmetic simplifier, equality replacement rules, fast algorithm for simplifying formulas using propositional truth value evaluation, and a depth first proof search process. The basis of deduction mechanism used in this prover is Gentzen-type formal system. Several sorting programs including Floyd's TREESORT3 and Hoare's FIND are verified. It is shown that the resulting array is not only well-ordered but also a permutation of the input array.
http://i.stanford.edu/pub/cstr/reports/cs/tr/74/473/CS-TR-74-473.pdf