You Can Get Some Satisfaction From Model Theory
Jun 21 2026This essay uses the model-theory idea of satisfaction as a lens for thinking about software invariants: the difference between the rules a system claims to have and the states it actually permits. Starting from the familiar pain of “impossible” production bugs, it argues that domain models are not defined by architecture docs, class names, or happy-path code, but by the states the system can really enter. If an invoice without a customer can exist, then that state is part of the effective model, whether anyone intended it or not. The essay connects this to databases, type systems, state machines, service-layer validation, and AI coding assistants, making the case that important invariants should be structural where possible, while still leaving room for temporary states, policy rules, and the messy judgment production systems require.