The Standard reduction relation.
- fvar
{Var : Type u}
(x : Var)
: (Term.fvar x).Standard (Term.fvar x)
Free variables standardly reduce to themselves.
- app
{Var : Type u}
{L L' M M' : Term Var}
: L.Standard L' → M.Standard M' → (L.app M).Standard (L'.app M')
Congruence rule for application.
- abs
{Var : Type u}
{m m' : Term Var}
(xs : Finset Var)
: (∀ x ∉ xs, (m.open' (Term.fvar x)).Standard (m'.open' (Term.fvar x))) → m.abs.Standard m'.abs
Congruence rule for lambda terms.
- rdx
{Var : Type u}
{m n m' p : Term Var}
: m.LC → n.LC → Relation.ReflTransGen CBN m m'.abs → (m'.open' n).Standard p → (m.app n).Standard p
Standard reduction of a head redex.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
A Call-by-Name reduction followed by a standard reduction is a standard reduction.
Call-by-Name reduction is contained in standard reduction.
Standard reduction is preserved by substitution.
A single full β-step is a standard reduction.
Standard reduction is contained in full β-reduction.
If a standard reduction reaches an abstraction, then its leading Call-by-Name reduction reaches an abstraction that standardly reduces to the same target.
A standard reduction followed by a full β-step is a standard reduction.
A standard reduction followed by a full β-reduction is a standard reduction.
Standard reduction is transitive.
Equations
Equations
Equations
The standardization theorem: every full β-reduction is a standard reduction.
Standard reduction coincides with full β-reduction on locally closed terms.