Results 1  10
of
144
HiLog: A foundation for higherorder logic programming
 JOURNAL OF LOGIC PROGRAMMING
, 1993
"... We describe a novel logic, called HiLog, and show that it provides a more suitable basis for logic programming than does traditional predicate logic. HiLog has a higherorder syntax and allows arbitrary terms to appear in places where predicates, functions and atomic formulas occur in predicate calc ..."
Abstract

Cited by 213 (40 self)
 Add to MetaCart
We describe a novel logic, called HiLog, and show that it provides a more suitable basis for logic programming than does traditional predicate logic. HiLog has a higherorder syntax and allows arbitrary terms to appear in places where predicates, functions and atomic formulas occur in predicate calculus. But its semantics is firstorder and admits a sound and complete proof procedure. Applications of HiLog are discussed, including DCG grammars, higherorder and modular logic programming, and deductive databases.
Higherorder logic programming
 HANDBOOK OF LOGIC IN AI AND LOGIC PROGRAMMING, VOLUME 5: LOGIC PROGRAMMING. OXFORD (1998
"... ..."
Unification under a mixed prefix
 Journal of Symbolic Computation
, 1992
"... Unification problems are identified with conjunctions of equations between simply typed λterms where free variables in the equations can be universally or existentially quantified. Two schemes for simplifying quantifier alternation, called Skolemization and raising (a dual of Skolemization), are pr ..."
Abstract

Cited by 124 (13 self)
 Add to MetaCart
Unification problems are identified with conjunctions of equations between simply typed λterms where free variables in the equations can be universally or existentially quantified. Two schemes for simplifying quantifier alternation, called Skolemization and raising (a dual of Skolemization), are presented. In this setting where variables of functional type can be quantified and not all types contain closed terms, the naive generalization of firstorder Skolemization has several technical problems that are addressed. The method of searching for preunifiers described by Huet is easily extended to the mixed prefix setting, although solving flexibleflexible unification problems is undecidable since types may be empty. Unification problems may have numerous incomparable unifiers. Occasionally, unifiers share common factors and several of these are presented. Various optimizations on the general unification search problem are as discussed. 1.
Unification: A multidisciplinary survey
 ACM Computing Surveys
, 1989
"... The unification problem and several variants are presented. Various algorithms and data structures are discussed. Research on unification arising in several areas of computer science is surveyed, these areas include theorem proving, logic programming, and natural language processing. Sections of the ..."
Abstract

Cited by 103 (0 self)
 Add to MetaCart
The unification problem and several variants are presented. Various algorithms and data structures are discussed. Research on unification arising in several areas of computer science is surveyed, these areas include theorem proving, logic programming, and natural language processing. Sections of the paper include examples that highlight particular uses
The TPTP Problem Library
, 1999
"... This report provides a detailed description of the TPTP Problem Library for automated theorem proving systems. The library is available via Internet, and forms a common basis for development of and experimentation with automated theorem provers. This report provides: ffl the motivations for buildin ..."
Abstract

Cited by 100 (6 self)
 Add to MetaCart
This report provides a detailed description of the TPTP Problem Library for automated theorem proving systems. The library is available via Internet, and forms a common basis for development of and experimentation with automated theorem provers. This report provides: ffl the motivations for building the library; ffl a discussion of the inadequacies of previous problem collections, and how these have been resolved in the TPTP; ffl a description of the library structure, including overview information; ffl descriptions of supplementary utility programs; ffl guidelines for obtaining and using the library; Contents 1 Introduction 2 1.1 Previous Problem Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 What is Required? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Inside the TPTP 6 2.1 The TPTP Domain Structure . . . . . . . . . . . . . . . . . . . . . ...
PROOFS IN HIGHERORDER LOGIC
, 1983
"... Expansion trees are defined as generalizations of Herbrand instances for formulas in a nonextensional form of higherorder logic based on Church’s simple theory of types. Such expansion trees can be defined with or without the use of skolem functions. These trees store substitution terms and either ..."
Abstract

Cited by 71 (13 self)
 Add to MetaCart
Expansion trees are defined as generalizations of Herbrand instances for formulas in a nonextensional form of higherorder logic based on Church’s simple theory of types. Such expansion trees can be defined with or without the use of skolem functions. These trees store substitution terms and either critical variables or skolem terms used to instantiate quantifiers in the original formula and those resulting from instantiations. An expansion tree is called an expansion tree proof (ETproof) if it encodes a tautology, and, in the form not using skolem functions, an “imbedding ” relation among the critical variables be acyclic. The relative completeness result for expansion tree proofs not using skolem functions, i.e. if A is provable in higherorder logic then A has such an expansion tree proof, is based on Andrews ’ formulation of Takahashi’s proof of the cutelimination theorem for higherorder logic. If the occurrences of skolem functions in instantiation terms are restricted appropriately, the use of skolem functions in place of critical variables is equivalent to the requirement that the imbedding relation is acyclic. This fact not only resolves the open question of what
Type Classes and Overloading in HigherOrder Logic
 Theorem Proving in Higher Order Logics: TPHOLs ’97, LNCS 1275
, 1997
"... Type classes and overloading are shown to be independent concepts that can both be added to simple higherorder logics in the tradition of Church and Gordon, without demanding more logical expressiveness. In particular, modeltheoretic issues are not affected. Our metalogical results may serve as a ..."
Abstract

Cited by 69 (7 self)
 Add to MetaCart
Type classes and overloading are shown to be independent concepts that can both be added to simple higherorder logics in the tradition of Church and Gordon, without demanding more logical expressiveness. In particular, modeltheoretic issues are not affected. Our metalogical results may serve as a foundation of systems like Isabelle/Pure that offer the user Haskellstyle ordersorted polymorphism as an extended syntactic feature. The latter can be used to describe simple abstract theories with a single carrier type and a fixed signature of operations.
Programming in an Integrated Functional and Logic Language
, 1999
"... Escher is a generalpurpose, declarative programming language that integrates the best features of both functional and logic programming languages. It has types and modules, higherorder and metaprogramming facilities, concurrency, and declarative input/output. The main design aim is to combine in ..."
Abstract

Cited by 65 (14 self)
 Add to MetaCart
Escher is a generalpurpose, declarative programming language that integrates the best features of both functional and logic programming languages. It has types and modules, higherorder and metaprogramming facilities, concurrency, and declarative input/output. The main design aim is to combine in a practical and comprehensive way the best ideas of existing functional and logic languages, such as Haskell and Godel. In fact, Escher uses the Haskell syntax and is most straightforwardly understood as an extension of Haskell. Consequently, this paper discusses Escher from this perspective. It provides an introduction to the Escher language, concentrating largely on the issue of programming style and the Escher programming idioms not provided by Haskell. Also the extra mechanisms needed to support these idioms are discussed.
Fibring: Completeness Preservation
 Journal of Symbolic Logic
, 2000
"... A completeness theorem is established for logics with congruence endowed with general semantics (in the style of general frames). As a corollary, completeness is shown to be preserved by bring logics with congruence provided that congruence is retained in the resulting logic. The class of logics ..."
Abstract

Cited by 45 (23 self)
 Add to MetaCart
A completeness theorem is established for logics with congruence endowed with general semantics (in the style of general frames). As a corollary, completeness is shown to be preserved by bring logics with congruence provided that congruence is retained in the resulting logic. The class of logics with equivalence is shown to be closed under bring and to be included in the class of logics with congruence. Thus, completeness is shown to be preserved by bring logics with equivalence and general semantics. An example is provided showing that completeness is not always preserved by bring logics endowed with standard (non general) semantics. A categorial characterization of bring is provided using coproducts and cocartesian liftings. 1 Introduction Much attention has been recently given to the problems of combining logics and obtaining transference results. Besides leading to very interesting applications whenever it is necessary to work with dierent logics at the same time, ...
An Algorithm for TypeChecking Dependent Types
 Science of Computer Programming
, 1996
"... We present a simple typechecker for a language with dependent types and let expressions, with a simple proof of correctness. Introduction Type Theory provides an interesting approach to the problem of (interactive) proofchecking. Instead of introducing, like in LCF [10], an abstract data type of t ..."
Abstract

Cited by 44 (4 self)
 Add to MetaCart
We present a simple typechecker for a language with dependent types and let expressions, with a simple proof of correctness. Introduction Type Theory provides an interesting approach to the problem of (interactive) proofchecking. Instead of introducing, like in LCF [10], an abstract data type of theorems, it uses the proofsasprograms analogy and reduces the problem of proof checking to the problem of typechecking in a programming language with dependent types [5]. This approach presents several advantages, well described in [11,5], among those being the possibility of independent proof verification and of a uniform treatment for naming constants and theorems. It is crucial however for this approach to proofchecking to have a simple and reliable typechecking algorithm. Since the core part of such languages, like the ones described in [5,7], seems very simple, there may be some hope for such a short and simple typechecker for dependent types. Indeed, de Bruijn sketches such an al...