Böhm tree

From HandWiki
Revision as of 20:01, 6 February 2024 by StanislovAI (talk | contribs) (correction)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Mathematical object for the lambda calculus

In the study of denotational semantics of the lambda calculus, Böhm trees,[lower-alpha 1] Lévy-Longo trees,[1][2][lower-alpha 2] 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

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.

In the infinitary lambda calculus, 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

We define a set [math]\displaystyle{ U }[/math] of meaningless terms as follows:[6][7]

  • Root-activeness: Every root-active term is in [math]\displaystyle{ U }[/math]. A term [math]\displaystyle{ M }[/math] is root-active if for all [math]\displaystyle{ M \stackrel{*}{\to} N }[/math] there exists a redex [math]\displaystyle{ (\lambda x.P)Q }[/math] such that [math]\displaystyle{ N \stackrel{*}{\to} (\lambda x.P)Q }[/math].
  • Closure under β-reduction: For all [math]\displaystyle{ M \in U }[/math], if [math]\displaystyle{ M \stackrel{*}{\to} N }[/math] then [math]\displaystyle{ N \in U }[/math].
  • Closure under substitution: For all [math]\displaystyle{ M \in U }[/math] and substitutions [math]\displaystyle{ \sigma }[/math], [math]\displaystyle{ M\sigma \in U }[/math].
  • Overlap: For all [math]\displaystyle{ \lambda x.M \in U }[/math], [math]\displaystyle{ (\lambda x.M )N \in U }[/math] .
  • Indiscernibility: For all [math]\displaystyle{ M, N }[/math], if [math]\displaystyle{ N }[/math] can be obtained from [math]\displaystyle{ M }[/math] by replacing a set of pairwise disjoint subterms in [math]\displaystyle{ U }[/math] with other terms of [math]\displaystyle{ U }[/math], then [math]\displaystyle{ M \in U }[/math] if and only if [math]\displaystyle{ N \in U }[/math].
  • Closure under β-expansion. For all [math]\displaystyle{ N \in U }[/math], if [math]\displaystyle{ M \stackrel{*}{\to} N }[/math], then [math]\displaystyle{ M \in U }[/math]. 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 [math]\displaystyle{ \mathbf{\Omega} \in U }[/math] for every set of meaningless terms [math]\displaystyle{ U }[/math].

λ⊥-terms

The set of λ-terms with ⊥ (abbreviated λ⊥-terms) is defined coinductively by the grammar [math]\displaystyle{ M = \bot \mid x \mid (\lambda x. M) \mid (M M) }[/math]. This corresponds to the standard infinitary lambda calculus plus terms containing [math]\displaystyle{ \bot }[/math]. Beta-reduction on this set is defined in the standard way. Given a set of meaningless terms [math]\displaystyle{ U }[/math], we also define a reduction to bottom: if [math]\displaystyle{ M[\bot \mapsto \mathbf{\Omega}] \in U }[/math] and [math]\displaystyle{ M \neq \bot }[/math], then [math]\displaystyle{ M \to \bot }[/math]. 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

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 [math]\displaystyle{ \bot }[/math], if M has no head normal form
  2. [math]\displaystyle{ \mathrm{BT}(M) = \lambda x_1.\lambda x_2.\ldots\lambda x_n.y \mathrm{BT}(M_1) \ldots \mathrm{BT}(M_m) }[/math], if [math]\displaystyle{ M }[/math] reduces in a finite number of steps to the head normal form [math]\displaystyle{ \lambda x_1.\lambda x_2.\ldots\lambda x_n.y M_1 \ldots M_m }[/math]

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 [math]\displaystyle{ \bot }[/math].[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

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 [math]\displaystyle{ \bot }[/math], if M has no weak head normal form.
  2. If [math]\displaystyle{ M }[/math] reduces to the weak head normal form [math]\displaystyle{ y M_1 \ldots M_m }[/math], then [math]\displaystyle{ \mathrm{LLT}(M) = y \mathrm{LLT}(M_1) \ldots \mathrm{LLT}(M_m) }[/math].
  3. If [math]\displaystyle{ M }[/math] reduces to the weak head normal form [math]\displaystyle{ \lambda x.N }[/math], then [math]\displaystyle{ \mathrm{LLT}(M) = \lambda x.\mathrm{LLT}(N) }[/math]/

Berarducci trees

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 [math]\displaystyle{ \bot }[/math], if M is root-active.
  2. If [math]\displaystyle{ M }[/math] reduces to a term [math]\displaystyle{ \lambda x.N }[/math], then [math]\displaystyle{ \mathrm{BerT}(M) = \lambda x.\mathrm{BerT}(N) }[/math].
  3. If [math]\displaystyle{ M }[/math] reduces to a term [math]\displaystyle{ N P }[/math] where [math]\displaystyle{ N }[/math] does not reduce to any abstraction [math]\displaystyle{ \lambda x. Q }[/math], then [math]\displaystyle{ \mathrm{BerT}(M) = \mathrm{BerT}(N) \mathrm{BerT}(P) }[/math].

Notes

  1. per (Sangiorgi Walker), introduced in (Barendregt 1977) and named after a theorem of Corrado Böhm
  2. coined in (Ong 1988), per (Sangiorgi Walker)

References

  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. 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". Logic and algebra. New York: Marcel Dekker. pp. 339–377. ISBN 0824796063. http://people.dm.unipi.it/berardu/Art/1996Nonsensible/non-sensible.pdf. 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. 1139. pp. 254–268. doi:10.1007/3-540-61735-3_17. ISBN 978-3-540-61735-8. 
  7. 7.0 7.1 Severi & de Vries 2011, p. 5.
  8. Severi & de Vries 2011, pp. 4-5.
  9. Severi & de Vries 2011, p. 2.
  10. 10.0 10.1 10.2 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. 
  • Huet, Gérard; Laulhère, H. (1997). "Finite-state Transducers as Regular Böhm Trees". in Abadi, M.; Ito, T.. Theoretical Aspects of Computer Software. LNCS. 1281. Springer. pp. 604–610. doi:10.1007/BFb0014570. ISBN 978-3-540-69530-1. http://pauillac.inria.fr/~huet/PUBLIC/trans6.pdf. 
  • Gérard Huet (1998). "Regular Böhm Trees". Math. Struct. In Comp. Science 8 (6): 671–680. doi:10.1017/S0960129598002643. http://pauillac.inria.fr/~huet/PUBLIC/RBT2.pdf. 
  • Ong, C.-H. Luke (31 May 1988). The Lazy Lambda Calculus: An Investigation into the Foundations of Functional Programming (PDF) (PhD). University of London. OCLC 31204528. Retrieved 23 September 2022.
  • Sangiorgi, Davide; Walker, David (16 October 2003) (in en). The Pi-Calculus: A Theory of Mobile Processes. Cambridge University Press. ISBN 978-0-521-54327-9. 
  • Barendregt, Henk P. (1977). "The Type Free Lambda Calculus". Handbook of Mathematical Logic. Studies in Logic and the Foundations of Mathematics. 90. pp. 1091–1132. doi:10.1016/S0049-237X(08)71129-7. ISBN 9780444863881. 
  • Severi, Paula; de Vries, Fer-Jan (2011). "Decomposing the Lattice of Meaningless Sets in the Infinitary Lambda Calculus". Logic, Language, Information and Computation. Lecture Notes in Computer Science. 6642. pp. 210–227. doi:10.1007/978-3-642-20920-8_22. ISBN 978-3-642-20919-2. https://www.cs.le.ac.uk/people/fdv1/fdv1/Distribution/wollic2011.pdf. Retrieved 23 September 2022.