An Axiomatic Basis for Computer Programming
In this paper an attempt is made to explore
the logical foundations of computer programming 
by use of techniques which were first applied in the
study of geometry and have later been extended to 
other branches of mathematics.  This involves the elucidation
of sets of axioms and rules of inference 
which can be used in proofs of the properties of computer
programs.  Examples are given of such axioms 
and rules, and a formal proof of a simple theorem is
displayed.  Finally, it is argued that important 
advantages, both theoretical and practical, may
follow from a pursuance of these topics.
CACM October, 1969
Hoare, C. A. R.
