Pulling SO-Horn definability back through an interpretation #
SO-Horn definability is closed under (ordered) first-order reductions
(DescriptiveComplexity.SigmaSOHornDefinable.of_orderedReduction). This is what makes
the fragment a DescriptiveComplexity.ComplexityClass – the class
DescriptiveComplexity.PTIME – rather than a mere definability predicate.
The closure is not an instance of the general pullback of
DescriptiveComplexity.SecondOrderPull, which only says that the pulled-back kernel is
some first-order formula: here the pulled-back kernel has to stay Horn. It
does, and for a structural reason worth stating, since it is exactly what the
Horn condition is careful about: the condition constrains the occurrences of
the second-order variables only, while an interpretation rewrites the
input-vocabulary atoms – which live in the guard, where anything is allowed.
Concretely, pulling a clause back through a d-dimensional interpretation
with tag type Tag:
- the block is pulled as in
DescriptiveComplexity.SOBlock.pull: ann-ary relation variable onTag × A^dbecomes one(n·d)-ary relation variable onApern-tuple of tags; - a clause becomes one clause per assignment
t : Fin k → Tagof tags to its universally quantified variables (DescriptiveComplexity.HornClause.pull), with thekvariables replaced byk · dcoordinates; - its guard becomes the ordinary formula pullback
DescriptiveComplexity.FOInterpretation.pullat the tag assignmentt– an arbitrary first-order formula, which is fine, guards being unconstrained; - each body and head atom becomes the atom of the corresponding pulled
relation variable (
DescriptiveComplexity.SOAtom.pull) – still an atom, which is what keeps the clause Horn.
The one place the order is needed is that the guards of the target may mention
it: the pullback interprets the target's order by the lexicographic order on
tagged tuples (DescriptiveComplexity.FOInterpretation.ordExtend), which is why the
definability notion quantifies over ordered structures in the first place.
Pulling back a clause and a program #
The pullback of a Horn clause at a tag assignment: guards pull back as formulas, atoms as atoms – so the result is again a Horn clause.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
The pullback of a Horn program: one clause per clause of the program and per assignment of tags to its universally quantified variables.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
Correctness of the pullback #
An assignment satisfies a program on the interpreted structure iff its transfer satisfies the pulled program on the base structure.
Dependency graph
The pullback is correct: the program is satisfiable on the interpreted structure iff its pullback is satisfiable on the base structure.
Dependency graph
Closure under reductions #
SO-Horn definability is closed under ordered first-order reductions. The Horn shape survives the pullback because an interpretation only rewrites the input-vocabulary atoms, which live in the guards; the second-order atoms are merely re-indexed.
Dependency graph
SO-Horn definability is closed under first-order reductions.