Results 1  10
of
17
HigherOrder Horn Clauses
 JOURNAL OF THE ACM
, 1990
"... A generalization of Horn clauses to a higherorder logic is described and examined as a basis for logic programming. In qualitative terms, these higherorder Horn clauses are obtained from the firstorder ones by replacing firstorder terms with simply typed #terms and by permitting quantification ..."
Abstract

Cited by 62 (19 self)
 Add to MetaCart
A generalization of Horn clauses to a higherorder logic is described and examined as a basis for logic programming. In qualitative terms, these higherorder Horn clauses are obtained from the firstorder ones by replacing firstorder terms with simply typed #terms and by permitting quantification over all occurrences of function symbols and some occurrences of predicate symbols. Several prooftheoretic results concerning these extended clauses are presented. One result shows that although the substitutions for predicate variables can be quite complex in general, the substitutions necessary in the context of higherorder Horn clauses are tightly constrained. This observation is used to show that these higherorder formulas can specify computations in a fashion similar to firstorder Horn clauses. A complete theorem proving procedure is also described for the extension. This procedure is obtained by interweaving higherorder unification with backchaining and goal reductions, and constitutes a higherorder generalization of SLDresolution. These results have a practical realization in the higherorder logic programming language called λProlog.
A Logic Programming Approach To Manipulating Formulas And Programs
 IEEE Symp. Logic Programming
, 1994
"... : Firstorder Horn clause logic can be extended to a higherorder setting in which function and predicate symbols can be variables and terms are replaced with simply typed terms. For such a logic programming language to be complete in principle, it must incorporate higherorder unification. Althoug ..."
Abstract

Cited by 49 (14 self)
 Add to MetaCart
: Firstorder Horn clause logic can be extended to a higherorder setting in which function and predicate symbols can be variables and terms are replaced with simply typed terms. For such a logic programming language to be complete in principle, it must incorporate higherorder unification. Although higherorder unification is more complex than usual firstorder unification, its availability makes writing certain kinds of programs far more straightforward. In this paper, we present such programs written in a higherorder version of Prolog called Prolog. These programs manipulate structures, such as formulas and programs, which contain abstractions or bound variables. We show how a simple natural deduction theorem prover can be implemented in this language. Similarly we demonstrate how several simple program transformers for a functional programming language can be written in Prolog. These Prolog programs exploit the availability of conversion and higherorder unification to elegantly ...
Extensions and Applications of Higherorder Unification
, 1990
"... ... unification problems. Then, in this framework, we develop a new unification algorithm for acalculus with dependent function (II) types. This algorithm is especially useful as it provides for mechanization in the very expressive Logical Framework (LF). The development (objectlanguages). The ric ..."
Abstract

Cited by 25 (1 self)
 Add to MetaCart
... unification problems. Then, in this framework, we develop a new unification algorithm for acalculus with dependent function (II) types. This algorithm is especially useful as it provides for mechanization in the very expressive Logical Framework (LF). The development (objectlanguages). The rich structure of a typedcalculus,asopposedtotraditional,rst generalideaistouseacalculusasametalanguageforrepresentingvariousotherlanguages thelattercase,thealgorithmisincomplete,thoughstillquiteusefulinpractice. Thelastpartofthedissertationprovidesexamplesoftheusefulnessofthealgorithms.The algorithmrstfordependentproduct()types,andsecondforimplicitpolymorphism.In involvessignicantcomplicationsnotarisingHuet'scorrespondingalgorithmforthesimply orderabstractsyntaxtrees,allowsustoexpressrules,e.g.,programtransformationand typedcalculus,primarilybecauseitmustdealwithilltypedterms.Wethenextendthis Wecanthenuseunicationinthemetalanguagetomechanizeapplicationoftheserules.
Extending definite clause grammars with scoping constructs
 7th Int. Conf. Logic Programming
, 1990
"... Definite Clause Grammars (DCGs) have proved valuable to computational linguists since they can be used to specify phrase structured grammars. It is well known how to encode DCGs in Horn clauses. Some linguistic phenomena, such as fillergap dependencies, are difficult to account for in a completely ..."
Abstract

Cited by 25 (4 self)
 Add to MetaCart
Definite Clause Grammars (DCGs) have proved valuable to computational linguists since they can be used to specify phrase structured grammars. It is well known how to encode DCGs in Horn clauses. Some linguistic phenomena, such as fillergap dependencies, are difficult to account for in a completely satisfactory way using simple phrase structured grammar. In the literature of logic grammars there have been several attempts to tackle this problem by making use of special arguments added to the DCG predicates corresponding to the grammatical symbols. In this paper we take a different line, in that we account for fillergap dependencies by encoding DCGs within hereditary Harrop formulas, an extension of Horn clauses (proposed elsewhere as a foundation for logic programming) where implicational goals and universally quantified goals are permitted. Under this approach, fillergap dependencies can be accounted for in terms of the operational semantics underlying hereditary Harrop formulas, in a way reminiscent of the treatment of such phenomena in Generalized Phrase Structure Grammar (GPSG). The main features involved in this new formulation of DCGs are mechanisms for providing scope to constants and program clauses along with a mild use of λterms and λconversion. 1
Backtrackable State with Linear Assumptions, Continuations and Hidden Accumulator Grammars
"... A set of executable specifications and efficient implementations of backtrackable state persisting over the current ANDcontinuation is investigated. At specification level, our primitive operations are a variant of linear and intuitionistic implications, having as consequent the current continuati ..."
Abstract

Cited by 18 (11 self)
 Add to MetaCart
A set of executable specifications and efficient implementations of backtrackable state persisting over the current ANDcontinuation is investigated. At specification level, our primitive operations are a variant of linear and intuitionistic implications, having as consequent the current continuation. On top of them, we introduce a form of hypothetical assumptions which use no explicit quantifiers and have an easy and efficient implementation on top of logic programming systems featuring backtrackable destructive assignment, global variables and simple specifications in term of translation to sideeffect free Prolog. A variant of Extended DCGs handling multiple streams without the need of a preprocessing technique, Hidden Accumulator Grammars (HAGs), are specified in terms of linear assumptions. For HAGs, efficiency comparable to that of preprocessing techniques is obtained through a WAMlevel implementation of backtrackable destructive assignment, supporting nondeterministic execut...
HigherOrder and Modal Logic as a Framework for ExplanationBased Generalization
, 1989
"... Logic programming provides a uniform framework in which all aspects of explanationbased generalization and learning may be defined and carried out, but firstorder Horn logic is not well suited to application domains such as theorem proving or program synthesis where functions and predicates are th ..."
Abstract

Cited by 16 (6 self)
 Add to MetaCart
Logic programming provides a uniform framework in which all aspects of explanationbased generalization and learning may be defined and carried out, but firstorder Horn logic is not well suited to application domains such as theorem proving or program synthesis where functions and predicates are the objects of computation. We explore the use of a higherorder representation language and extend EBG to a higherorder logic programming language. Variables may now range over functions and predicates, which leads to an expansion of the space of possible generalizations. We address this problem by extending the logic with the modal ⊔ ⊓ operator (indicating necessary truth) which leads to the language λ ⊔ ⊓ Prolog. We develop a metainterpreter realizing EBG for λ ⊔ ⊓ Prolog and give some examples in an expanded version of this extended abstract which is available as a technical report [2]. 1
Implementation Considerations for HigherOrder Features in Logic Programming
, 1993
"... This paper examines implementation problems that arise from providing for aspects of higherorder programming within and enhancing the metalanguage abilities of logic programming. One issue of concern is a representation for the simplytyped lambda terms that replace the usual firstorder terms as ..."
Abstract

Cited by 14 (10 self)
 Add to MetaCart
This paper examines implementation problems that arise from providing for aspects of higherorder programming within and enhancing the metalanguage abilities of logic programming. One issue of concern is a representation for the simplytyped lambda terms that replace the usual firstorder terms as data structures; this representation must support an efficient realization of ...conversion operations on these terms. Another issue is the handling of higherorder 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 depthfirst 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 firstorder 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...
From ContextFree To DefiniteClause Grammars: A TypeTheoretic Approach
, 1993
"... This paper is concerned with the problem of inferring semantics of a language from examples, assuming that we are already given its syntax. More precisely, we assume that the syntax is given using an unambiguous contextfree grammar, although the proposed techniques also apply to certain attribute g ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
This paper is concerned with the problem of inferring semantics of a language from examples, assuming that we are already given its syntax. More precisely, we assume that the syntax is given using an unambiguous contextfree grammar, although the proposed techniques also apply to certain attribute grammars where the attributes specify contextsensitive features. Our goal is to develop a system that will take as input an unambiguous contextfree grammar (CFG) and a finite set of pairs
Encoding Generic Judgments
 In Proceedings of FSTTCS. Number 2556 in LNCS
, 2002
"... The operational semantics of a computation system is often presented as inference rules or, equivalently, as logical theories. Specifications can be made more declarative and highlevel if syntactic details concerning bound variables and substitutions are encoded directly into the logic using te ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
The operational semantics of a computation system is often presented as inference rules or, equivalently, as logical theories. Specifications can be made more declarative and highlevel if syntactic details concerning bound variables and substitutions are encoded directly into the logic using termlevel abstractions (#abstraction) and prooflevel abstractions (eigenvariables). When one wishes to reason about relations defined using termlevel abstractions, generic judgment are generally required.
From Assumptions to Meaning
"... Introduction In human communication, assumptions play a central role. Linguists and logicians have uncovered their many facets. For instance, the assumption of a looking glass' existence and unicity in "The looking glass is turning into a mist now" is called a presupposition; the assumption that a ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Introduction In human communication, assumptions play a central role. Linguists and logicians have uncovered their many facets. For instance, the assumption of a looking glass' existence and unicity in "The looking glass is turning into a mist now" is called a presupposition; the assumption that a polite request, rather than a literal question, will be "heard" in "Can you open the door?" is an implicature. Much of AI work is also concerned with the study of assumptions in one form or another: abductive reasoning "infers" (assumes) p from q given that p ) q; uncertain information with high probability is used (assumed) in some frameworks, and so on. Recently, systems for hypothetical reasoning that extend the capabilities of deductive databases have been studied e.g [4] and in the area of logic programming, assumptions have also been widely used, most notably for default reasoning (e