「‍」 Lingenic

Operational Semantics

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

Operational Semantics

Origin. Plotkin (1981) SOS. Program meaning via execution rules. Small-step and big-step styles. Foundation for language implementation. Basis for type soundness proofs.

Models. Syntax-directed reduction rules. Configurations: ⟨e, σ⟩ (expression, state). Transitions define evaluation. Structural induction for properties.

Formalism.

Small-step (structural): e → e' (one step reduction) e →* e' (many steps)

Big-step (natural): e ⇓ v (e evaluates to v)

Rules (small-step): E-App1: e₁ → e₁' ────────────── e₁ e₂ → e₁' e₂

E-App2: e₂ → e₂' ────────────── v₁ e₂ → v₁ e₂'

E-Beta: (λx.e) v → e[v/x]

Rules (big-step): E-App: e₁ ⇓ λx.e e₂ ⇓ v₂ e[v₂/x] ⇓ v ───────────────────────────────────── e₁ e₂ ⇓ v

Evaluation contexts: E ::= □ | E e | v E | ... E[e] → E[e'] if e → e'.

Call-by-value: Reduce arguments before substitution. Values don't reduce.

Call-by-name: Substitute unreduced arguments. Lazy evaluation variant.

Symbols.

SymbolUnicodeNameMeaning
U+2192StepSmall-step
→*StepsTransitive closure
U+21D3EvaluatesBig-step
U+25A1HoleEvaluation context

Metatheory. Progress: well-typed doesn't get stuck. Preservation: types preserved by steps. Determinism (for deterministic languages). Correspondence: small ↔ big step.

Applies to. Language specification. Type soundness. Mechanized proofs. Compiler verification. Semantics comparison.

Limitations. Large rule sets. Non-determinism adds complexity. Concurrency requires extensions. Full abstraction not guaranteed.

© 2026 Lingenic LLC