In formal logic, Horn-satisfiability, or HORNSAT, is the problem of deciding whether a given set of propositional Horn clauses is satisfiable or not. Horn-satisfiability and Horn clauses are named after Alfred Horn. In formal logic, Horn-satisfiability, or HORNSAT, is the problem of deciding whether a given set of propositional Horn clauses is satisfiable or not. Horn-satisfiability and Horn clauses are named after Alfred Horn. A Horn clause is a clause with at most one positive literal, called the head of the clause, and any number of negative literals, forming the body of the clause. A Horn formula is a propositional formula formed by conjunction of Horn clauses. The problem of Horn satisfiability is solvable in linear time. The problem of deciding the truth of quantified Horn formulas can be also solved in polynomial time.A polynomial-time algorithm for Horn satisfiability is based on the rule of unit propagation: if the formula contains a clause composed of a single literal l {displaystyle l} (a unit clause), then all clauses containing l {displaystyle l} (except the unit clause itself) are removed, and all clauses containing ¬ l {displaystyle eg l} have this literal removed. The result of the second rule may itself be a unit clause, which is propagated in the same manner. If there are no unit clauses, the formula can be satisfied by simply setting all remaining variables negative. The formula is unsatisfiable if this transformation generates a pair of opposite unit clauses l {displaystyle l} and ¬ l {displaystyle eg l} . Horn satisfiability is actually one of the 'hardest' or 'most expressive' problems which is known to be computable in polynomial time, in the sense that it is a P-complete problem.