HORN-SAT to GAME: unit propagation is a game #
The hardness half of DescriptiveComplexity.GAME. The AND/OR graph drawn
inside a Language.sat-instance is unit propagation read as a game:
- a variable
xis an existential node – to win at it, name a clause that forces it; - a clause
cis a universal node – the opponent challenges one of its negative literals, and the game continues there; - a clause with no negative literal wins outright, which is what the
wonmark ofFirstOrder.Language.andOrGraphis for and why a stuck universal node had to lose (DescriptiveComplexity.Problems.Game.Defs); - the goal clauses – those with no positive literal – are the marked starts.
So the existential player wins exactly when some goal clause has all its
negative literals forced, which on a Horn formula is exactly unsatisfiability
(DescriptiveComplexity.exists_goalClause in one direction,
DescriptiveComplexity.forced_subset_model in the other).
Reducing from the complement #
The game computes a least fixed point, so what it decides is Horn
unsatisfiability; a game deciding satisfiability would have to negate the
propagation. That costs nothing, since polynomial time is closed under
complement (DescriptiveComplexity.piP_zero_eq), and the last step is the same
one DescriptiveComplexity.Problems.Cvp.Hardness takes.
The non-Horn escape #
DescriptiveComplexity.HORNSAT folds the promise “at most one positive literal
per clause” into its yes-instances, so its complement holds outright on an
instance that is not Horn. The interpretation therefore marks every node both
start and won when the instance fails the promise
(DescriptiveComplexity.GameHard.nonHornG, a sentence, hence available to
every defining formula), which makes such an instance a yes-instance of GAME
with no propagation at all.
The ordered expansion of the vocabulary of CNF formulas.
Equations
Instances For
Dependency graph
The clause symbol in the ordered expansion.
Instances For
Dependency graph
The positive-occurrence symbol in the ordered expansion.
Instances For
Dependency graph
The negative-occurrence symbol in the ordered expansion.
Instances For
Dependency graph
The two sorts of node the interpretation draws.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
Dependency graph
The guards #
x is a clause, as a guard.
Equations
Instances For
Dependency graph
x occurs positively in the clause c, as a guard.
Equations
Instances For
Dependency graph
x occurs negatively in the clause c, as a guard.
Equations
Instances For
Dependency graph
The instance is not Horn: some clause has two distinct positive literals. A sentence, so every defining formula may use it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The interpretation #
The AND/OR graph of unit propagation: variables are existential nodes, clauses universal ones, a clause with no negative literal wins outright, and the goal clauses are the marked starts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The points #
The node of a propositional variable.
Equations
- DescriptiveComplexity.GameHard.varPt x = (DescriptiveComplexity.GameHard.GTag.var, fun (x_1 : Fin 1) => x)
Instances For
Dependency graph
The node of a clause.
Equations
- DescriptiveComplexity.GameHard.clPt c = (DescriptiveComplexity.GameHard.GTag.cl, fun (x : Fin 1) => c)
Instances For
Dependency graph
Every node is a variable node or a clause node.
Dependency graph
Reading the drawn graph #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Winning is being forced #
What winning says at each of the two sorts of node.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
Soundness: a winning node is forced, and a winning clause node has all its negative literals forced.
Dependency graph
A clause node with all its negative literals winning is winning: the opponent's every challenge is answered, and a clause with nothing to challenge wins outright.
Dependency graph
Completeness: a forced variable wins.
Dependency graph
Dependency graph
The game is won exactly on the no-instances #
On a Horn instance, the game is won exactly when some goal clause has all its negative literals forced.
Dependency graph
The reduction is correct: the game is won exactly on the instances that are not yes-instances of HORN-SAT.
Dependency graph
The complement of HORN-SAT reduces to GAME: unit propagation, read as a game.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
GAME is PTIME-hard: every SO-Horn definable problem reduces to it. The route is the Horn discharge applied to the complement of the problem, complemented back – which is available because polynomial time is closed under complement.
Dependency graph
GAME is PTIME-complete. Membership is
DescriptiveComplexity.game_mem_PTIME, the least fixed point with its scan of
the order; hardness is unit propagation read as a game.