## Tradeoffs in the Intensional Representation of Lambda Terms (2002)

Venue: | Rewriting Techniques and Applications (RTA 2002), volume 2378 of LNCS |

Citations: | 10 - 3 self |

### BibTeX

@INPROCEEDINGS{Liang02tradeoffsin,

author = {Chuck Liang and Gopalan Nadathur},

title = {Tradeoffs in the Intensional Representation of Lambda Terms},

booktitle = {Rewriting Techniques and Applications (RTA 2002), volume 2378 of LNCS},

year = {2002},

pages = {192--206},

publisher = {Springer-Verlag}

}

### OpenURL

### Abstract

Higher-order representations of objects such as programs, specifications and proofs are important to many metaprogramming and symbolic computation tasks. Systems that support such representations often depend on the implementation of an intensional view of the terms of suitable typed lambda calculi. Refined lambda calculus notations have been proposed that can be used in realizing such implementations. There are, however, choices in the actual deployment of such notations whose practical consequences are not well understood. Towards addressing this lacuna, the impact of three specific ideas is examined: the de Bruijn representation of bound variables, the explicit encoding of substitutions in terms and the annotation of terms to indicate their independence on external abstractions. Qualitative assessments are complemented by experiments over actual computations using the lambdaProlog language.

### Citations

391 | Explicit substitutions
- Abadi, Cardelli, et al.
- 1991
(Show Context)
Citation Context ...orm using a scheme due to de Bruijn [4]. Similarly, several new notations for the lambda calculus have been described in recent years that have the purpose of making substitutions explicit (e.g., see =-=[1, 3, 10, 1-=-8]). However, the actual manner in which all these devices should be deployed in a practical context is far from clear. In particular, there are tradeos involved with dierent choices and determining t... |

313 | System description: Twelf — a meta-logical framework for deductive systems
- Pfenning, Schürmann
- 1999
(Show Context)
Citation Context ... languages and systems in which it is necessary to examine the structures of such terms during execution. The best known uses of of this kind of lambda terms appears within higher-order metalanguages =-=[16, 21]-=-, logical frameworks [9, 19] and proof development systems [5, 7, 20]. Within these systems and formalisms, the terms of a chosen lambda calculus are used as data structures, with abstraction in these... |

302 | Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem
- Bruijn
- 1972
(Show Context)
Citation Context ...olution to the problem of identifying two lambda terms that dier only in the names chosen for bound variables is, for instance, to transform them into a nameless form using a scheme due to de Bruijn [=-=4]-=-. Similarly, several new notations for the lambda calculus have been described in recent years that have the purpose of making substitutions explicit (e.g., see [1, 3, 10, 18]). However, the actual ma... |

227 | TIL: A TypeDirected Optimizing Compiler for ML
- Tarditi, Morrisett, et al.
- 1996
(Show Context)
Citation Context ..., they are not restricted to only this domain. Recent research on the compilation of functional programming languages has, for example, advocated the preservation of types in internal representations =-=[23]-=-. Typed intermediate languages that utilize this idea [22] naturally call for structural operations on lambda terms during computations. The traditional use of lambda terms as a means for computing pe... |

177 |
An overview of >'Prolog
- Nadathur, Miller
- 1988
(Show Context)
Citation Context ... languages and systems in which it is necessary to examine the structures of such terms during execution. The best known uses of of this kind of lambda terms appears within higher-order metalanguages =-=[16, 21]-=-, logical frameworks [9, 19] and proof development systems [5, 7, 20]. Within these systems and formalisms, the terms of a chosen lambda calculus are used as data structures, with abstraction in these... |

164 |
Isabelle: A generic theorem prover, volume 828
- Paulson
- 1994
(Show Context)
Citation Context ...ctures of such terms during execution. The best known uses of of this kind of lambda terms appears within higher-order metalanguages [16, 21], logical frameworks [9, 19] and proof development systems =-=[5, 7, 20]-=-. Within these systems and formalisms, the terms of a chosen lambda calculus are used as data structures, with abstraction in these terms being used to encode binding notions in objects such as formul... |

98 |
λυ, a calculus of explicit substitutions which preserves strong normalisation
- Benaissa, Briaud, et al.
- 1996
(Show Context)
Citation Context ...orm using a scheme due to de Bruijn [4]. Similarly, several new notations for the lambda calculus have been described in recent years that have the purpose of making substitutions explicit (e.g., see =-=[1, 3, 10, 1-=-8]). However, the actual manner in which all these devices should be deployed in a practical context is far from clear. In particular, there are tradeos involved with dierent choices and determining t... |

80 |
Constable et al. Implementing Mathematics with the NuPRL Proof Development System
- L
- 1986
(Show Context)
Citation Context ...ctures of such terms during execution. The best known uses of of this kind of lambda terms appears within higher-order metalanguages [16, 21], logical frameworks [9, 19] and proof development systems =-=[5, 7, 20]-=-. Within these systems and formalisms, the terms of a chosen lambda calculus are used as data structures, with abstraction in these terms being used to encode binding notions in objects such as formul... |

60 | Implementing typed intermediate languages
- Shao, League, et al.
- 1998
(Show Context)
Citation Context ...arch on the compilation of functional programming languages has, for example, advocated the preservation of types in internal representations [23]. Typed intermediate languages that utilize this idea =-=[22]-=- naturally call for structural operations on lambda terms during computations. The traditional use of lambda terms as a means for computing permits each such term to be compiled into a form whose only... |

57 |
A framework for de logics
- Harper, Honsell, et al.
- 1993
(Show Context)
Citation Context ...ch it is necessary to examine the structures of such terms during execution. The best known uses of of this kind of lambda terms appears within higher-order metalanguages [16, 21], logical frameworks =-=[9, 19]-=- and proof development systems [5, 7, 20]. Within these systems and formalisms, the terms of a chosen lambda calculus are used as data structures, with abstraction in these terms being used to encode ... |

45 |
The Coq proof assistant user’s guide. Rapport technique, Programme 2
- Dowek, Felty, et al.
- 1993
(Show Context)
Citation Context ...ctures of such terms during execution. The best known uses of of this kind of lambda terms appears within higher-order metalanguages [16, 21], logical frameworks [9, 19] and proof development systems =-=[5, 7, 20]-=-. Within these systems and formalisms, the terms of a chosen lambda calculus are used as data structures, with abstraction in these terms being used to encode binding notions in objects such as formul... |

34 |
System description: Teyjus—a compiler and abstract machine based implementation of Lambda Prolog
- Nadathur, Mitchell
- 1999
(Show Context)
Citation Context ...dicult to predict from the usual static descriptions of computations. This paper seeks to illuminate this empirical question. The vehicle for its investigation is the Teyjus implementation of Prolog [=-=1-=-7]. Prolog is a logic programming language that employs lambda terms as a representational device and that, in addition to the usual operations on such terms, uses higher-order unication as a means fo... |

33 | D.S.: A notation for lambda terms: A generalization of environments
- Nadathur, Wilson
- 1998
(Show Context)
Citation Context ...orm using a scheme due to de Bruijn [4]. Similarly, several new notations for the lambda calculus have been described in recent years that have the purpose of making substitutions explicit (e.g., see =-=[1, 3, 10, 1-=-8]). However, the actual manner in which all these devices should be deployed in a practical context is far from clear. In particular, there are tradeos involved with dierent choices and determining t... |

26 |
Extending a -calculus with Explicit Substitution which Preserves Strong Normalisation into a Con Calculus on Open Terms
- Kamareddine, Ros
- 1997
(Show Context)
Citation Context |

25 | A fine-grained notation for lambda terms and its use in intensional operations
- Nadathur
- 1999
(Show Context)
Citation Context ...on c to only those terms that do not have unbound de Bruijn indices in them. It can then be seen that the rewrite rules preserve consistency while also attempting to retain the content in annotations =-=[15]-=-. The ultimate utility of our notation is dependent on its ability to simulate reduction in the lambda calculus. That it is capable of doing this can be seen in two steps [15]. First, underlying every... |

22 |
Higher-order Uni via Explicit Substitutions
- Dowek, Hardin, et al.
- 2000
(Show Context)
Citation Context ...eating these variables as essentiallysrst-order ones whose instantiation can contain free de Bruijn indices provides the basis for lifting higher-order unication to an explicit substitution notation [=-=8]-=-. We comment brie y on this possibility at the end of the paper but do not treat it in any detail here. The correctness of some of our reading rules, in particular, the rules (r8)- (r10), depends on c... |

14 |
Inductive de in the system Coq: Rules and properties
- Paulin-Mohring
- 1993
(Show Context)
Citation Context ...ch it is necessary to examine the structures of such terms during execution. The best known uses of of this kind of lambda terms appears within higher-order metalanguages [16, 21], logical frameworks =-=[9, 19]-=- and proof development systems [5, 7, 20]. Within these systems and formalisms, the terms of a chosen lambda calculus are used as data structures, with abstraction in these terms being used to encode ... |

12 | Compiler Construction in Higher Order Logic Programming
- Liang
- 2002
(Show Context)
Citation Context ...the following programs in this category: { [typeinf ] A program that infers type schemes for ML-like programs based on the Damas-Milner system. { [compiler] A compiler for a small imperative language =-=[1-=-1]. Unrestricted Programs. Programs in this class make essential use of (general) higher-order unication. As such, they tend to involve signicant backtracking and they also encompasss-reduction where ... |

8 |
An efficient interpreter for the lambda-calculus
- Aiello, Prini
- 1981
(Show Context)
Citation Context ...However determining this requires either a traversal of the term being substituted, or an explicit record of the variables that are free in it. An interesting alternative, described, for instance, in =-=[2-=-], is to always perform a renaming and, more signicantly, to fold this into the same structure traversal as that realizing thes-contraction substitution. The above discussion indicates that the additi... |

8 |
Specifying and Debugging Security Protocols via Hereditary Harrop Formulas and λProlog - A Case-study
- Delzanno
- 2001
(Show Context)
Citation Context ...We include two programs from this category: { [quicksort] A standard Prolog implementation of the familiar sorting routine. { [pubkey] An implementation of a public key security protocol described in =-=[-=-6]. This program uses the new scoping devices in Prolog. First-Order Like Unication with Reduction. Genuine lambda terms may appear in programs in this category, but thesesgure mainly in reduction com... |

4 |
Uni under a mixed pre
- Miller
- 1992
(Show Context)
Citation Context ... and they also encompasss-reduction where the arguments of redexes are complex terms. The programs tested in this category are the following: { [hilbert] A Prolog encoding of Hilbert's Tenth Problem [=-=13-=-]. { [funtrans] A transformer of functional programs [14]. 7 The Teyjus system used in our experiments is an abstract machine and compiler based implementation of Prolog. It uses a low-level encoding ... |

3 |
A logic programming language with -abstraction, function variables and simple unification
- Miller
- 1991
(Show Context)
Citation Context ...other related systems such as Elf and Isabelle. Programs in this class use a controlled form of reduction|the argument of a redex is always a constant|and a restricted form of higher-order unication [=-=12]-=-. We test the following programs in this category: { [typeinf ] A program that infers type schemes for ML-like programs based on the Damas-Milner system. { [compiler] A compiler for a small imperative... |

2 |
Automating functional program transformation. MSc Thesis
- Mottl
- 2000
(Show Context)
Citation Context ...of redexes are complex terms. The programs tested in this category are the following: { [hilbert] A Prolog encoding of Hilbert's Tenth Problem [13]. { [funtrans] A transformer of functional programs [=-=14-=-]. 7 The Teyjus system used in our experiments is an abstract machine and compiler based implementation of Prolog. It uses a low-level encoding of the terms in the annotated suspension notation. The u... |