Past exam of the mathematics course of the University of Cambridge 2023 iii Paper 124 3 iii Solution 2026-09-28
Write each Horn clause as an implicationwhen it has one positive literal , or as a forbidden conjunctionwhen it has none. Start with every variable false. Repeatedly, whenever all antecedents of an implication are true, set its conclusion true. If a forbidden conjunction ever has all antecedents true, report unsatisfiable; otherwise stop when no change is possible and return the resulting assignment.
Each step changes a previously false variable to true, so at most the number of variables steps occur; scanning all clauses after each step is polynomial time. For correctness, every satisfying assignment must set every variable derived by this Horn-SAT forward-chaining algorithm to true, by induction over the derivation. Therefore, if the algorithm violates a negative clause, every assignment violates it. If no violation occurs, all implications and all negative clauses are satisfied by the final assignment. This proves polynomial-time decidability.