option B is true
Horn clauses play a basic role in constructive logic and computational logic. They are important in automated theorem proving by first-order resolution, because the resolvent of two Horn clauses is itself a Horn clause, and the resolvent of a goal clause and a definite clause is a goal clause. These properties of Horn clauses can lead to greater efficiencies in proving a theorem (represented as the negation of a goal clause).
A Horn clause is a logic disjunction of literals, where at most one of the literals is positive, and all the others are negative. It is named after Alfred Horn who described them in an article in 1951.
A Horn clause with exactly one positive literal is a definite clause; a definite clause with no negative literals is sometimes called a “fact”; and a Horn clause without a positive literal is sometimes called a goal clause. These three kinds of Horn clauses are illustrated in the following propositional example:
- definite clause: {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t\vee u}
- fact: {\displaystyle u}
- goal clause: {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t}