# A Semantics for the Hornlog System

## Abstract

We start by presenting some examples of logic programs in the Hornlog system. The body *P* of a logic program in this system consists of any *arbitrary* set of Horn clauses over one-sorted Horn clause logic without equality. In chapters 6 through 8 we will examine equational extensions to the Hornlog method which apply to many-sorted Horn clause logic with equality. The procedural interpretation of logic programs [54] is extended so that negative clauses in the body of the logic program are interpreted as *negative constraints*. That is, ← *B* _{1},..., *B* _{ m }, is interpreted as false ← *B* _{1},..., *B* _{ m }, or “not the case that *B* _{1},...,*B* _{ m }, all hold simultaneously.” The crucial difference between this interpretation and the negation by failure semantics used in Prolog is that in this interpretation any substitutions computed using substitution instances of negative clauses may participate in the construction of the answer substitution. Thus the Hornlog system incorporates a form of classical negation restricted to Horn clauses.

## Preview

Unable to display preview. Download preview PDF.