Program verification · 1969 · C. A. R. Hoare
An Axiomatic Basis for Computer Programming
Connect preconditions, commands, and postconditions with compositional proof rules so program correctness can be derived rather than guessed from tests.
The central move
Connect preconditions, commands, and postconditions with compositional proof rules so program correctness can be derived rather than guessed from tests.
Why it had to exist
Successful executions could not show that every valid state preserved a contract. A mathematical interface was needed between a program fragment and what it promised.
Where it leads
Axiomatic semantics → verification conditions → contracts, model checking, proof assistants, and safer APIs.