「‍」 Lingenic

Axiomatic Semantics

(⤓.md ◇.md); γ ≜ [2026-07-17T120407.600, 2026-07-17T135416.643] ∧ |γ| = 3

Axiomatic Semantics

Origin. Floyd (1967), Hoare (1969). Program meaning via assertions. Preconditions and postconditions. Proof rules for constructs. Foundation for program verification.

Models. {P} S {Q}: if P holds before S, Q holds after. Partial correctness: assumes termination. Total correctness: proves termination. Weakest precondition calculus.

Formalism.

Hoare triple: {P} S {Q} P: precondition S: statement Q: postcondition

Assignment axiom: {Q[e/x]} x := e {Q}

Sequence: {P} S₁ {R} {R} S₂ {Q} ───────────────────────── {P} S₁; S₂ {Q}

Conditional: {P ∧ B} S₁ {Q} {P ∧ ¬B} S₂ {Q} ───────────────────────────────── {P} if B then S₁ else S₂ {Q}

While loop: {I ∧ B} S {I} ───────────────────── {I} while B do S {I ∧ ¬B} I: loop invariant.

Consequence: P' ⇒ P {P} S {Q} Q ⇒ Q' ─────────────────────────────── {P'} S {Q'}

Weakest precondition: wp(S, Q) = weakest P such that {P} S {Q}. wp(x := e, Q) = Q[e/x] wp(S₁; S₂, Q) = wp(S₁, wp(S₂, Q))

Total correctness: [P] S [Q]: must also terminate. Loop variants: decrease with each iteration.

Symbols.

SymbolUnicodeNameMeaning
{P}PreconditionBefore state
{Q}PostconditionAfter state
wpWeakest preWeakest precondition
IInvariantLoop invariant

Metatheory. Soundness: derivable triples are valid. Relative completeness (Cook): complete modulo assertion language. Expressiveness of assertions matters.

Applies to. Program verification. Design by contract. Verification conditions. Proof assistants. Static analysis.

Limitations. Finding invariants hard. Relative completeness only. Pointers/aliasing complex. Concurrency needs extensions.

© 2026 Lingenic LLC