Definition
A condition in which a specification (formal or informal) omits constraints on essential aspects of intended behavior, leaving multiple unintended interpretations or implementations possible.

Principle

Principle
Specifications must constrain behavior sufficiently to exclude undesirable degrees of freedom; underspecification arises when necessary invariants, pre/post-conditions, or environmental assumptions are omitted or left implicit.

Demonstration

Demonstration
A protocol definition that specifies message formats but does not specify endianness or error-handling semantics allows interoperating implementations to make divergent choices, producing incompatible behaviors despite adherence to the literal spec.

Misapplication

Misapplication
Treating every flexible or extensible interface as underspecified ignores purposeful design for variability; conversely, calling a deliberate design choice 'underspecification' mistakes tolerable openness for error.

Consequence

Consequence
Identifying underspecification leads to adding constraints, normative choices, test suites, or decision procedures; failing to address it yields interoperability problems, latent bugs, and divergent implementations that violate user expectations.

Reversal

Reversal
Overspecification: a complementary failure mode where a specification imposes unnecessary constraints, reducing implementer freedom and possibly preventing legitimate optimization or variation.

Boundary

Boundary
Applies to those parts of a specification where intended behavior must be determinate for correctness; does not condemn every omission (some omissions are intentional to allow extension), but flags omissions that undermine intended guarantees.

Semantic Tension

Semantic Tension
Competes with notions of design flexibility and abstraction: underspecification critiques absent constraints, while flexibility defends leaving choices open; resolving the tension requires explicit policy about which choices must be canonical versus which may vary.

Synthesis

Synthesis
Underspecification is the absence of necessary constraints in a specification that permits unintended variability; addressing it requires clarifying invariants, assumptions, and normative behaviours through added axioms, tests, or normative documentation.