Edge Rewrite
// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a22e90b3fc75cf66

Jump to content

Böhm tree

From Wikipedia, the free encyclopedia
(Redirected from Bohm tree)

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 and are both . 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 does not have a normal form, and similarly the term does not have a normal form. But the application , where denotes the standard lambda term , reduces only to itself, whereas the application reduces with normal order reduction to , 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 because applying 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 , where , reduces to both to 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, , and .

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. {{cite book}}: ISBN / Date incompatibility (help)
  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. 1 2 Severi & de Vries 2011, p. 5.
  8. Severi & de Vries 2011, pp. 4–5.
  9. Severi & de Vries 2011, p. 2.
  10. 1 2 3 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.