## HiLog: A foundation for higher-order logic programming (1993)

Venue: | JOURNAL OF LOGIC PROGRAMMING |

Citations: | 213 - 40 self |

### BibTeX

@ARTICLE{Chen93hilog:a,

author = {Weidong Chen and Michael Kifer and David S. Warren},

title = {HiLog: A foundation for higher-order logic programming},

journal = {JOURNAL OF LOGIC PROGRAMMING},

year = {1993},

volume = {15},

number = {3},

pages = {187--230}

}

### Years of Citing Articles

### OpenURL

### Abstract

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 higher-order syntax and allows arbitrary terms to appear in places where predicates, functions and atomic formulas occur in predicate calculus. But its semantics is first-order and admits a sound and complete proof procedure. Applications of HiLog are discussed, including DCG grammars, higher-order and modular logic programming, and deductive databases.

### Citations

852 |
A formulation of the simple theory of types
- Church
- 1940
(Show Context)
Citation Context ...s higher-order logic programming. From the outset, even the terminology of "higher-orderness" seems ill-defined. A number of works have proposed various higher-order constructs in the logic =-=framework [1, 5, 13, 7, 23, 24, 30, 31, 42, 45]-=- but with such a diversity of syntax and semantics, it is not always clear what kind of higher-orderness is being claimed. In our opinion, there are at least two different facets to the issue: a highe... |

766 | Logical foundations of object-oriented and frame-based languages
- Kifer, Lausen, et al.
- 1995
(Show Context)
Citation Context ...ct of data inconsistency. Translation of O-logic into predicate calculus is just a shade more complex; it additionally requires axiomatization of functional attributes and data inconsistency. F-logic =-=[24, 25]-=- takes object-oriented logics to a new dimension by introducing higher-orderness with a first-order semantics, in the same spirit as HiLog. Although it can be encoded in predicate calculus, this encod... |

712 | The semantics of predicate logic as a programming language
- Emden, Kowalski
- 1976
(Show Context)
Citation Context ...lauses are called definite Horn clauses, and a logic program consisting of only definite clauses is called a definite logic program. For definite logic programs, standard logic programming techniques =-=[54, 4, 35]-=- can be used to define the declarative and procedural semantics. The only difference is the form of atomic formulas and unification (unification is discussed in Section 6.3). For instance, for definit... |

610 | Towards a theory of declarative knowledge - Apt, Blair, et al. - 1988 |

601 |
A Mathematical Introduction to Logic
- Enderton
- 1972
(Show Context)
Citation Context ...in [35]. Although Herbrand interpretations suffice for many of the needs of logic programming, there are at least two important reasons to be interested in a more general notion of semantic structure =-=[16]-=-: programs with equality and the semantics of negation by failure. Recall that, in first-order predicate calculus, a semantic structure M for a language L is a pair ! U; I ?, where U is called the dom... |

342 | Definite clause grammars for language analysis - a survey of the formalism and a comparison with augmented transition networks - Pereira, Warren - 1980 |

333 | An efficient unification algorithm
- Martelli, Montanari
- 1982
(Show Context)
Citation Context ...a unifier. Definition 6.4 A unifier oe for a set fe 1 ; : : : ; e k g of expressions is most general if and only if for each unifier ` for this set there is a substitutionssuch that ` = oe. Following =-=[39]-=-, we can derive an efficient unification algorithm by solving equations. An equation is of the form t 1 = t 2 , where t 1 ; t 2 are terms. An equation set (possibly empty) is solved if it has the form... |

218 | Unification revisited - Lassez, Maher, et al. - 1986 |

209 | The alternating fixpoint of logic programs with negation
- Gelder
- 1989
(Show Context)
Citation Context ... with the use of Theorem 3.3. For logic programs with negation, semantics is defined by choosing one or several of the minimal Herbrand models. For instance, the definitions of well founded semantics =-=[50, 52, 55, 56]-=- and stable model semantics [20] are independent of the notions of atomic formulas and Herbrand bases and thus the same definitions can be applied to HiLog. Some results on negation in HiLog can be fo... |

198 | Z.: Proving termination with multiset orderings - Dershowitz, Manna - 1979 |

183 |
Completeness in the theory of types
- Henkin
- 1950
(Show Context)
Citation Context ...s higher-order logic programming. From the outset, even the terminology of "higher-orderness" seems ill-defined. A number of works have proposed various higher-order constructs in the logic =-=framework [1, 5, 13, 7, 23, 24, 30, 31, 42, 45]-=- but with such a diversity of syntax and semantics, it is not always clear what kind of higher-orderness is being claimed. In our opinion, there are at least two different facets to the issue: a highe... |

174 | F-Logic: A Higher-Order language for Reasoning about Objects, Inheritance, and Scheme
- Kifer, Lausen
- 1989
(Show Context)
Citation Context ...as values [7]. Another well-known useful feature is the "call" meta-predicate of Prolog. Applications of higher-order constructs in the database context have been pointed out in many works, =-=including [24, 29, 41]-=-. Although predicate calculus provides the basis for Prolog, it does not have the wherewithal to support any of these features, which consequently have an ad hoc status in logic programming. In this p... |

172 | Theory of generalized annotated logic programming and its applications
- Kifer, Subrahmanian
- 1992
(Show Context)
Citation Context ...hough. For instance, type theory under Henkin's semantics has a proof theory despite the fact that Henkin's semantics is higher-order. In contrast, for certain strains of first-order annotated logics =-=[26, 27]-=- complete proof procedures may not exist, in general. languages is discussed in Section 5. A resolution-based proof theory of HiLog is described in Section 6. 2 Syntax and Semantics of HiLog 2.1 Motiv... |

153 | Higher-order logic programming
- Miller
- 1990
(Show Context)
Citation Context ...s higher-order logic programming. From the outset, even the terminology of "higher-orderness" seems ill-defined. A number of works have proposed various higher-order constructs in the logic =-=framework [1, 5, 13, 7, 23, 24, 30, 31, 42, 45]-=- but with such a diversity of syntax and semantics, it is not always clear what kind of higher-orderness is being claimed. In our opinion, there are at least two different facets to the issue: a highe... |

137 | Every logic program has a natural strati cation and an iterated least xed point model
- Przymusinski
- 1989
(Show Context)
Citation Context ... with the use of Theorem 3.3. For logic programs with negation, semantics is defined by choosing one or several of the minimal Herbrand models. For instance, the definitions of well founded semantics =-=[50, 52, 55, 56]-=- and stable model semantics [20] are independent of the notions of atomic formulas and Herbrand bases and thus the same definitions can be applied to HiLog. Some results on negation in HiLog can be fo... |

134 |
The undecidability of the second-order unification problem
- Goldfarb
- 1981
(Show Context)
Citation Context .... A direct proof can be also obtained as a simple adaptation of the proof in [39]. 2 According to the above theorem, HiLog unification is decidable. The reader may wonder about the result reported in =-=[21]-=- where it is shown that unification becomes undecidable once variables are allowed in places where normally only function symbols are permitted to appear. There is no contradiction, however, with our ... |

105 |
Chem .Commun
- Smith, DeBoos, et al.
- 1996
(Show Context)
Citation Context ...in functors of all those heads are apply/n. Thus the only filtering would come from the arity of "apply". One approach would be to use partial evaluation techniques to optimize the direct tr=-=anslation [22]. A proble-=-m with this approach is how to treat nonlogical constructs, such as "assert". Another way to improve clause access would be to improve the indexing strategy used by the underlying Prolog sys... |

95 | A logic for reasoning with inconsistency
- Kifer, Lozinskii
- 1992
(Show Context)
Citation Context ...hough. For instance, type theory under Henkin's semantics has a proof theory despite the fact that Henkin's semantics is higher-order. In contrast, for certain strains of first-order annotated logics =-=[26, 27]-=- complete proof procedures may not exist, in general. languages is discussed in Section 5. A resolution-based proof theory of HiLog is described in Section 6. 2 Syntax and Semantics of HiLog 2.1 Motiv... |

94 | A logic for objects - Maier - 1986 |

91 |
Foundations of Logic Programming: Second Edition
- Lloyd
- 1987
(Show Context)
Citation Context ...Log language, L, is the set of all ground (i.e., variable-free) HiLog terms in T . Since, terms in HiLog are also atomic formulas, it follows that Herbrand universe is identical to Herbrand base (cf. =-=[35]-=-). This is not a coincidence: if we want to manipulate atomic formulas as terms, the former must be elements of the universe. Now, a Herbrand interpretation is simply a subset of the Herbrand base (j ... |

88 | Higher-order extensions to Prolog: are they needed - Warren - 1982 |

84 |
COL: A logic-based language for complex objects
- ABITEBOUL, GRUMBACH
- 1988
(Show Context)
Citation Context |

74 | Logic programming with sets
- Kuper
- 1987
(Show Context)
Citation Context |

56 | On the declarative semantics of logic programs with negation - Lifschitz - 1988 |

55 |
A logic for object-oriented logic programming (Maier's Ologic revisited
- Kifer, Wu
(Show Context)
Citation Context ...g programs. To conclude this comparison, we mention that the alternative semantics for sets in LDL and COL described above is in the same spirit as the semantics described in C-logic [12] and O-logic =-=[28]-=-, although the latter are first-order (object-oriented) languages. It appears thus, that higher-orderness of the syntax of HiLog is inessential in order to simulate sets. However, it is essential for ... |

54 |
C-logic of complex objects
- Chen, Warren
- 1989
(Show Context)
Citation Context ...ather benign HiLog programs. To conclude this comparison, we mention that the alternative semantics for sets in LDL and COL described above is in the same spirit as the semantics described in C-logic =-=[12]-=- and O-logic [28], although the latter are first-order (object-oriented) languages. It appears thus, that higher-orderness of the syntax of HiLog is inessential in order to simulate sets. However, it ... |

54 | A New Approach to Database Logic - Kuper, Vardi - 1984 |

46 |
What is a model of the lambda calculus
- Meyer
- 1981
(Show Context)
Citation Context ...edicates or functions of different arities and even as atomic formulas. Thus the same intension can be associated with different extensions in different contexts. For instance, in the Lambda Calculus =-=[40]-=-, a -term is considered a function or an object depending on its syntactic position. In HiLog, the same symbol may denote a predicate, a function, or an atomic formula. Semantics of a type-free logic ... |

36 |
The Stable Model Semantics for Logic
- Gelfond, Lifschitz
- 1988
(Show Context)
Citation Context ...rams with negation, semantics is defined by choosing one or several of the minimal Herbrand models. For instance, the definitions of well founded semantics [50, 52, 55, 56] and stable model semantics =-=[20]-=- are independent of the notions of atomic formulas and Herbrand bases and thus the same definitions can be applied to HiLog. Some results on negation in HiLog can be found in [53]. 4.2 Higher-Order an... |

34 |
Hilog: A first-order semantics for higher-order logic programming constructs
- Chen, Kifer, et al.
- 1989
(Show Context)
Citation Context ...at kind of higher-orderness is being claimed. In our opinion, there are at least two different facets to the issue: a higher-order This paper is an expanded version of the work previously reported in =-=[10, 11]-=-. y Present address: Computer Science and Engineering, Southern Methodist University, Dallas, TX 75275. z Work of M. Kifer was partially supported by the NSF grant IRI-8903507. syntax and a higher-ord... |

34 |
A Higher-Order Logic as the Basis for Logic Programming
- Nadathur
- 1987
(Show Context)
Citation Context |

32 |
A technique for establishing completeness results in theorem proving with equality
- Peterson
- 1983
(Show Context)
Citation Context ...og clauses. Note that, unlike [6], we do not include functional reflexivity axioms f(x 1 ; : : : ; x n ) = f(x 1 ; : : : ; x n ) in the formulation of Theorem 6.3. This is possible due to a result in =-=[48] that shows that the-=-se axioms are not needed for completeness of paramodulation. 13 We also note that if S contains no equality atoms then "E-unsatisfiability" can be replaced by "unsatisfiability" an... |

23 | Towards a Real Horn Clause Language
- KRISHNAMURTHY, NAQVI
- 1988
(Show Context)
Citation Context ...as values [7]. Another well-known useful feature is the "call" meta-predicate of Prolog. Applications of higher-order constructs in the database context have been pointed out in many works, =-=including [24, 29, 41]-=-. Although predicate calculus provides the basis for Prolog, it does not have the wherewithal to support any of these features, which consequently have an ad hoc status in logic programming. In this p... |

21 | BAROQUE: A browser for relational databases
- Motro
- 1986
(Show Context)
Citation Context ...as values [7]. Another well-known useful feature is the "call" meta-predicate of Prolog. Applications of higher-order constructs in the database context have been pointed out in many works, =-=including [24, 29, 41]-=-. Although predicate calculus provides the basis for Prolog, it does not have the wherewithal to support any of these features, which consequently have an ad hoc status in logic programming. In this p... |

21 |
Automata-driven indexing of prolog clauses
- Ramesh, Ramakrishnan, et al.
- 1990
(Show Context)
Citation Context ...ch is how to treat nonlogical constructs, such as "assert". Another way to improve clause access would be to improve the indexing strategy used by the underlying Prolog system, perhaps as pr=-=oposed in [51]-=-. An alternative is to constrain the HiLog programs in such a way as to allow simple compile-time optimizations. One way we are exploring is to restrict the clauses to those whose heads have a nonvari... |

18 | The Proper Treatment of Quantification - Montague - 1970 |

17 | personal communication
- Wu
(Show Context)
Citation Context ...is is why Prolog has the additional constructs it is notorious for. More discussion of this issue appears in Section 8. The following encoding of HiLog in predicate calculus was suggested by James Wu =-=[59]-=-. Given a HiLog language LH with a set of variables V and parameters S, we define L encode P to be a language of predicate calculus with the set of variables V , constant symbols S, a unique predicate... |

14 |
A Logical Language for
- Naqvi, Tsur
- 1989
(Show Context)
Citation Context ...is category. Examples of logics with higher-order syntax and semantics include COL [1] and Church's simple theory of types (under the standard and Henkin's semantics) [13, 23]. On the other hand, LDL =-=[5, 46]-=- is a language with a first-order syntax and a higher-order semantics. Let us examine the equational theories underlying various logics more closely. Under a higher-order semantics, an equation betwee... |

14 | On negation in HiLog
- Ross
- 1994
(Show Context)
Citation Context ...able model semantics [20] are independent of the notions of atomic formulas and Herbrand bases and thus the same definitions can be applied to HiLog. Some results on negation in HiLog can be found in =-=[53]-=-. 4.2 Higher-Order and Modular Logic Programming Higher-order constructs have been found very useful in programming practice. An example is the maplist of Lisp. It can be defined in HiLog either as a ... |

12 | A theory of modules based on second-order logic - Chen - 1987 |

11 |
On the Semantics of Stratified Deductive Databases
- Przymusinski
- 1986
(Show Context)
Citation Context ...ll be rejected: ?- X 2 hobby(thom). ?- person(thom, f chess, tennis g). To cope with this problem, [1] proposes to use an analogue of the notion of local stratification adapted from logic programming =-=[49]-=-. For simplicity, we restrict our attention to COL programs without tuple constructs and such that their finite set-constructs have no variables. Thus, the forms such as f a, b g are allowed, but f a,... |

6 |
HiLog as a Platform for Database Languages (or Why Predicate Calculus Is Not Enough
- Chen, Kifer, et al.
- 1989
(Show Context)
Citation Context ...at kind of higher-orderness is being claimed. In our opinion, there are at least two different facets to the issue: a higher-order This paper is an expanded version of the work previously reported in =-=[10, 11]-=-. y Present address: Computer Science and Engineering, Southern Methodist University, Dallas, TX 75275. z Work of M. Kifer was partially supported by the NSF grant IRI-8903507. syntax and a higher-ord... |

5 |
Type inference by program transformation and partial evaluation
- Fruehwirth
- 1988
(Show Context)
Citation Context ...functor and arg. Still, this program would be much more elegant in HiLog than in Prolog. 4.5 Type Checking Recently, Thom Fruehwirth has pointed out to us that the monomorphic type checking system of =-=[17]-=- can be naturally extended to a polymorphic type checking system for HiLog [18], while expressing general polymorphism in predicate calculus is usually quite cumbersome. The use of HiLog as a language... |

3 | Metarules and an Approach to Conjunction in Definite Clause Translation Grammars - Abramson - 1988 |

2 |
1982] Contributions to the Theory of
- Apt, Emden
(Show Context)
Citation Context ...lauses are called definite Horn clauses, and a logic program consisting of only definite clauses is called a definite logic program. For definite logic programs, standard logic programming techniques =-=[54, 4, 35]-=- can be used to define the declarative and procedural semantics. The only difference is the form of atomic formulas and unification (unification is discussed in Section 6.3). For instance, for definit... |

2 |
A Procedural Semantics for Well Founded Negation
- Ross
- 1989
(Show Context)
Citation Context ... with the use of Theorem 3.3. For logic programs with negation, semantics is defined by choosing one or several of the minimal Herbrand models. For instance, the definitions of well founded semantics =-=[50, 52, 55, 56]-=- and stable model semantics [20] are independent of the notions of atomic formulas and Herbrand bases and thus the same definitions can be applied to HiLog. Some results on negation in HiLog can be fo... |

1 |
1989] Modules for Logic Programming
- Chen
(Show Context)
Citation Context ...using HiLog, and argue that the latter is computationally more tractable and practically more convenient. Modular logic programming is another application where higher-order logic can be employed. In =-=[7, 8]-=-, a theory of modules is developed based upon standard second-order logic. The semantics of a module is a second-order relation over first-order predicates interpreted as first-order relations. The re... |

1 |
1992] Sorts, Types and Polymorphism in Higher-Order Logic Programming
- Chen, Kifer
- 1992
(Show Context)
Citation Context ...e checking system for HiLog [18], while expressing general polymorphism in predicate calculus is usually quite cumbersome. The use of HiLog as a language for type specification is further explored in =-=[9]-=-. 5 HiLog as a Database Programming Language In this section, we show that HiLog provides an alternative (first-order) semantics to some of the wellknown database languages with higher-order semantics... |

1 |
1989] Polymorphic Type Checking for Prolog
- Fruehwirth
- 1989
(Show Context)
Citation Context ...n Prolog. 4.5 Type Checking Recently, Thom Fruehwirth has pointed out to us that the monomorphic type checking system of [17] can be naturally extended to a polymorphic type checking system for HiLog =-=[18]-=-, while expressing general polymorphism in predicate calculus is usually quite cumbersome. The use of HiLog as a language for type specification is further explored in [9]. 5 HiLog as a Database Progr... |

1 |
1990] Putting HiLog
- Fruehwirth, Warren
(Show Context)
Citation Context ...or the current predicate. Since in HiLog different calls can access various subsets of clauses, the notion of "predicate" is not so well-defined. These and other issues are explored in more =-=detail in [19]-=-. 8 Conclusion: Do We Need Yet Another Logic? Whenever a new logic is proposed, the question is (and should be) raised as to whether yet another logic is needed. Why not just stay with the logics we k... |