How Focusing Resolves Stuck Terms in Core Evaluation | HackerNoon
Briefly

Focusing is a technique used to solve stuck term problems in Core by transforming expressions to evaluate subcomputations externally. For instance, the evaluation of 𝜇𝛼. + (𝜇𝛽. ∗ (⌜2⌝, ⌜4⌝; 𝛽), ⌜5⌝; 𝛼) involves renaming intermediate results and applying 𝜇-bindings. The transformation relates to simplifying terms, allowing full evaluation to the normal form. Two approaches exist for focusing: dynamic focusing involves additional evaluation rules during statement evaluation, while static focusing occurs as a preprocessing step prior to evaluation.
We have lifted a subcomputation to the outside of the term we are evaluating. This kind of transformation is called focusing and we use it to solve the problem with stuck terms in Core.
The transformation corresponds roughly to what happens when we translate the term let x = 2 ∗ 4 in x + 5 instead of (2 ∗ 4) + 5 into Core.
By using dynamic focusing, we add additional evaluation rules, usually called 𝜍-rules, to lift sub-computations to the outside of the statement we are evaluating.
Static focusing involves preprocessing steps before starting the evaluation, contrasting to dynamic focusing which occurs during the evaluation of a statement.
Read at Hackernoon
[
|
]