Download:
|
by Gopalan Nadathur
Journal of Functional and Logic Programming
ftp://ftp.cs.uchicago.edu/pub/publications/tech-reports/TR-96-13.ps
Add To MetaCart
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 and comparison of terms is examined. Notions of head normal forms and head reduction sequences are defined in its context and shown to be useful in equality computations. Our head reduction sequences generalize the usual ones for lambda terms so that they subsume the sequences of terms produced by a variety of graph- and environment-based reduction procedures for the lambda calculus. They can therefore be used in correctness arguments for such procedures. This fact and the efficacy of our notation are illustrated in the context of a particular reduction procedure that we present. The relevance of the present discussions to the unification of lambda terms is also outlined. 1
Citations
|
916
|
The Lambda-Calculus: its Syntax and Semantics
– Barendregt
- 1984
|
|
621
|
A formulation of the simple theory of types, The
– Church
- 1940
|
|
553
|
A framework for defining logics
– Harper, Honsell, et al.
- 1993
|
|
380
|
The calculus of constructions
– Coquand, Huet
- 1988
|
|
341
|
Explicit substitutions
– Abadi, Cardelli, et al.
- 1990
|
|
268
|
A logic programming language with lambda-abstraction, function variables, and simple unification
– Miller
- 1991
|
|
233
|
Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser Theorem
– Bruijn
- 1972
|
|
192
|
An overview of Prolog
– Nadathur, Miller
- 1988
|
|
179
|
A unification algorithm for typed *-calculus
– Huet
- 1975
|
|
159
|
Isabelle: The Next 700 Theorem Provers
– Paulson
- 1990
|
|
119
|
The categorical abstract machine
– Cousineau
- 1990
|
|
96
|
A survey of the project Automath
– Bruijn
- 1980
|
|
74
|
Higher-order unification via explicit substitutions
– Dowek, Hardin, et al.
- 1995
|
|
72
|
Resolution in type theory, The
– Andrews
- 1971
|
|
72
|
Elf: A language for logic definition and verified metaprogramming
– Pfenning
- 1989
|
|
71
|
Edinburgh LCF: a Mechanised Logic
– Gordon, Milner, et al.
- 1979
|
|
70
|
Introduction to Standard ML
– Harper
- 1986
|
|
60
|
A lazy evaluator
– Henderson, Morris
- 1976
|
|
49
|
Functional unification of higher-order patterns
– Nipkow
- 1993
|
|
45
|
On Laziness and Optimality in Lambda Interpreters: Tools for Specification and Analysis
– Field
- 1990
|
|
36
|
A representation of lambda terms suitable for operations on their intensions
– Nadathur, Wilson
- 1990
|
|
30
|
A notation for lambda terms: A generalization of environments
– Nadathur, Wilson
- 1998
|
|
24
|
Incremental reduction in the lambda calculus
– Field, Teitelbaum
- 1990
|
|
22
|
Naive reverse can be linear
– Brisset, Ridoux
- 1991
|
|
18
|
Introduction to Combinatory Logic and Lambda Calculus
– Hindley, Seldin
- 1986
|
|
16
|
Implementation considerations for higher-order features in logic programming
– Nadathur, Jayaraman, et al.
- 1993
|
|
7
|
An efficient interpreter for the lambda-calculus
– Aiello, Prini
- 1981
|
|
1
|
A notation for lambda terms: A generalization of environments. Submitted. Early version appears as
– Nadathur, Wilson
- 1994
|