Definition
A technique for computing the normal form of a term by interpreting the term in a suitable semantic model (evaluation) and then reifying or reading back the semantic value into a syntactic normal form.
Principle
Principle
Evaluate syntactic terms into a semantic domain where reductions are performed implicitly by the model, then reify semantic values back to syntax to obtain a normal or canonical representative.
Demonstration
Demonstration
For simply typed λ-calculus, interpret terms in a model of functions and neutral terms; evaluating (λx. M) N yields the semantic result and reification produces the β-normal, η-long form without performing explicit syntactic β-steps.
Misapplication
Misapplication
Using a semantic domain that does not respect the operational congruences (for example ignoring neutral terms) or failing to implement correct reification leads to incorrect or incomplete normal forms.
Consequence
Consequence
NbE often yields efficient normalization algorithms, handles extensional equalities cleanly (η-laws), and separates computational content (evaluation) from syntactic reconstruction (reification), facilitating proofs of normalization and decidability of equality.
Reversal
Reversal
The reversal is pure syntactic normalization by repeated local rewrite steps (β-reduction, η-expansion) which may be less modular and harder to relate to models of computation.
Boundary
Boundary
Applies when a faithful semantic interpretation and effective reification procedure exist; it is not applicable when the semantics is not computable or when reification cannot produce finite syntactic representatives.
Semantic Tension
Semantic Tension
Tension exists between building rich semantic domains that make evaluation simple and keeping reification feasible; more expressive models simplify evaluation but complicate reification back to syntax.
Synthesis
Synthesis
Normalization by evaluation computes canonical syntactic forms by delegating reduction to a semantic model and then systematically reconstructing syntax, yielding modular, often efficient normalization and clear semantic justification of normal forms.