Results 1 - 10
of
14
Higher-order logic programming
- HANDBOOK OF LOGIC IN AI AND LOGIC PROGRAMMING, VOLUME 5: LOGIC PROGRAMMING. OXFORD (1998
"... ..."
A Fine-Grained Notation for Lambda Terms and Its Use in Intensional Operations
- Journal of Functional and Logic Programming
, 1996
"... 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 p ..."
Abstract
-
Cited by 22 (8 self)
- Add to MetaCart
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...
Scoping Constructs In Logic Programming: Implementation Problems And Their Solution
, 1995
"... Machine (WAM). The provision of implications in goals results in the possibility of program clauses being added to the program for the purpose of solving specific subgoals. A naive scheme based on asserting and retracting program clauses does not suffice for implementing such additions for two reaso ..."
Abstract
-
Cited by 19 (9 self)
- Add to MetaCart
Machine (WAM). The provision of implications in goals results in the possibility of program clauses being added to the program for the purpose of solving specific subgoals. A naive scheme based on asserting and retracting program clauses does not suffice for implementing such additions for two reasons. First, it is necessary to also support the resurrection of an earlier existing program in the face of backtracking. Second, the possibility for implication goals to be surrounded by quantifiers requires a consideration of the parameterization of program clauses by bindings for their free variables. Devices for supporting these additional requirements are described as also is the integration of these devices into the WAM. Further extensions to the machine are outlined for handling higher-order additions to the language. The ideas Work on this paper has been partially supported by NSF Grants CCR-89-05825 and CCR-- 92-08465. Address correspondence to Gopalan Nadathur, Department of Compute...
Implementation Considerations for Higher-Order Features in Logic Programming
, 1993
"... This paper examines implementation problems that arise from providing for aspects of higher-order programming within and enhancing the meta-language abilities of logic programming. One issue of concern is a representation for the simply-typed lambda terms that replace the usual first-order terms as ..."
Abstract
-
Cited by 14 (10 self)
- Add to MetaCart
This paper examines implementation problems that arise from providing for aspects of higher-order programming within and enhancing the meta-language abilities of logic programming. One issue of concern is a representation for the simply-typed lambda terms that replace the usual first-order terms as data structures; this representation must support an efficient realization of ...-conversion operations on these terms. Another issue is the handling of higher-order unification that becomes an integral part of the computational model. An implementation must cater to the branching nature of this operation and also provide a means for temporarily suspending the solution of a unification problem. A final issue concerns the treatment of goals whose structure is not statically apparent. These problems are discussed in detail and solutions to them are described. A representation for lambda terms is presented that uses the de Bruijn "nameless" notation and also permits reduction substitutions to be performed lazily. This notation obviates ...-conversion and also supports an efficient implementation of ...-reduction. Branching in unification is implemented by using a depth-first search strategy with backtracking. A structure that is called a branch point record and is akin to the choice point record of the Warren Abstract Machine (WAM) is described for remembering alternatives in unification. An explicit representation for unification problems is presented that permits sharing and also supports the rapid reinstatement of earlier versions of the problem. The implementation of unification is tuned to yield an efficient solution to first-order like problems, in fact through the use of compiled code as in the WAM. A compilation method is also discussed for goals whose structure changes during execution. Th...
A Notation for Lambda Terms II: Refinements and Applications
, 1994
"... Issues that are relevant to the representation of lambda terms in contexts where their intensions have to be manipulated are examined. The basis for such a representation is provided by the suspension notation for lambda terms that is described in a companion paper. This notation obviates ff-conver ..."
Abstract
-
Cited by 12 (2 self)
- Add to MetaCart
Issues that are relevant to the representation of lambda terms in contexts where their intensions have to be manipulated are examined. The basis for such a representation is provided by the suspension notation for lambda terms that is described in a companion paper. This notation obviates ff-conversion in the comparison of terms by using the `nameless' scheme of de Bruijn and also permits a delaying of substitutions by including a class of terms that encode other terms together with substitutions to be performed on them. The suspension notation contains a mechanism for `merging' substitutions so that they can be effected in a common structure traversal. The mechanism is cumbersome to implement in its full generality and a simplification to it is considered. In particular, the old merging operations are eliminated in favor of new ones that capture some of their functionality and that permit a simplified syntax for terms. The resulting notation is refined by the addition of annotations ...
Choices in representation and reduction strategies for lambda terms in intensional contexts
- J. Autom. Reasoning
, 2004
"... ..."
Collection analysis for Horn clause programs
- In Proceedings of PPDP 2006: 8th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming
, 2006
"... dale.miller [at] inria.fr ..."
The Architecture of an Implementation of λProlog: Prolog/Mali
, 1992
"... Prolog is a logic programming language accepting a more general clause form than standard Prolog (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λ-terms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goal-directed ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Prolog is a logic programming language accepting a more general clause form than standard Prolog (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λ-terms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goal-directed proofs and can still be given procedural semantics. However, the execution of λProlog programs requires several departures from the standard resolution scheme. First, the augmented clause form causes the program (a set of clauses) and the signature (a set of constants) to be changeable, but in a very disciplined way. Second, the new term domain has a semi-decidable and infinitary unification theory, and it introduces the need for a fi-reduction operation at run-time. MALI is an abstract memory that is suitable for storing the search-state of depth-first search processes. Its main feature is its efficient memory management. We have used an original Prolog-to-C translation: predicates are trans...
Imagining CLP(Λ,≡αβ)
, 1995
"... . We study under which conditions the domain of -terms () and the equality theory of the -calculus (j fffi ) form the basis of a usable constraint logic programming language (CLP). The conditions are that the equality theory must contain axiom j, and the formula language must depart from Horn clause ..."
Abstract
- Add to MetaCart
. We study under which conditions the domain of -terms () and the equality theory of the -calculus (j fffi ) form the basis of a usable constraint logic programming language (CLP). The conditions are that the equality theory must contain axiom j, and the formula language must depart from Horn clauses and accept universal quantifications and implications in goals. In short, CLP(, j fffi ) must be close to Prolog. 1 Introduction Logic programming is a programming paradigm in which programs are logical formulas, and executing them amounts to search for a proof. The most famous practical incarnation of logic programming is Prolog, which is based on Horn formulas [31]. The formalism of Horn programs is computationally complete [1, 49], but one has often tried to augment it to gain more flexibility and expressivity. One of these attempts is the paradigm of constraint logic programming [11, 27, 10, 50]. It amounts to replacing unification of first-order terms, considered as a procedure for s...
Imagining
"... : We study under which conditions the domain of -terms () and the equality theory of the -calculus (j fffi ) form the basis of a usable constraint logic programming language (CLP). The conditions are that the equality theory must contain axiom j, and the formula language must depart from Horn clause ..."
Abstract
- Add to MetaCart
: We study under which conditions the domain of -terms () and the equality theory of the -calculus (j fffi ) form the basis of a usable constraint logic programming language (CLP). The conditions are that the equality theory must contain axiom j, and the formula language must depart from Horn clauses and accept universal quantifications and implications in goals. In short, CLP(, j fffi ) must be close to Prolog. Key-words: CLP, -Calculus, Prolog (R'esum'e : tsvp) ridoux@irisa.fr Unite de recherche INRIA Rennes IRISA, Campus universitaire de Beaulieu, 35042 RENNES Cedex (France) Telephone : (33) 99 84 71 00 -- Telecopie : (33) 99 84 71 71 Imaginons CLP(,j fffi ) R'esum'e : Nous 'etudions sous quelles conditions le domaine des -termes () et la th'eorie de l"egalit'e du -calcul (j fffi ) forment une base utilisable pour un langage de programmation logique par contrainte (CLP). Les conditions sont que la th'eorie de l"egalit'e doit aussi contenir l'axiome j, et le langage de formule...

