Documentation

DescriptiveComplexity.Problems.ZeroOneIP.Counting

#0-1 integer programming: counting the 0-1 solutions #

The counting version of DescriptiveComplexity.ZeroOneIP: the number of 0-1 vectors x with C x = d (DescriptiveComplexity.ZeroOneSol), the entries being written in binary.

Membership in #P (DescriptiveComplexity.sharpZeroOneIP_mem_sharpP) is Knapsack's argument once per row (DescriptiveComplexity.Problems.Knapsack.Counting): the walks of a certificate are forced where they are read (DescriptiveComplexity.isChain_agree) and forbidden elsewhere by the counting kernel, so a solution has exactly one certificate (DescriptiveComplexity.zeroOneIPEquiv).

The set x of columns is a solution: the instance is finite, its order is linear, and every equation holds.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph

    The certificate built on a family of walks: the chosen columns, and the totals and carries of each row's walk kept only where a walk reads them.

    Equations
    Instances For
      Dependency graph
      theorem DescriptiveComplexity.exists_zeroOneIPCert {A : Type} [FirstOrder.Language.zeroOneIP.Structure A] [Finite A] {x : A → Prop} (h : ZeroOneSol A x) :
      ∃ (PS : A → A → A → Prop) (Cy : A → A → A → Prop), (∀ (r : A), IPRow r → IsChain IPLe IPCol IPLe IPPosn x (IPCoef r) (PS r) (Cy r)) ∧ ZeroOneIPCert A (certOfWalks x PS Cy)

      A solution has a certificate.

      Dependency graph

      The chosen columns of a certificate are a solution.

      Dependency graph

      The solutions of a 0-1 integer program are the witnesses of the counting kernel, bijectively: a solution has exactly one certificate.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Dependency graph

        #0-1 integer programming: the number of 0-1 vectors satisfying every equation of the program.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          Dependency graph

          The support of #0-1 integer programming is 0-1 integer programming. Registered in the Lax archive as Lax280166.ZeroOneIPComplete.sharpZeroOneIP_support_iff.

          Dependency graph
          Dependency graph