Satisfiability Checking (Model Checking)
Many problems in CS can be reduced to checking satisfiability of a propositional calculus formula.
Suppose that there is an election, with candidates Alice and Bob. One of them will win, but they cannot both win. We can express this as two clauses in CNF, assumed to be ANDed together: ( A ∨ B ) ∧ ( ¬ A ∨ ¬ B )
There are two interpretations (models) that satisfy all of the clauses: A, ¬ B ¬ A, B
A special case of SAT is 3SAT, where all clauses have at most 3 literals, corresponding to rules that have two premises and a single conclusion. For example, A ∧ B → C becomes ¬ A ∨ ¬ B ∨ C in CNF.