SelMajSAT and SelEqSAT: complete problems for PP and C₌P #
A CNF formula with a selected variable (FirstOrder.Language.satSel),
and the two counts of its models by the value of that variable
(DescriptiveComplexity.SharpSelSAT true, DescriptiveComplexity.SharpSelSAT false),
both in #P. The two decision problems comparing them:
- SelMajSAT (
DescriptiveComplexity.SelMajSAT): the selected variable is true in more models than it is false –PP-complete (DescriptiveComplexity.selMajSat_PP_complete), the form the classical MajSAT of Gill 1977 takes when the instance may not count its own variables; - SelEqSAT (
DescriptiveComplexity.SelEqSAT): it is true in exactly as many models as it is false –C₌P-complete (DescriptiveComplexity.selEqSat_CeqP_complete).
Hardness is one construction for both: a problem of either class compares the
witness counts of two kernels; the pair kernel of
DescriptiveComplexity.Counting.KernelPair puts them in one kernel with a
selector, the parsimonious Tseitin interpretation turns it into a CNF formula
whose models are its witnesses, and the selected variable is the one of the
selector (DescriptiveComplexity.PairSel.pairTseitinInterp). The models in
which the selected variable is true are then the witnesses of the first
kernel, and the others those of the second.
Dependency graph
The relation symbols of the language.
- sel : selMarkRel 1
sel x: the variablexis selected.
Instances For
Dependency graph
Equations
Instances For
Dependency graph
The symbol selecting a variable.
Equations
- FirstOrder.Language.selMark = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.selMarkRel }
Instances For
Dependency graph
Dependency graph
Dependency graph
The relational language of CNF formulas with a selected variable.
Instances For
Dependency graph
“Is selected”, in the vocabulary of CNF formulas with a selected variable.
Instances For
Dependency graph
A CNF formula with a selected variable is a CNF formula.
Dependency graph
The forgetful isomorphism of the underlying CNF formulas.
Equations
- DescriptiveComplexity.satSelEquiv e = { toEquiv := e.toEquiv, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Dependency graph
The two counts #
A model of the formula in which every selected variable has the value
b.
Equations
- DescriptiveComplexity.SelModel A b ν = (DescriptiveComplexity.SatModel A ν ∧ ∀ (x : A), FirstOrder.Language.Structure.RelMap DescriptiveComplexity.ssSel ![x] → (ν x ↔ b = true))
Instances For
Dependency graph
The vocabulary of the kernel: CNF formulas with a selected variable, and the truth-assignment variable.
Equations
Instances For
Dependency graph
“Is selected”, in the kernel's vocabulary.
Instances For
Dependency graph
The truth-assignment symbol in the kernel's vocabulary.
Instances For
Dependency graph
The kernel of #SAT, read in the kernel's vocabulary.
Equations
Instances For
Dependency graph
The kernel: a model of the formula, in which every selected variable has
the value b.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
The number of models of a CNF formula in which the selected variable
has the value b.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The two problems #
SelMajSAT: the selected variable is true in more models than it is false.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
SelEqSAT: the selected variable is true in exactly as many models as it is false.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
Hardness: the Tseitin formula of a pair kernel, with the selector #
selected
The selector of the pair block.
Instances For
Dependency graph
The block and the kernel of the pair, abbreviated.
Equations
Instances For
Dependency graph
The pair kernel, abbreviated.
Equations
- DescriptiveComplexity.PairSel.PK B B' φ φ' = DescriptiveComplexity.pairKernel B B' φ φ'
Instances For
Dependency graph
The Tseitin formula of the pair kernel, with the selector's variable selected.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The underlying CNF formula is the parsimonious Tseitin formula.
Equations
- DescriptiveComplexity.PairSel.satEquiv = { toEquiv := Equiv.refl ((DescriptiveComplexity.PairSel.pairTseitinInterp B B' φ φ').Map A), map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Dependency graph
The models with the selected variable at b are the witnesses of the
pair kernel whose selector is b.
Registered in the Lax archive as
Lax175070.CountingValues.sharpSelSat_eq.
Dependency graph
Dependency graph
Dependency graph
Every problem defined by a relation between two witness counts reduces to the comparison of the two counts of a CNF formula by its selected variable.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
SelMajSAT is PP-complete.
Registered in the Lax archive as
Lax175070.SelectedSatComplete.selMajSat_PP_complete.
Dependency graph
SelEqSAT is C₌P-complete.
Registered in the Lax archive as
Lax175070.SelectedSatComplete.selEqSat_CeqP_complete.