**Logic Programs:**

A subset of first order logic is "Logic programs". However logic program having a set of Horn clauses that are implication conjectures when there is a conjunction of literals that imply a single literal. Thus a logic program consists of implications that look like this example as:

\/X, Y, Z ( b1(X,Y) ^ b2(X)^ ... ^ bn(X,Y,Z) → h(X,Y))

So remember also that there in Prolog we have turn the implication around by which the implication sign points from left to right and then the head of the clause comes first. However we also assume universal quantification over all our literals but that can be removed.

Thus we can write Horn clauses as:

h(x,y) ← b1(X,Y) ^ b2(X) ^ ... ^ bn(X,Y,Z)

So there everybody understands what we are saying. And in fact we will adopt the convention of writing a conjunction of literals with a capital letter or a single literal with a lower case letter also. Although if we were interested in the first literal in the body of the above Horn clause or not interested in the others so then we could write as:

h(X,Y) ← b1, B

However we see that the conjunction of literals b2(X)^ ... ^ bn(X,Y,Z) has been replaced by B so we have utilised a comma instead of a sign.