A definite clause is an -constraint of the form:
where , and q are atoms and is an -constraint. We call q the head of a clause and its body. We may write a clause as or simply as . In case the head and the body of a clause is empty, we call the clause an empty clause. In general, an empty clause is of form
A definite clause specification is a set of definite clauses. Höhfeld and Smolka show that important properties of conventional logic programs extend to definite clause specifications, especially the existence of a unique minimal model for each interpretation in .
A goal is a possibly empty conjunction of -atoms and an -constraint, written as:
that is, a clause with an empty head (or consequent). An S-answer to a goal with respect to a given definite specification S is a satisfiable constraint , such that is valid for every minimal model of S.