QBF is second-order definable #
The membership half of the completeness of DescriptiveComplexity.QBF: a quantified
Boolean formula problem with k alternating blocks is Σₖ-definable when its
prefix starts existentially, and Πₖ-definable when it starts universally
(DescriptiveComplexity.qbfProblem_sigmaSODefinable,
DescriptiveComplexity.qbfProblem_piSODefinable).
The second-order prefix is k monadic blocks
(DescriptiveComplexity.unaryBlock: one unary relation variable each), one per
quantifier block of the formula, and the first-order kernel simply evaluates
the matrix: it says that every clause contains a true literal (or, for a
disjunctive matrix, that some term has all its literals true), reading the
truth value of a variable off the relation variable of a block marking it.
No Tseitin translation is involved here – the matrix is already part of the
input structure, so evaluating it is first-order.
The blocks are handled through DescriptiveComplexity.SecondOrderMerge: the kernel is
written over the single merged block, where the relation variable of block
i is the symbol DescriptiveComplexity.blockSym k i, and
DescriptiveComplexity.sorealize_unmerge transports it into the iterated block
expansion while turning the alternating second-order quantification into
DescriptiveComplexity.altQuant.
The monadic blocks of a quantifier prefix #
The second-order block of a single propositional quantifier: one unary relation variable, the truth assignment of one block of variables.
Equations
Instances For
Dependency graph
The quantifier prefix of QBF k: k monadic blocks.
Instances For
Dependency graph
Dependency graph
The single block merging the whole prefix of QBF k.
Equations
Instances For
Dependency graph
The relation symbol of the truth assignment of block i, in the merged
block's vocabulary.
Equations
Instances For
Dependency graph
The assignment of the merged block determined by k truth assignments.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.repAssign A 0 x_2 = DescriptiveComplexity.nilAssign A
Instances For
Dependency graph
The prefix quantifies the components of the merged assignment #
The first-order kernel #
The vocabulary of the kernel: quantified CNF instances together with the
k truth-assignment relation variables.
Equations
Instances For
Dependency graph
The symbol for “is a clause” in the kernel's vocabulary.
Instances For
Dependency graph
The symbol for “occurs positively in” in the kernel's vocabulary.
Instances For
Dependency graph
The symbol for “occurs negatively in” in the kernel's vocabulary.
Instances For
Dependency graph
The block mark of block i in the kernel's vocabulary.
Equations
Instances For
Dependency graph
The truth-assignment variable of block i in the kernel's vocabulary.
Equations
Instances For
Dependency graph
The truth value of the variable x, as a formula: some block marking x
assigns it the value true.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Membership #
QBF with an existential outermost block is Σₖ-definable: quantify the
k truth assignments as monadic second-order variables, and evaluate the
matrix in first-order logic.
Dependency graph
QBF with a universal outermost block is Πₖ-definable.