## A Fine-Grained Notation for Lambda Terms and Its Use in Intensional Operations (1996)

### Cached

### Download Links

- [www.cs.uchicago.edu]
- [ftp.cs.uchicago.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | Journal of Functional and Logic Programming |

Citations: | 25 - 9 self |

### BibTeX

@ARTICLE{Nadathur96afine-grained,

author = {Gopalan Nadathur},

title = {A Fine-Grained Notation for Lambda Terms and Its Use in Intensional Operations},

journal = {Journal of Functional and Logic Programming},

year = {1996},

volume = {1999}

}

### Years of Citing Articles

### OpenURL

### Abstract

We discuss issues relevant to the practical use of a previously proposed notation for lambda terms in contexts where the intensions of such terms have to be manipulated. This notation uses the `nameless' scheme of de Bruijn, includes expressions for encoding terms together with substitutions to be performed on them and contains a mechanism for combining such substitutions so that they can be effected in a common structure traversal. The combination mechanism is a general one and consequently difficult to implement. We propose a simplification to it that retains its functionality in situations that occur commonly in fi-reduction. We then describe a system for annotating terms to determine if they can be affected by substitutions generated by external fi-contractions. These annotations can lead to a conservation of space and time in implementations of reduction by permitting substitutions to be performed trivially in certain situations. The use of the resulting notation in the reduction...

### Citations

1198 |
The Lambda-Calculus, its Syntax and Semantics
- Barendregt
- 1984
(Show Context)
Citation Context ...equence is obviously unique and terminates just in case there is an ms0 such that r m is asfi -hnf. The following proposition is proved for lambda terms in the conventional notation in, for instance, =-=[Bar81]-=- and this proof can be readily adapted to de Bruijn terms. Proposition 2.9 A de Bruijn term t has asfi -hnf if and only if the headsfi -reduction sequence of t terminates. 3 The suspension notation He... |

884 |
A Formulation of the Simple Theory of Types
- Church
- 1940
(Show Context)
Citation Context ...used as data structures. There are significant reasons for interest in this matter: lambda terms provide a convenient means for representing objects whose structures incorporate the notion of binding =-=[Chu40]-=- and are used for this purpose in a number of computer systems and programming languages that support the manipulation of formulas, programs, proofs and other similar objects [Bru80, CAB + 86, CH88, G... |

720 | A framework for defining logics - Harper, Honsell, et al. - 1993 |

501 | The calculus of constructions - Coquand, Huet - 1988 |

412 | J.-J.: Explicit Substitutions
- Abadi, Cardelli, et al.
- 1991
(Show Context)
Citation Context ...94], we have described a notation for lambda terms called the suspension notation that provides a basis for meeting these various requirements. This notation is similar in spirit to those proposed in =-=[ACCL90]-=- and [Fie90], based on the Categorical Combinators of Curien [Cur86]. It also shares features with data structures that have been used in implementing fi-reduction, most notably those in [AP81]. At a ... |

325 | Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem. Indagationes Mathematicae
- Bruijn
- 1972
(Show Context)
Citation Context ...shares features with data structures that have been used in implementing fi-reduction, most notably those in [AP81]. At a level of detail, the suspension notation uses a scheme suggested by de Bruijn =-=[Bru72]-=- for eliminating variable names from lambda terms. Further, it incorporates a generalized notion of an environment as a mechanism for delaying substitutions. The ability to perform substitutions lazil... |

296 | A logic programming language with lambda-abstraction, function variables, and simple unification
- Miller
- 1991
(Show Context)
Citation Context ...nd other similar objects [Bru80, CAB + 86, CH88, GMW79, HHP93, NM88, Pau90, Pfe89]. In a sense specifically pertinent to this paper, objects are represented directly by lambda terms in systems like Ls=-=[Mil91]-=-, Prolog [NM88], Isabelle [Pau90] and Elf [Pfe89], to be manipulated by some form of higher-order unification [Hue75, Nip93]. The considerations here are motivated by implementation questions that ari... |

188 | Isabelle: The next 700 theorem provers - Paulson - 1990 |

176 |
An overview of Prolog
- Miller, Nadathur
- 1988
(Show Context)
Citation Context ... objects [Bru80, CAB + 86, CH88, GMW79, HHP93, NM88, Pau90, Pfe89]. In a sense specifically pertinent to this paper, objects are represented directly by lambda terms in systems like Ls[Mil91], Prolog =-=[NM88]-=-, Isabelle [Pau90] and Elf [Pfe89], to be manipulated by some form of higher-order unification [Hue75, Nip93]. The considerations here are motivated by implementation questions that arise in the conte... |

173 |
A Unification Algorithm for Typed �-Calculus
- Huèt
- 1975
(Show Context)
Citation Context ...s on the intensions of such terms and the discussions here are therefore relevant in their contexts as well. An operation that is of particular interest to us is that of unifying (typed) lambda terms =-=[Hue75]-=-: this operation is central to Prolog, whose efficient implementation is a major reason for the investigations undertaken here. In its essence, the problem of unifying lambda terms is that of finding ... |

126 | The categorical abstract machine - Cousineau, Curien, et al. - 1985 |

111 | Resolution in type theory - Andrews - 1971 |

103 | Higher-order unification via explicit substitutions
- Dowek, Hardin, et al.
- 2000
(Show Context)
Citation Context ...parisons of terms. Benefits such as these have also been noted for the oe-calculus [ACCL90] and CCL [Fie90] and have been exploited recently in the description of a higher-order unification procedure =-=[DHK95]-=-. The rest of this paper is structured as follows. The next two sections summarize notions pertaining to rewrite systems, the de Bruijn notation and the suspension notation that are relevant to this p... |

94 | A survey of the project Automath - Bruijn - 1980 |

90 |
A Lazy Evaluator
- Henderson, Morris, et al.
- 1976
(Show Context)
Citation Context ...e this by using it to establish the correctness of a particular reduction procedure that we present. This procedure is similar to interpreters for the lambda calculus proposed by Henderson and Morris =-=[HM76]-=- and Field [Fie90]; it differs from these mainly in that it finds head normal forms instead of only weak head normal forms. It is also closely related to the simplifier presented by Aiello and Prini [... |

88 | C.P.: Edinburgh LCF: A Mechanised Logic - Gordon, Milner, et al. - 1979 |

78 | Elf: a language for logic definition and verified metaprogram- ming
- Pfenning
- 1989
(Show Context)
Citation Context ...GMW79, HHP93, NM88, Pau90, Pfe89]. In a sense specifically pertinent to this paper, objects are represented directly by lambda terms in systems like Ls[Mil91], Prolog [NM88], Isabelle [Pau90] and Elf =-=[Pfe89]-=-, to be manipulated by some form of higher-order unification [Hue75, Nip93]. The considerations here are motivated by implementation questions that arise in the context of such systems, particularly i... |

76 | Standard ML
- Harper, Queen, et al.
- 1986
(Show Context)
Citation Context .... To lend concreteness to the syntax of programs, we will use the language SML in this presentation. We assume a basic familiarity with this language, such as that which can be obtained from perusing =-=[Har86]-=-. We adopt the convention below of presenting programs in a typewriter font and of using italicized versions of the names of functions and types in discussions of their properties. The procedure that ... |

63 | Functional unification of higher-order patterns - Nipkow - 1993 |

46 |
On laziness and optimality in lambda interpreters: Tools for specification and analysis
- Field
- 1990
(Show Context)
Citation Context ...described a notation for lambda terms called the suspension notation that provides a basis for meeting these various requirements. This notation is similar in spirit to those proposed in [ACCL90] and =-=[Fie90]-=-, based on the Categorical Combinators of Curien [Cur86]. It also shares features with data structures that have been used in implementing fi-reduction, most notably those in [AP81]. At a level of det... |

33 | A notation for lambda terms: A generalization of environments
- Nadathur, Wilson
- 1998
(Show Context)
Citation Context ...ovides an encoding of substitution and is useful in realizing several higher-level operations. An acceptable representation must enable this operation to be performed efficiently. In a previous paper =-=[NW94]-=-, we have described a notation for lambda terms called the suspension notation that provides a basis for meeting these various requirements. This notation is similar in spirit to those proposed in [AC... |

30 |
A representation of lambda terms suitable for operations on their intensions
- Nadathur, Wilson
- 1990
(Show Context)
Citation Context ...ns permit a convenient implementation of this requirement. Some discussion of this aspect may be found in [NJW93]. Acknowledgements An early presentation of some of the ideas in this paper appears in =-=[NW90]-=-. We acknowledge the input obtained from Debra Wilson at that stage of this work. Useful comments were provided by Dale Miller and a reviewer of an earlier version of this paper. This work has been su... |

25 |
Incremental reduction in the lambda calculus
- Field, Teitelbaum
- 1990
(Show Context)
Citation Context ... 0 must have a value such that i(s 0 ) is a (weak)sarfis -hnf of r. This is also a (weak)sarfis -hnf of s and thus the claim must, once again, be true. 2 It is instructive to compare the procedure in =-=[FT90]-=- to head norm when it attempts only to find weak head normal forms. Ignoring the use of annotations, the main difference between these two procedures is in what they do when a term of the form [[t; ol... |

21 |
Introduction to Combinatory Logic and Lambda Calculus
- Hindley, Seldin
- 1986
(Show Context)
Citation Context ..., then each subterm of t 0 is also a subterm of t. If t is of the form (t 1 t 2 ), then each subterm of t 1 and of t 2 is also a subterm of t. Lambda terms in the notation described, for instance, in =-=[HS86]-=- can be translated into de Bruijn terms by the following process. Let the level of a subterm in a term be the number of abstractions in the term within which the subterm is embedded. Further, assume t... |

18 | Naive reverse can be linear
- Brisset, Ridoux
- 1991
(Show Context)
Citation Context ...pace and can foster a greater sharing of work in a graph-based implementation of reduction that uses our notation. These benefits can be significant in practice, e.g., in the implementation of Prolog =-=[BR91]-=-. This paper also considers the use of the notation developed in the comparison of lambda terms. This task is of special significance to us because it is a part of several operations on lambda terms t... |

14 | Implementation considerations for higher-order features in logic programming
- Nadathur, Jayaraman, et al.
- 1993
(Show Context)
Citation Context ...oof of its correctness. This procedure has been presented recursively here, but it can be easily rendered in a stack-based form. It is, in fact, being used in this form in an implementation of Prolog =-=[NJW93]-=-. The comparison of lambda terms considered in this paper is intrinsic to most other operations on the intensions of such terms and the discussions here are therefore relevant in their contexts as wel... |

8 |
An efficient interpreter for the lambda-calculus
- Aiello, Prini
- 1981
(Show Context)
Citation Context ...d in [ACCL90] and [Fie90], based on the Categorical Combinators of Curien [Cur86]. It also shares features with data structures that have been used in implementing fi-reduction, most notably those in =-=[AP81]-=-. At a level of detail, the suspension notation uses a scheme suggested by de Bruijn [Bru72] for eliminating variable names from lambda terms. Further, it incorporates a generalized notion of an envir... |

1 |
A notation for lambda terms: A generalization of environments. Submitted. Early version appears as
- Nadathur, Wilson
- 1994
(Show Context)
Citation Context ...ovides an encoding of substitution and is useful in realizing several higher-level operations. An acceptable representation must enable this operation to be performed efficiently. In a previous paper =-=[NW]-=-, we have described a notation for lambda terms called the suspension notation that provides a basis for meeting these various requirements. This notation is similar in spirit to those proposed in [AC... |