Pulling SO-Krom definability back through an interpretation #
SO-Krom definability is closed under (ordered) first-order reductions
(DescriptiveComplexity.SigmaSOKromDefinable.of_orderedReduction). This is what makes
the fragment a DescriptiveComplexity.ComplexityClass – the class
DescriptiveComplexity.NL – rather than a mere definability predicate.
The argument is the one of DescriptiveComplexity.SecondOrderHornPull, and it works
for the same structural reason: the Krom 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.
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.KromClause.pull), with thekvariables replaced byk · dcoordinates; - its guard becomes the ordinary formula pullback
DescriptiveComplexity.guardPullat the tag assignmentt– an arbitrary first-order formula, which is fine, guards being unconstrained; - each literal keeps its sign and its atom becomes the atom of the
corresponding pulled relation variable (
DescriptiveComplexity.SOAtom.pull), so the clause still has at most two second-order literals – which is what keeps it Krom.
The shared pieces (DescriptiveComplexity.SOAtom.pull, DescriptiveComplexity.guardPull,
DescriptiveComplexity.tagVal, DescriptiveComplexity.allTagAssign) are in
DescriptiveComplexity.SecondOrderPull, and the order enters exactly as it does for
SO-Horn: the pullback interprets the target's order by the lexicographic order
on tagged tuples (DescriptiveComplexity.FOInterpretation.ordExtend).
Pulling back a literal, a clause and a program #
The pullback of a literal: same sign, pulled atom.
Instances For
Dependency graph
Dependency graph
Dependency graph
The pullback of a Krom clause at a tag assignment: guards pull back as formulas, literals keep their signs – so the result is again a Krom clause.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
The pullback of a Krom 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-Krom definability is closed under ordered first-order reductions. The Krom shape survives the pullback because an interpretation only rewrites the input-vocabulary atoms, which live in the guards; the second-order literals keep their signs and are merely re-indexed.
Dependency graph
SO-Krom definability is closed under first-order reductions.