The drawn circuit, gate by gate #
What the interpretation of
DescriptiveComplexity.Problems.Cvp.Hardness.Interp marks and wires, read
back as statements about named points – bdPt, hdPt … – rather than
about raw tagged tuples. Two kinds of lemma are needed downstream and both are
proved here once:
- the marks: which points are gates of which kind, and which point is the output;
- the wires: for each gate, an
iffnaming its left and right inputs, so that a derivation can be built (themprdirection, used to evaluate the circuit) and inverted (thempdirection, used to prove that nothing else evaluates to1).
Everything is stated relative to a minimum m and a maximum M of the
universe, which a finite nonempty linear order supplies; the coordinates a tag
does not use are pinned to m.
The points #
The constant 1 gate.
Equations
- DescriptiveComplexity.CvpDraw.ttPt m = (DescriptiveComplexity.CvpTag.tt, fun (x : Fin 3) => m)
Instances For
Dependency graph
The constant 0 gate.
Equations
- DescriptiveComplexity.CvpDraw.ffPt m = (DescriptiveComplexity.CvpTag.ff, fun (x : Fin 3) => m)
Instances For
Dependency graph
The conjunction chain of the clause c up to the literal y, at stage
s.
Equations
Instances For
Dependency graph
The conjunction chain of the clause c up to y, read at the last
stage.
Equations
Instances For
Dependency graph
The propagation chain forcing x from the clauses up to c, at stage
s.
Equations
Instances For
Dependency graph
The goal chain over the clauses up to c.
Equations
Instances For
Dependency graph
The marks #
Only the canonical tt point is a constant 1.
Dependency graph
The conjunction gates are the two conjunction chains.
Dependency graph
The disjunction gates are the propagation chain and the goal chain.
Dependency graph
The circuit is monotone: it has no negation gate.
Dependency graph
The output is the top of the goal chain.
Dependency graph
The wires #
Each gate names its left and its right input. The mpr direction builds a
derivation, the mp direction inverts one; the constants have no input at
all.
Being pinned to the minimum at every coordinate identifies a padded point.
Dependency graph
In a linear order with a minimum m, being below everything is being
m: the rewrite that turns the padding conditions into equations.
Dependency graph
The left input of a conjunction chain: the constant 1 at the bottom of
the walk, the previous link otherwise.
Dependency graph
Dually, being above everything is being the maximum.
Dependency graph
The left input of the top-stage conjunction chain.
Dependency graph
The left input of the propagation chain: the constant 0 at the bottom of
the walk over clauses, the previous link otherwise.
Dependency graph
The left input of the goal chain. At the bottom of the walk it is the
constant 1 exactly when the instance is not Horn, which is what makes a
non-Horn instance a yes-instance outright.
Dependency graph
The right input of a conjunction chain: the constant 1 when the literal
is not a negative literal of the clause, the constant 0 at the bottom stage,
and the propagation gate of the previous stage otherwise.
Dependency graph
The right input of the top-stage conjunction chain reads the propagation gate at the last stage.
Dependency graph
The right input of the propagation chain: the body of the clause at hand
when that clause has the right positive literal, the constant 0 otherwise.
Dependency graph
The right input of the goal chain: the top-stage body of the clause at
hand when it is a goal clause, the constant 0 otherwise.