"The Calculus of Computation: Decision Procedures with Applications to Verification"
Identify (pre-conditions) and output predicates (post-conditions). Replace standard debugging with formal mathematical proofs.
: Proving that if the program terminates, the final results satisfy a given output predicate.