Counting the solutions of exactly the threshold size #
A threshold problem in the unary representation asks for a set at least, or at
most, as large as a marked set, and its counting version counts the solutions
of exactly that size. Such a count is #P-definable as soon as the property
of the set is first-order, and this file says so once for all of them
(DescriptiveComplexity.sharpPDefinable_of_sized, and
DescriptiveComplexity.sharpPDefinable_of_sized_set when the set is the whole
certificate).
The input is a kernel φ₀ over a block B, one of whose unary variables i₀
is the set being sized, and the symbol mk of the marked set. The kernel may
read the order (DescriptiveComplexity.sharpPDefinable_of_sized_ordered, for a
certificate walking the order, as the reachability clock of Steiner Tree does)
or not (DescriptiveComplexity.sharpPDefinable_of_sized).
The counting kernel (DescriptiveComplexity.sizedKernel) adds one binary variable and
asks it to be the graph of the monotone bijection from the marked set onto
the set (DescriptiveComplexity.MonoBij): a bijection certifies the size, and the
monotone one is the only certificate, so the witnesses of the kernel are the
assignments of B satisfying φ₀ whose set has the size of the marked one
(DescriptiveComplexity.witnessCount_sizedKernel), whatever the linear order.
The extra variable is that of DescriptiveComplexity.SOBlock.withOrder, reused for
its assignment bookkeeping: there it is an order being re-quantified, here a
bijection.
The inclusion of the vocabulary of a kernel into that of the sized kernel: the bijection variable is added to the block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The mark symbol over the vocabulary of the sized kernel.
Equations
- DescriptiveComplexity.szMkSym L B mk = Sum.inl (Sum.inl mk)
Instances For
Dependency graph
The sized set, as a symbol of the sized kernel.
Instances For
Dependency graph
The bijection variable, as a symbol of the sized kernel.
Equations
Instances For
Dependency graph
The order symbol over the vocabulary of the sized kernel.
Equations
Instances For
Dependency graph
x is marked, as a formula of the sized kernel.
Equations
- DescriptiveComplexity.szMk L B mk x = (DescriptiveComplexity.szMkSym L B mk).formula₁ (FirstOrder.Language.var x)
Instances For
Dependency graph
x belongs to the sized set, as a formula.
Equations
- DescriptiveComplexity.szSel L B i₀ h₀ x = (DescriptiveComplexity.szSelSym L B i₀ h₀).formula₁ (FirstOrder.Language.var x)
Instances For
Dependency graph
The bijection relates x to y, as a formula.
Equations
Instances For
Dependency graph
x ≤ y, as a formula of the sized kernel.
Equations
Instances For
Dependency graph
The extra variable is the graph of a monotone bijection from the marked set
onto the sized set: DescriptiveComplexity.MonoBij, as a sentence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The sized kernel: the kernel φ₀, which may read the order, and the
extra variable is the monotone bijection from the marked set onto the set
i₀.
Equations
- DescriptiveComplexity.sizedKernel L B mk i₀ h₀ φ₀ = (DescriptiveComplexity.sizedLHom L B).onSentence φ₀ ⊓ DescriptiveComplexity.monoBijS L B mk i₀ h₀
Instances For
Dependency graph
The witnesses of the sized kernel are the assignments of the block satisfying the kernel whose set has exactly the size of the marked set, bijectively.
Dependency graph
A count of the solutions of exactly the threshold size is
#P-definable, when the property of the solution is first-order over the
ordered expansion: the size is certified by the monotone bijection with the
marked set, the one certificate a linear order offers. The kernel may read the
order, and then has to define the same count whatever the order.
Dependency graph
A count of the solutions of exactly the threshold size is
#P-definable, when the property of the solution is first-order: the case of
DescriptiveComplexity.sharpPDefinable_of_sized_ordered where the kernel does not read
the order.
Dependency graph
Sets, as the assignments of a block whose only variable is unary.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
DescriptiveComplexity.sharpPDefinable_of_sized for a block with a single
variable, the solution itself: a count of the sets with a first-order property
and exactly the size of the marked set is #P-definable.