 
Summary: READABLE PROOFS
IN HOARE LOGIC
(AND SEPARATION LOGIC)
John C. Reynolds
Carnegie Mellon University
ETAPS 2009
York, March 25, 2009 (revised April 6)
c 2009 John C. Reynolds
Our Thesis
Formal proofs of program specifications (more precisely, proofs
that specifications follow from their verification conditions) are
best communicated by annotated specifications (sometimes called
proof outlines), in which intermediate assertions and other nota
tions are interspersed within the specification.
These annotated specifications can be defined by inference rules
and mechanically translated into conventional formal proofs.
A Program for Fast Division
{x 0 y > 0}
newvar n := 0 in newvar z := y in
(while z x do (n := n + 1 ; z = z × 2) ;
