The number written by unit propagation: definition #
The function counterpart of HORN-SAT (DescriptiveComplexity.HORNSAT): some
variables of a Horn formula are marked as outputs and compared by
significance, and the problem is to compute the number whose binary digits say
which of them unit propagation forces to be true
(DescriptiveComplexity.Forced), i.e., which are true in the least model.
- The vocabulary is the one of CNF instances (
FirstOrder.Language.sat) with two more symbols (FirstOrder.Language.digitOrder):outmarks the output variables andbelowcompares them. DescriptiveComplexity.hornNumber: a forced output variable contributes2 ^ r, whereris the number of output variables strictly below it, whenbelowlinearly orders the output variables (DescriptiveComplexity.VarOrder). An instance that is not a satisfiable Horn formula, or whosebelowis not such an order, writes0.
This is the problem through which the number written by a machine
(DescriptiveComplexity.DTMNumber) is shown hard for FP: the least fixed
point of a system of rules is the least model of a Horn formula, and the
unit-propagation machine leaves that model on its tape.
The symbols reading a number off a set of marked elements.
Equations
- FirstOrder.Language.digitOrder = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.digitOrderRel }
Instances For
Dependency graph
below y x: the digit of y is at most as significant as the one of
x.
Instances For
Dependency graph
The relation symbols of the language.
- out : digitOrderRel 1
out x: the elementxholds one digit. - below : digitOrderRel 2
below y x: the digit ofyis at most as significant as the one ofx.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
The relational language of Horn formulas writing a number.
Instances For
Dependency graph
“Is an output variable”.
Instances For
Dependency graph
The comparison of the output variables.
Instances For
Dependency graph
A Horn formula writing a number is a CNF instance.
Dependency graph
The propagation closure is isomorphism-invariant #
The number #
The output variable x is forced.
Equations
Instances For
Dependency graph
y is an output variable strictly below x.
Equations
Instances For
Dependency graph
The rank of a variable among the outputs: the number of output variables strictly below it.
Equations
Instances For
Dependency graph
The comparison of the outputs is a linear order on them: reflexive, transitive, antisymmetric and total among the output variables.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The number written by unit propagation: each forced output variable
contributes two to the power of its rank among the outputs. Instances that are
not satisfiable Horn formulas, or whose outputs are not linearly ordered,
write 0.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The number written is isomorphism-invariant.
Dependency graph
The number written by unit propagation, as a counting problem on
Language.satOut-structures: the function counterpart of
DescriptiveComplexity.HORNSAT.
Equations
- DescriptiveComplexity.HornNumber = { Count := fun (A : Type) (inst : FirstOrder.Language.satOut.Structure A) => DescriptiveComplexity.hornNumber A, iso_invariant := ⋯ }