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