In
lambda calculus
In mathematical logic, the lambda calculus (also written as ''λ''-calculus) is a formal system for expressing computability, computation based on function Abstraction (computer science), abstraction and function application, application using var ...
, a term is in beta normal form if no ''
beta reduction'' is possible. A term is in beta-eta normal form if neither a beta reduction nor an ''
eta reduction'' is possible. A term is in head normal form if there is no ''beta-redex in the head position''. The normal form of a term, if one exists, is unique (as a corollary of the
Church–Rosser theorem
In lambda calculus, the Church–Rosser theorem states that, when applying reduction rules to terms, the ordering in which the reductions are chosen does not make a difference to the eventual result.
More precisely, if there are two distinct r ...
). However, a term may have more than one head normal form.
Beta reduction
In the lambda calculus, a beta redex is a term of the form:
:
.
A redex
is in head position in a term
, if
has the following shape (note that application has higher priority than abstraction, and that the formula below is meant to be a lambda-abstraction, not an application):
:
, where
and
.
A beta reduction is an application of the following rewrite rule to a beta redex contained in a term:
:
where