Бета-нормальная форма
В лямбда-исчислении термин находится в бета-нормальной форме, если бета-редукция невозможна. [1] Термин находится в бета-эта нормальной форме , если ни бета-редукция, ни эта-редукция невозможны. Термин находится в нормальной форме головы , если в позиции головы нет бета-редекса . Нормальная форма термина, если она существует, уникальна (как следствие теоремы Чёрча – Россера ). [2] Однако термин может иметь более одной головной нормальной формы.
Бета-снижение
[ редактировать ]В лямбда-исчислении бета-редекс представляет собой термин вида: [3] [4]
- .
редекс находится на руководящей позиции в семестре , если имеет следующую форму (обратите внимание, что приложение имеет более высокий приоритет, чем абстракция, и что приведенная ниже формула представляет собой лямбда-абстракцию, а не приложение):
- , где и .
Бета -редукция — это применение следующего правила перезаписи к бета-редексу, содержащемуся в терме:
где является результатом замены термина для переменной в срок .
A head beta reduction is a beta reduction applied in head position, that is, of the following form:
- , where and .
Any other reduction is an internal beta reduction.
A normal form is a term that does not contain any beta redex,[3][5] i.e. that cannot be further reduced. A head normal form is a term that does not contain a beta redex in head position, i.e. that cannot be further reduced by a head reduction. When considering the simple lambda calculus (viz. without the addition of constant or function symbols, meant to be reduced by additional delta rule), head normal forms are the terms of the following shape:
- , where is a variable, and .
A head normal form is not always a normal form,[5] because the applied arguments need not be normal. However, the converse is true: any normal form is also a head normal form.[5] In fact, the normal forms are exactly the head normal forms in which the subterms are themselves normal forms. This gives an inductive syntactic description of normal forms.
There is also the notion of weak head normal form: a term in weak head normal form is either a term in head normal form or a lambda abstraction.[6] This means a redex may appear inside a lambda body.
Reduction strategies
[edit]In general, a given term can contain several redexes, hence several different beta reductions could be applied. We may specify a strategy to choose which redex to reduce.
- Normal-order reduction is the strategy in which one continually applies the rule for beta reduction in head position until no more such reductions are possible. At that point, the resulting term is in head normal form. One then continues applying head reduction in the subterms , from left to right. Stated otherwise, normal‐order reduction is the strategy that always reduces the left‐most outer‐most redex first.
- By contrast, in applicative order reduction, one applies the internal reductions first, and then only applies the head reduction when no more internal reductions are possible.
Normal-order reduction is complete, in the sense that if a term has a head normal form, then normal‐order reduction will eventually reach it. By the syntactic description of normal forms above, this entails the same statement for a “fully” normal form (this is the standardization theorem). By contrast, applicative order reduction may not terminate, even when the term has a normal form. For example, using applicative order reduction, the following sequence of reductions is possible:
But using normal-order reduction, the same starting point reduces quickly to normal form:
Sinot's director strings is one method by which the computational complexity of beta reduction can be optimized.
See also
[edit]References
[edit]- ^ "Beta normal form". Encyclopedia. TheFreeDictionary.com. Retrieved 18 November 2013.
- ^ Томпсон, Саймон (1991). Теория типов и функциональное программирование . Уокингем, Англия: Аддисон-Уэсли. п. 38. ISBN 0-201-41667-0 . OCLC 23287456 .
- ^ Перейти обратно: а б Барендрегт, Хенк П. (1984). Введение в лямбда-исчисление (PDF) (пересмотренная редакция). п. 24.
- ^ Томпсон, Саймон (1991). Теория типов и функциональное программирование . Уокингем, Англия: Аддисон-Уэсли. п. 35. ISBN 0-201-41667-0 . OCLC 23287456 .
- ^ Перейти обратно: а б с Томпсон, Саймон (1991). Теория типов и функциональное программирование . Уокингем, Англия: Аддисон-Уэсли. п. 36. ISBN 0-201-41667-0 . OCLC 23287456 .
- ^ «Слабая голова, нормальная форма» . Энциклопедия . TheFreeDictionary.com . Проверено 30 апреля 2021 г.