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.

Study the guided reading in Bits →