Skip to content

Specification language

A formal language used to state what a system must do at a higher level than executable implementation code.

Version
v1 · 2026-08-30 · History
Domain-specific #
2818
Origin domain
computer science
Subdomain
formal methods and requirements engineering
Aliases
Formal specification language

Core Idea

Specification language is a formal language used to state what a system must do at a higher level than executable implementation code. [1]

A specification language supplies a defined syntax and semantics for stating what a system, component, interface, or protocol must satisfy without committing to one implementation. Formal languages may describe states, invariants, operations, traces, temporal properties, or algebraic equations and support type checking, proof, refinement, model checking, or test derivation.

Its operative boundary is not supplied by the name alone. Preserve this identity: A formal language used to state what a system must do at a higher level than executable implementation code. Validity boundary: Expressions must have defined specification semantics and describe required behavior or properties without unnecessary implementation detail. The entry therefore captures a reusable specialist role structure rather than a topic label, a single historical instance, or a loose analogy.

Structural Signature

Sig role-phrases:

  • the system boundary — the component and environment whose behavior is constrained
  • the abstract vocabulary — types, states, events, relations, or operations available to the specification
  • the syntax — rules forming well-structured specification sentences
  • the semantics — a mathematical interpretation determining which systems satisfy those sentences
  • the obligations — invariants, preconditions, postconditions, traces, or properties required
  • the abstraction barrier — deliberate omission of irrelevant implementation decisions
  • the conformance relation — the rule deciding whether a model or implementation meets the specification
  • the analysis toolchain — parsers, type checkers, provers, model checkers, or refinement tools

Recognition test. A case qualifies only when the analyst can map the declared the system boundary, the abstract vocabulary, the syntax, the semantics, the obligations and preserve the specialist validity conditions. Shared vocabulary, a similar output, or a generic instance of one parent relation is insufficient.

What It Is Not

  • Not a programming language by default. A specification states admissible behavior and need not execute as an implementation.
  • Not unstructured prose requirements. A named language has governed syntax and interpretation.
  • Not a file format. Serialization syntax alone does not express system obligations.
  • Not a modeling diagram alone. The notation needs semantics and a satisfaction or conformance relation.
  • Not an implementation contract with every design fixed. Specification normally preserves an intentional space of implementations.

Scope of Application

The abstraction recurs literally within software and systems descriptions whose requirements need analyzable syntax, semantics, and conformance. The following habitats preserve the same recognition machinery; they are not invitations to extend the name metaphorically.

  • State-based specification. schemas and invariants constrain abstract machine states and operations.
  • Process specification. traces, communication, and concurrency are described independently of code.
  • Temporal requirements. allowed and required behavior over time is formalized.
  • Interface contracts. preconditions, postconditions, and protocols delimit component use.
  • Refinement. a concrete design is proved to preserve an abstract specification.

Clarity

Name the particular language and semantic domain. 'Formal-looking' notation is not enough: users must know how expressions are parsed, interpreted, and checked. Executability can be useful but does not define a specification language, and an implementation may contain more choices than the specification permits or describes.

A practical identification audit begins with the typed roles rather than the title: establish the system boundary, verify the abstract vocabulary, then test the remaining conditions and exclusions. If the case retains only the portable skeleton described below, it should be named through a parent abstraction rather than as Specification language.

Manages Complexity

The language compresses many behaviors into constraints over an abstract model. A shared semantics enables automated checks and staged refinement while separating requirements disputes from coding details.

The compression remains accountable because each simplification has a named failure condition. Disagreement can be localized to a missing role, an invalid assumption, an ambiguous measurement, or a neighboring abstraction instead of being hidden inside an unanalyzed label.

Abstract Reasoning

R1. Declare the system boundary and the implementation details intentionally abstracted away. R2. Form the specification under the language's grammar and type rules. R3. Interpret each construct in the documented semantic model. R4. State the satisfaction or refinement relation used for conformance. R5. Use proof or analysis tools without treating tool success as stronger than their assumptions.

These moves separate definition, derivation, measurement, and interpretation. A formal consequence does not by itself prove that an observed case instantiates the abstraction, while an observed resemblance does not relax the formal or institutional recognition conditions.

Knowledge Transfer

The identity transfers across formal notations that retain syntax, semantics, obligations, and conformance. Formal system and abstraction are portable parents; a policy checklist, API prose page, or executable script is not thereby a specification language.

The transfer boundary is explicit: DOMAIN-SPECIFIC PASS / PRIME FAIL: Specification languages recur across requirements analysis, system design, interface contracts, and formal verification workflows. Literal recognition retains the specialist vocabulary and validity conditions of systems and software engineering; outside that setting only broader parent operations transfer. The safe move beyond the home habitat is to carry the applicable parent relation and leave the specialist name behind unless every defining role remains literal.

Examples

Canonical: a Z state schema

A Z schema declares typed state variables and an invariant, then operation schemas relate before and after states through preconditions and postconditions. The notation's set-theoretic semantics permits proof of invariant preservation without selecting data structures. [1]

Mapped back: the system boundary; the abstract vocabulary; the syntax; the semantics; the obligations; the abstraction barrier.

Applied / In Practice: checking conformance to an ISO-defined notation

A tool accepts Z text only when it meets the standardized syntax and type rules, then assigns the defined semantics. A separate refinement argument is needed before an implementation can be said to satisfy the abstract state model. [2]

Mapped back: the syntax; the semantics; the conformance relation; the analysis toolchain.

Structural Tensions

T1: Precision vs accessibility. Formal semantics reduce ambiguity while raising the entry cost for stakeholders. Diagnostic: Which views preserve meaning for non-specialists?

T2: Abstraction vs implementability. Omitting design choices preserves alternatives but can hide feasibility constraints. Diagnostic: Which commitments must be introduced during refinement?

T3: Expressiveness vs analyzability. Richer logics state more properties while making automated checking harder or undecidable. Diagnostic: What fragment does the tool actually decide?

T4: Mathematical semantics vs tool semantics. An implementation can approximate or restrict the standard language. Diagnostic: Are tool-specific deviations documented?

T5: Consistency vs completeness. A consistent specification can still omit required environmental behavior. Diagnostic: How is coverage checked beyond proof consistency?

T6: Domain autonomy vs prime reduction. Formal system and abstraction omit the engineering roles of system boundary, satisfaction, and refinement. Diagnostic: Would any mathematical notation count as a specification language?

Structural–Framed Character

The five-criterion aggregate is 0.90 (framed). The judgment is criterion-specific:

  • Vocabulary travels — high (0.75). The complete vocabulary remains tied to the typed roles in the Structural Signature.
  • Evaluative weight — high (1.00). Application carries the stated degree of normative or interpretive judgment beyond structural recognition.
  • Institutional origin — high (1.00). The abstraction depends to this degree on a scholarly, technical, legal, or social convention.
  • Human-practice bound — high (1.00). Recognition depends to this degree on organized practice, language, measurement, or institutional action.
  • Import versus recognize — high (0.75). Beyond its home habitat, use of the full name increasingly becomes analogy rather than literal recognition.

The portable skeleton is a governed symbolic language defines admissible models by separating abstract obligations from implementation choices. The named abstraction remains framed because that skeleton alone does not supply its specialist objects, constraints, or tests.

Structural Core vs. Domain Accent

Structural core: A governed symbolic language defines admissible models by separating abstract obligations from implementation choices.

Domain accent: Requirements, software states, interfaces, traces, formal semantics, conformance, proof obligations, and refinement toolchains.

Why it does not clear the prime bar: Formal description travels; specification languages are recognized by their system-facing obligation and conformance machinery. Generalization therefore routes through parent abstractions; preserving the specialist name requires the full accent.

  • Formal System (prime:formal_system). Syntax, semantics, and derivation rules give the notation a formal interpretation.
  • Abstraction (prime:abstraction). The language suppresses implementation detail while retaining required behavior.

These are prose placement proposals only. They create no dag_edges; endpoint, redundancy, and cycle checks are recorded separately in the bundle's placement memo.

Relationships to Other Abstractions

Local relationship map for Specification languageParents appear above the current abstraction, mutual partners to the right, and children below. Node labels state whether each abstraction is prime or domain-specific; colors identify relation types.SpecificationlanguageDOMAINPrime abstraction: Formalization — presupposesFormalizationPRIMEPrime abstraction: Constraint — is a decomposition ofConstraintPRIMEDomain-specific abstraction: AltaRica — is a kind ofAltaRicaDOMAINDomain-specific abstraction: Well-Known Text Representation of Coordinate Reference Systems — is a kind ofWell-Known Text…DOMAIN

Current abstraction Specification language Domain-specific

Parents (2) — more general patterns this builds on

  • Specification language presupposes Formalization Prime

    The accepted reference-grade review places Specification language under Formalization because the child instantiates or depends on the parent's broader structure while retaining its own constitutive identity.

  • Specification language is a decomposition of Constraint Prime

    The accepted reference-grade review places Specification language under Constraint because the child instantiates or depends on the parent's broader structure while retaining its own constitutive identity.

Children (2) — more specific cases that build on this

  • AltaRica Domain-specific is a kind of Specification language

    Specification Language is the proposed immediate parent.

  • Well-Known Text Representation of Coordinate Reference Systems Domain-specific is a kind of Specification language

    Specification Language is the proposed immediate parent.

Hierarchy paths (3) — routes to 3 parentless roots

Neighborhood in Abstraction Space

Specification language sits in a sparse region of the domain-specific corpus (65th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely.

Family — Formal Languages, Types & Programs (41 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-09-08

Not to Be Confused With

  • Programming language. a language primarily used to construct executable implementations. Tell: Does the artifact choose behavior or constrain a family of implementations?
  • Modeling language. a broader notation for descriptive models. Tell: Is a conformance relation to required behavior defined?
  • Domain-specific language. any language specialized to a problem domain. Tell: Is formal system specification its purpose?
  • Requirements language. possibly controlled or natural-language requirements. Tell: Are syntax and semantics mathematical enough for formal analysis?
  • Interface definition language. a notation for data and callable interface shapes. Tell: Does it express behavioral obligations beyond interface signatures?

References

[1] J. Michael Spivey, The Z Notation: A Reference Manual, 2nd ed., Prentice Hall, 1992. registry ↩a ↩b

[2] ISO/IEC, ISO/IEC 13568:2002—Z formal specification notation: syntax, type system and semantics, 2002. registry