From Wikipedia, the free encyclopedia

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.

Basic definitions and terminology[edit]

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.[1] The problem of deciding the truth of quantified Horn formulas can be also solved in polynomial time.[2] 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 (a unit clause), then all clauses containing (except the unit clause itself) are removed, and all clauses containing 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 and . 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.[3]

This algorithm also allows determining a truth assignment of satisfiable Horn formulae: all variables contained in a unit clause are set to the value satisfying that unit clause; all other literals are set to false. The resulting assignment is the minimal model of the Horn formula, that is, the assignment having a minimal set of variables assigned to true, where comparison is made using set containment.

Using a linear algorithm for unit propagation, the algorithm is linear in the size of the formula.

A generalization of the class of Horn formulae is that of renamable-Horn formulae, which is the set of formulae that can be placed in Horn form by replacing some variables with their respective negation. Checking the existence of such a replacement can be done in linear time; therefore, the satisfiability of such formulae is in P as it can be solved by first performing this replacement and then checking the satisfiability of the resulting Horn formula.[4][5][6][7] Horn satisfiability and renamable Horn satisfiability provide one of two important subclasses of satisfiability that are solvable in polynomial time; the other such subclass is 2-satisfiability.

The Horn satisfiability problem can also be asked for propositional many-valued logics. The algorithms are not usually linear, but some are polynomial; see Hähnle (2001 or 2003) for a survey.[8][9]

Dual-Horn SAT[edit]

A dual variant of Horn SAT is Dual-Horn SAT, in which each clause has at most one negative literal. Negating all variables transforms an instance of Dual-Horn SAT into Horn SAT. It was proven in 1951 by Horn that Dual-Horn SAT is in P.[citation needed]

See also[edit]


  1. ^ Dowling, William F.; Gallier, Jean H. (1984), "Linear-time algorithms for testing the satisfiability of propositional Horn formulae", Journal of Logic Programming, 1 (3): 267–284, doi:10.1016/0743-1066(84)90014-1, MR 0770156
  2. ^ Buning, H.K.; Karpinski, Marek; Flogel, A. (1995). "Resolution for Quantified Boolean Formulas". Information and Computation. Elsevier. 117 (1): 12–18. doi:10.1006/inco.1995.1025.
  3. ^ Stephen Cook; Phuong Nguyen (2010). Logical foundations of proof complexity. Cambridge University Press. p. 224. ISBN 978-0-521-51729-4. (Author's 2008 draft version, see p.213f)
  4. ^ Lewis, Harry R. (1978). "Renaming a set of clauses as a Horn set". Journal of the ACM. 25 (1): 134–135. doi:10.1145/322047.322059. MR 0468315..
  5. ^ Aspvall, Bengt (1980). "Recognizing disguised NR(1) instances of the satisfiability problem". Journal of Algorithms. 1 (1): 97–103. doi:10.1016/0196-6774(80)90007-3. MR 0578079.
  6. ^ Hébrard, Jean-Jacques (1994). "A linear algorithm for renaming a set of clauses as a Horn set". Theoretical Computer Science. 124 (2): 343–350. doi:10.1016/0304-3975(94)90015-9. MR 1260003..
  7. ^ Chandru, Vijaya; Collette R. Coullard; Peter L. Hammer; Miguel Montañez; Xiaorong Sun (2005). "On renamable Horn and generalized Horn functions". Annals of Mathematics and Artificial Intelligence. 1 (1–4): 33–47. doi:10.1007/BF01531069.
  8. ^ Reiner Hähnle (2001). "Advanced many-valued logics". In Dov M. Gabbay, Franz Günthner (ed.). Handbook of philosophical logic. Vol. 2 (2nd ed.). Springer. p. 373. ISBN 978-0-7923-7126-7.
  9. ^ Reiner Hähnle (2003). "Complexity of Many-valued Logics". In Melvin Fitting, Ewa Orłowska (ed.). Beyond two: theory and applications of multiple-valued logic. Springer. ISBN 978-3-7908-1541-2.

Further reading[edit]