Skip to content

Pre-conditions and Post-conditions

Specifying what must be true before an operation (pre-condition) and what will be true after (post-condition) enables modular reasoning about correctness without examining implementation details.

Tension Addressed

Generality vs. Efficiency (enables reasoning about components independently)

Recognizable As

Design-by-contract patterns, API documentation of valid inputs, exception conditions, function signatures with constraints, database constraints

Canonical Sources

Hoare, An Axiomatic Basis for Computer Programming (1969); Meyer, Applying Design by Contract (1992)

Transfers To

API design, service contracts, legal agreemAPI designfacturing quality control, medical protocols

This concept is the foundation of abstraction: defining what without specifying how.