Jump to content

Böhm tree

From Wikipedia, the free encyclopedia

In the study of denotational semantics of the lambda calculus, Böhm trees,[a] Lévy-Longo trees,[1][2][b] and Berarducci trees[3] are (potentially infinite) tree-like mathematical objects that capture the "meaning" of a term up to some set of "meaningless" terms.

Motivation

[edit]

A simple way to read the meaning of a computation is to consider it as a mechanical procedure consisting of a finite number of steps that, when completed, yields a result. In particular, considering the lambda calculus as a rewriting system, each beta reduction step is a rewrite step, and once there are no further beta reductions the term is in normal form. We could thus, naively following Church's suggestion,[4] say the meaning of a term is its normal form, and that terms without a normal form are meaningless. For example the meanings of I = λx.x and I I are both I. This works for any strongly normalizing subset of the lambda calculus, such as a typed lambda calculus.

This naive assignment of meaning is however inadequate for the full lambda calculus. The term Ω =(λx.x x)(λx.x x) does not have a normal form, and similarly the term X=λx.xΩ does not have a normal form. But the application Ω (K I), where K denotes the standard lambda term λx.λy.x, reduces only to itself, whereas the application X (K I) reduces with normal order reduction to I, hence has a meaning. We thus see that not all non-normalizing terms are equivalent. We would like to say that Ω is less meaningful than X because applying X to a term can produce a result but applying Ω cannot.

Böhm trees may also be applied in the context of the infinitary lambda calculus, which includes infinitely large terms. In this context, the term N N, where N = λx.I(xx), reduces to both to I (I (...)) and Ω, hence there are also issues with confluence of normalization.[5]

Sets of meaningless terms

[edit]

The general construction is parameterized by a set of meaningless terms, which is required to satisfy the following axioms:[6][7]

  • Root-activeness: Every root-active term is in . A term is root-active if for all there exists a redex such that .
  • Closure under β-reduction: For all , if then .
  • Closure under substitution: For all and substitutions , .
  • Overlap: For all , .
  • Indiscernibility: For all , if can be obtained from by replacing a set of pairwise disjoint subterms in with other terms of , then if and only if .
  • Closure under β-expansion. For all , if , then . Some definitions leave this out, but it is useful.[8]

There are infinitely many sets of meaningless terms, but the ones most common in the literature are:[9]

  • The set of terms without head normal form
  • The set of terms without weak head normal form
  • The set of root-active terms, i.e. the terms without top normal form or root normal form. Since root-activeness is assumed, this is the smallest set of meaningless terms.

Note that Ω is root-active and therefore for every set of meaningless terms .

λ⊥-terms

[edit]

The set of λ-terms with ⊥ (abbreviated λ⊥-terms) is defined coinductively by the grammar . This corresponds to the standard infinitary lambda calculus plus terms containing . Beta-reduction on this set is defined in the standard way. Given a set of meaningless terms , we also define a reduction to bottom: if and , then . The λ⊥-terms are then considered as a rewriting system with these two rules; thanks to the definition of meaningless terms this rewriting system is confluent and normalizing.[7]

The Böhm-like "tree" for a term may then be obtained as the normal form of the term in this system, possibly in an infinitary "in the limit" sense if the term expands infinitely.

Böhm trees

[edit]

The Böhm trees are obtained by considering the λ⊥-terms where the set of meaningless terms consists of those without head normal form. More explicitly, the Böhm tree BT(M) of a lambda term M can be computed as follows:[10]

  1. BT(M) is , if M has no head normal form
  2. , if reduces in a finite number of steps to the head normal form

For example, BT(Ω)=⊥, BT(I)=I, and BT(λx.xΩ)=λx.x.

Determining whether a term has a head normal form is an undecidable problem. Barendregt introduced a notion of an "effective" Böhm tree that is computable, with the only difference being that terms with no head normal form are not marked with .[11]

Note that computing the Böhm tree is similar to finding a normal form for M. If M has a normal form, the Böhm tree is finite and has a simple correspondence to the normal form. If M does not have a normal form, normalization may "grow" some subtrees infinitely, or it may get "stuck in a loop" attempting to produce a result for part of the tree, which produce infinitary trees and meaningless terms respectively. Since the Böhm tree may be infinite the procedure should be understood as being applied co-recursively or as taking the limit of an infinite series of approximations.

Lévy-Longo trees

[edit]

The Lévy-Longo trees are obtained by considering the λ⊥-terms where the set of meaningless terms consists of those without weak head normal form. More explicitly, the Lévy-Longo tree LLT(M) of a lambda term M can be computed as follows:[10]

  1. LLT(M) is , if M has no weak head normal form.
  2. If reduces to the weak head normal form , then .
  3. If reduces to the weak head normal form , then /

Berarducci trees

[edit]

The Berarducci trees are obtained by considering the λ⊥-terms where the set of meaningless terms consists of the root-active terms. More explicitly, the Berarducci tree BerT(M) of a lambda term M can be computed as follows:[10]

  1. BerT(M) is , if M is root-active.
  2. If reduces to a term , then .
  3. If reduces to a term where does not reduce to any abstraction , then .

Notes

[edit]
  1. ^ per Sangiorgi & Walker (2003, p. 493), introduced in Barendregt (1977) and named after a theorem of Corrado Böhm
  2. ^ coined in Ong (1988), per Sangiorgi & Walker (2003, p. 511)

References

[edit]
  1. ^ Levy, Jean-Jacques (1975). "An algebraic interpretation of the λβK-calculus and a labelled λ-calculus". λ-Calculus and Computer Science Theory. Lecture Notes in Computer Science. Vol. 37. pp. 147–165. doi:10.1007/BFb0029523. ISBN 3-540-07416-3.
  2. ^ Longo, Giuseppe (August 1983). "Set-theoretical models of λ-calculus: theories, expansions, isomorphisms". Annals of Pure and Applied Logic. 24 (2): 153–188. doi:10.1016/0168-0072(83)90030-1.
  3. ^ Berarducci, Alessandro (1996). "Infinite λ-calculus and non-sensible models" (PDF). Logic and algebra. New York: Marcel Dekker. pp. 339–377. ISBN 0824796063. Retrieved 23 September 2007.
  4. ^ Church, Alonzo (1941). The calculi of lambda-conversion. Princeton University Press. p. 15. ISBN 0691083940.
  5. ^ Severi & de Vries 2011, p. 1.
  6. ^ Kennaway, Richard; van Oostrom, Vincent; de Vries, Fer-Jan (1996). "Meaningless terms in rewriting". Algebraic and Logic Programming. Lecture Notes in Computer Science. Vol. 1139. pp. 254–268. CiteSeerX 10.1.1.37.3616. doi:10.1007/3-540-61735-3_17. ISBN 978-3-540-61735-8.
  7. ^ a b Severi & de Vries 2011, p. 5.
  8. ^ Severi & de Vries 2011, pp. 4–5.
  9. ^ Severi & de Vries 2011, p. 2.
  10. ^ a b c Severi & de Vries 2011, p. 6.
  11. ^ Barendregt, Henk P. (2012). The Lambda Calculus : Its Syntax and Semantics. London: College Publications. pp. 219–221. ISBN 9781848900660.