| Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In M. Wand, editor, Proceedings of the 1990. |
....of object and metaobject assumptions and discussions. Some of them tend to studying the types as objects with rather restrictive logical positions, even for calculi [AC96] Bar92] BC93] Cou99] Weaker frameworks and constructions by the computational means are used in [dB91] EP91] FPT99] [NW90] [Pfe00] Nevertheless, the initial notion of an object and concept became overloaded by the mismeaning and not signi cant features. Every new research in the area added the excessive troubles to understand the clear sense and meaning of the concept paradigm. The attempts to build a transparent ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In M. Wand, editor, Proceedings of the
....in [38] and [23] In [22] Huet successfully formulated a practical higher order uni cation method, speci cally for the typed calculus. Since then several Higher Order Uni cation (HOU) approaches have been developed and used in practical languages and theorem provers such as prolog and Isabelle [35, 37]. In most of these approaches, the notion of substitution plays an important role. The importance of the notion of substitution led to an explosion of work on making substitutions explicit in recent years [1, 7, 24, 26, 19, 9, 21] Moreover, a number of works have been devoted to establishing the ....
G. Nadathur and D. S. Wilson. A representation of lambda terms suitable for operations on their intentions. Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 341-348, 1990.
.... successfully formulate a uni cation method for the case of higher order logics, speci cally for the typed calculus, was Huet [Hue75] Since then several Higher Order Uni cation (HOU) approaches have been developed and used in practical languages and theorem provers such as prolog and Isabelle ([NW90,Pau90]) In most of these approaches, the notion of substitution plays an important role. The importance of the notion of substitution led to an explosion of work on expliciting substitutions in recent years [ACCL91,BBLRD96,KN93,KR95,FKP96,Blo97,Gui99b] Also, a number of work has been devoted to ....
G. Nadathur and D. Wilson. A representation of lambda terms suitable for operations on their intentions. Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 341-348, 1990.
....and Nadathur, and the second one, eLP, by the Ergo Project at Carnegie Mellon University, were far from being able to compete with Prolog. Since then, a few teams have worked on the implementation of Prolog. As far as we know 1 , current teams are Nadathur, Kwon and Wilson at Duke University [20, 19, 34], Jayaraman at the University of Buffalo (formerly with Nadathur) Elliott and Pfenning at CMU [11] Felty and Gunter at Bell Labs, and the authors at Inria. Other works are done in a similar framework for integrating linear logic and logic programming (Pareschi and Andreoli [4] Hodas and Miller ....
G. Nadathur and D.S. Wilson. A representation of lambda terms suitable for operations on their intensions. In ACM Conf. Lisp and Functional Programming, pages 341--348, ACM Press, Nice, France, 1990.
....in compilation. Novel monad structures are described for lazy function lists, clause unfoldings and a monad morphism based embedding of an Prolog in Prolog is given. In the examples that follow we will not limit ourself to Prolog but refer most of the time to its more powerful superset Prolog [7, 8, 14, 13] (in its Prolog Mali incarnation [5, 2] which has been used to run all the programming examples) The paper is organized as follows: we start by describing some monads for elementary data structures the (lists, lazy function lists etc. and monad morphisms. After that, we describe how to ....
G. Nadathur and D. Wilson. A representation of lambda terms suitable for operations on their intensions. In ACM Conf. Lisp and Functional Programming, pages 341--348, Nice, France, 1990. ACM Press.
....Wadsworth [25] But we require even more sharing. The similar terms obtained by applying a term to different arguments should retain as much sharing as possible. Therefore some intelligent implementation of higherorder terms within the metalanguage such as Teyjus s use of explicit substitutions [16, 17] seems essential. Perhaps even a more sophisticated representation such as optimal reductions [9, 3] would be useful. 10 Programming the prover In this paper, we have concentrated on an encoding of the logic used for proof checking. But of course, we will also need to construct proofs. For ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proc. 1990 ACM Conf. on Lisp and Functional Programming, pages 341--348. ACM Press, 1990.
....of a. Indeed fn=bg replaces n by b and decrements by 1 all the free indices that refer to an element of the referential greater than n. So we do not define a general notion of simultaneous substitution fn=b; m=cg as the decrementing effect of such a substitution would be more technical (see [40] and the full papers [39, 41] for a complet development of this idea) The simultaneous substitution which can be easily defined is the substitution of an initial segment of the natural numbers f1=a 1 ; 2=a 2 ; n=ang. In this case all the other indices in the term have to be decremented by ....
G. Nadathur and D. S. Wilson, A representation of lambda terms suitable for operations on their intensions, in Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, ACM Press, 1990, pp. 341--348.
....version of (Dowek et al. 1999) and builds upon (Dowek et al. 1995) and (Dowek et al. 1998) we give a new rst order presentation of higher order logic called HOL . It uses the fact already noticed by several authors that explicit substitutions simplify algorithms and speed up implementations (Nadathur and Wilson, 1990; Magnusson, 1994; Dowek et al. 1995; Dowek et al. 1996; Mu noz, 1997b; Nadathur and Wilson, 1998) Making at work the calculus of explicit substitutions de ned and studied in (Abadi et al. 1991; Curien et al. 1996) we rst de ne HOL and show that it is intentionally equivalent to the ....
Nadathur, G. and Wilson, D. S. (1990). A representation of lambda terms suitable for operations on their intensions. In Wand, M., editor, Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 341-348. ACM, ACM Press.
.... tactics can be replaced by the notion of incomplete proofs, which are believed to need explicit substitutions [Mu n97c, Mu n96, Mu n97a, Mu n98, Mag95] Similarly, the area of implementations of functional and logic languages has witnessed an important research in explicit substitutions, e.g. [Ben97, NW90, DHK95]. The last fteen years have seen an increasing interest in formalising substitution explicitly; various calculi including new operators to denote substitution have been proposed. Amongst these calculi we mention C [dB78] the calculi of categorical combinators [Cur86] ACCL91] ....
G. Nadathur and D. Wilson. A representation of lambda terms suitable for operations on their intentions. Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 341-348, 1990.
....Miller and Nadathur, and the second one, eLP, by the Ergo Project at Carnegie Mellon University, were far from being able to compete with Prolog. Since then, a few teams have worked on the implementation of Prolog. As far as we know, current teams are Nadathur, Kwon and Wilson at Duke University [22, 21, 36], Jayaraman at the University of Buffalo (formerly with Nadathur) Elliott and Pfenning at CMU [14] Felty and Gunter at Bell Labs, and the authors at Inria. Other works are done in a similar framework for integrating linear logic and logic programming (Pareschi and Andreoli [3] Hodas and Miller ....
G. Nadathur and D.S. Wilson. A representation of lambda terms suitable for operations on their intensions. In ACM Conf. Lisp and Functional Programming, pages 341--348, ACM Press, 1990.
....of design mistakes which are still part of the current eLP implementation which we chose not to expose here. 40 We expect that the next set of signi cant improvements in the implementation techniques for Prolog and related languages will come from a more economical representation of terms [26] and the development of compilation technology [24] We conclude with the remark that the complete Standard ML code for all versions of the interpreter discussed here including a modest front end are available via ftp over the Internet. 13 ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proceedings of the 1990 Conference on Lisp and Functional Programming. ACM Press, June 1990. To appear.
....for which the reduction takes n 2 steps when sharing hnf s whereas it takes only n steps using standard wh reduction. It is also shown that this is the worst case. Conclusion 15 7 Conclusion Implementation of head and strong reduction has also been studied by Crgut [4] and Nadathur and Wilson [13]. Crgut s abstract machine is based on De Bruijn s notation. Two versions have been developed. The first one evaluates the head or full normal form of the global expression. The second one implements a spine strategy and shares head normal forms. Terms are extended with formal variables and the ....
....variables and the machine state includes two indexes. One plays the role of our binder level as in section 3 and 4, the other one is needed (only in the second version of the machine) to deal with the problem of free variables in subexpressions exposed in section 6.2. The algorithm presented in [13] was motivated by the implementation of lProlog [14] It evaluates terms to hnf and expressed as an abstract machine, this technique resembles Crgut s. It is also based on De Bruijn notation and the machine state includes two indexes. We described in this paper how to use cps conversion to compile ....
[Article contains additional citation context not shown here]
G. Nadathur and D.S.Wilson. A representation of lambda terms suitable for operations on their intensions, In Proc. of the ACM Conf. on Lisp and Functional Programming, pp. 341-348, 1990.
....When the goal is to evaluate whnf s more efficiently by sharing hnf s then such examples should be avoided using analyses or (maybe more pragmatically) using user s annotations. 7 Conclusion Implementation of head and strong reduction has also been studied by Crgut [5] and Nadathur and Wilson [14]. Crgut s abstract machine is based on De Bruijn s notation. Two versions have been developed. The first one evaluates the head or full normal form of the global expression. The second one implements a spine strategy and shares head normal forms. Terms are extended with formal variables and the ....
....variables and the machine state includes two indexes. One plays the role of our binder level as in section 3 and 4, the other one is needed (only in the second version of the machine) to deal with the problem of free variables in subexpressions as exposed in section 6.2. The algorithm presented in [14] was motivated by the implementation of lProlog [15] It evaluates terms to hnf and, expressed as an abstract machine, this technique resembles Crgut s. It is also based on De Bruijn notation and the machine state includes two indexes. We described in this paper how to use cps conversion to ....
[Article contains additional citation context not shown here]
G. Nadathur and D.S.Wilson. A representation of lambda terms suitable for operations on their intensions, In Proc. of the ACM Conf. on Lisp and Functional Programming, pp. 341-348, 1990.
....Wadsworth [19] But we require even more sharing. The similar terms obtained by applying a term to different arguments should retain as much sharing as possible. Therefore some intelligent implementation of higherorder terms within the metalanguage such as Teyjus s use of explicit substitutions [10, 11] seems essential. Programming the prover. In this paper, we have concentrated on an encoding of the logic used for proof checking. But of course, we will also need to construct proofs. For the proof carrying code application, we need an automatic theorem prover to prove the safety of programs. ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proc. 1990 ACM Conf. on Lisp and Functional Programming, pages 341--348. ACM Press, 1990.
....would involve: 1) calculating the hash code from its descendants; 2) look up the hash table, if it is already in, we are done; otherwise, calculate the auxinfo, and install the new icell into the hash table. Finally, to make type reduction lazy, we use Nadathur s suspension notations [24, 25] to represent the intermediate result of unevaluated type applications. Intuitively, a type suspension such as LTENV(t; i; j; e) is a quadruple consisting of a term t with two indices and an environment. The first index i indicates an embedding level with respect to which variable references ....
....suspension such as LTENV(t; i; j; e) is a quadruple consisting of a term t with two indices and an environment. The first index i indicates an embedding level with respect to which variable references have been determined within the term, and the second index j indicates a new embedding level [25]. The environment e determines the bindings for the type variables. Figure 3 gives parts of the definitions of FLINT kind (tkind) constructor (tyc) and type (lty) using SML datatype definitions. Here, constructor abstraction TCFN and polymorphic type LTPOLY all abstract or quantify over a list ....
G. Nadathur and D. S. Wilson. A representation of lambda terms suitable for operations on their intensions. In 1990 ACM Conference on Lisp and Functional Programming, pages 341--348, New York, June 1990. ACM Press.
....not occur in ordinary Prolog programs, such as types, variable binding constructs for terms, embedded implication and universal quantification, or dependent types and explicit construction of proofs. Some initial work on compiler design for higher order logic programming languages can be found in [11, 16, 18, 19] 2 . At the same time, the language design process for such languages is far from complete. Extensions [2, 7] as well as restrictions [14] of Prolog have been proposed to increase its expressive power or simplify the language theory or its implementation. Obviously, further language design and ....
....using Elf code if the L restriction had been applied. Moreover, the relative frequency of parameter substitution suggests that it is crucial for it to be highly efficient, while general substitution is somewhat less critical. A proposal regarding efficient implementation of terms has been made in [18]. For our study we eliminated substitutions which arose due to clause copying and during type reconstruction, since these are residuals effects of the interpreter and would most likely be eliminated in any reasonable compiler. Unification and Constraint Satisfaction. We measure various aspects of ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proceedings of the 1990 Conference on Lisp and Functional Programming, pages 341--348. ACM Press, June 1990.
....of the Girard Reynolds polymorphic calculus, F [9, 25] so functor specialization is just type application in F . This is not supported in any of the other three compilers. ffl Fourth, FLINT ML uses several techniques such as hash consing, memoization, and Nadathur s suspension based calculus [23, 24] to optimize the representation of its typed intermediate format. The new representation can reduce the cost of type manipulations thus improving the compilation time. The rest of this paper gives a brief overview of these innovative aspects. The FLINT ML compiler is being developed based on the ....
....representation would involve: 1) calculating the hash code from its descendants; 2) look up the hash table, if it is already in, we are done; otherwise, calculate the auxinfo, and install the new icell into the hash table. ffl To make type reduction lazy, we use Nadathur s suspension notations [23, 24] to represent the intermediate result of unevaluated type applications. Intuitively, a type suspension such as LTENV(t; i; j; e) is a quadruple consisting of a term t with two indices and an environment. The first index i indicates an embedding level with respect to which variable references have ....
[Article contains additional citation context not shown here]
G. Nadathur and D. S. Wilson. A representation of lambda terms suitable for operations on their intensions. In 1990 ACM Conference on Lisp and Functional Programming, pages 341--348, New York, June 1990. ACM Press.
....substituted for by one and adding an identity substitution for the variable with index 1. Further, the indices of the free variables in the terms that appear in the environment must themselves be incremented by one. The problems described above can be overcome by using the notation developed in [33, 34, 35], and we use this notation in our implementation. The main novelty of this notation is the addition of a new category to terms that is called a suspension. In an informal sense, a suspension represents a skeletal term together with a suspended substitution. The precise syntax for lambda terms ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proceedings of the 1990.
....In providing a robust and ecient implementation for Prolog, three aspects that are novel to this language have to be dealt with: its higher order features, its new search primitives and its typing regimen. The ideas discussed in this paper complement work pertaining to the rst two aspects [10, 16, 17, 18, 21] and play a central role in an implementation that is being developed for this language. Despite the speci c context of interest, we focus in this paper on a (typed) rst order sublanguage of Prolog. We make this choice so as to simplify the presentation, the higher order features of the ....
....original motivation for this work was that of implementing the higher order language called Prolog. The ideas presented here are in fact employed more or less directly in an abstract machine that we have devised for this language that also incorporates devices for handling higher order features [16, 18, 21] and for implementing scoping constructs in logic programming [10, 17] An emulator for this machine is currently being implemented and we believe that this e ort will provide a practical vindication for the ideas described in this paper. 8 Acknowledgements We are grateful to Bharat Jayaraman ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proceedings of the 1990.
....with the above strategy, this paper discusses implementation methods for one of the new features in Prolog, namely, the provision of implications and universal quantifiers in goals. It complements, in this respect, other work that we have done concerning the treatment of higher order aspects [19, 22] and types [10] The particular enrichment considered here is of interest in its own right; as one instance, permitting implications and universal quantifiers in goals provides the basis for scoping constructs in a language such as Prolog [2] From the perspective of an implementation, the ....
....objective of our work is to provide an implementation of a typed higher order version of this logic. Substantial progress has been made towards this end. The ideas presented here have been combined with other mechanisms that have been designed to deal with types [10] and higher order aspects [19, 22], resulting in an abstract machine for the larger language. The task of realizing this machine in code is currently underway. Acknowledgements All three authors received support for their work on this paper from NSF grant CCR 89 05825. Nadathur also received support from Army Research Office ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 341--348. ACM Press, 1990.
....as observed in Lemma 8.4, the rules for merging environments can be omitted from our system without losing the ability to simulate fi reduction. A similar observation cannot be made about the other systems being discussed. 6 5 The ideas described here are an outgrowth of those contained in [NW90] The present exposition of these ideas has, however, been influenced by [ACCL90] 6 We note in this context that the remark in [ACCL90] to the effect that the rule for merging environments (labelled 42 The second respect in which our notation differs from the ones in [ACCL90] and [Fie90] is ....
....underlies the implementation that is being developed for Prolog [NJW93] Acknowledgements We are grateful to P. L. Curien for his comments on an earlier version of this paper. Comments provided by John Hannan and an anonymous reviewer on an early presentation of the ideas in this paper in [NW90] helped in making us aware of related research. The first author also acknowledges the stimulus received from Mike O Donnell and his students by their participation in a presentation of these ideas in Spring 1991. Work on this paper has been supported by NSF grants CCR 89 05825 and CCR 92 08465. ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 341--348. ACM Press, 1990.
....substituted for by one and adding an identity substitution for the variable with index 1. Further, the indices of the free variables in the terms that appear in the environment must themselves be incremented by one. The problems described above can be overcome by using the notation developed in [33, 34, 35], and we use this notation in our implementation. The main novelty of this notation is the addition of a new category to terms that is called a suspension. In an informal sense, a suspension represents a skeletal term together with a suspended substitution. The precise syntax for lambda terms ....
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 341--348. ACM Press, 1990.
No context found.
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In M. Wand, editor, Proceedings of the 1990.
No context found.
Gopalan Nadathur and Debra Sue Wilson. A representation of lambda terms suitable for operations on their intensions. In M. Wand, editor, Proceedings of the 1990.
No context found.
G. Nadathur and D. S. Wilson. A representation of lambda terms suitable for operations on their intentions. Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 341-348, 1990.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC