Documentation

Complexity.Computability.Circuit.Arithmetic.VNP

Valiant's class VNP and VNP-completeness #

Valiant's algebraic analogue of NP [Val79a], in the form of Bürgisser, Chapter 2. A family f is in VNP K when it is p-definable: there are a polynomially bounded m and a family g in VP K such that

f n (X) = ∑ e ∈ {0, 1} ^ m n, g n (X, e),

the m n variables of g n after the first f.vars n being replaced by 0 or 1 (Cslib.Circuits.Arithmetic.booleanSum). The number of variables and the degree of g, and hence of f, are polynomially bounded, and g has polynomial-size circuits; as for VP, nothing relates different n, so VNP is nonuniform. The definition makes sense over every commutative semiring K.

A family is VNP-complete when it lies in VNP K and every family in VNP K is a p-projection of it. A VNP-complete family is in VP exactly when VNP ⊆ VP. Valiant's theorem that the permanent is VNP-complete over fields of characteristic other than two is not proved here.

Main definitions #

Main results #

References #

def Cslib.Circuits.Arithmetic.booleanAssignment {K : Type u} [CommSemiring K] {n m : ℕ} (e : Fin m → Bool) :
Fin (n + m) → Fin n ⊕ K

Keep the first n variables and substitute the Boolean value e i, as 0 or 1, for variable n + i.

Instances For
    noncomputable def Cslib.Circuits.Arithmetic.booleanSum {K : Type u} [CommSemiring K] {n : ℕ} (m : ℕ) (P : MvPolynomial (Fin (n + m)) K) :

    The Boolean sum ∑ e ∈ {0, 1} ^ m, P (X, e): the sum, over all Boolean values for the last m variables, of the polynomial in the first n variables obtained by substituting them.

    Instances For
      @[simp]

      A Boolean sum over no variables is the polynomial itself.

      def Cslib.Circuits.Arithmetic.liftProjection {K : Type u} {n m k : ℕ} (ρ : Fin k → Fin n ⊕ K) :
      Fin (k + m) → Fin (n + m) ⊕ K

      Lift a projection of the first k of k + m variables to all of them, keeping the last m variables.

      Instances For
        theorem Cslib.Circuits.Arithmetic.projection_booleanSum {K : Type u} [CommSemiring K] {n m k : ℕ} (ρ : Fin k → Fin n ⊕ K) (P : MvPolynomial (Fin (k + m)) K) :

        A projection of a Boolean sum is the Boolean sum of a projection: substitution for the first variables commutes with summing over the last.

        A Boolean sum has no larger degree than the summed polynomial.

        Valiant's class VNP over K Valiant1979Algebra; Bürgisser, Chapter 2: the families f with f n = booleanSum (m n) (g n) for a family g in VP K whose members have f.vars n + m n variables. The class is nonuniform, like VP.

        Instances For

          Every family in VP is in VNP, summing over no variables.

          The members of VNP are p-families.

          VNP is closed under p-projections Bürgisser, Chapter 2. As for VP, the number of variables is required to be polynomially bounded.

          A family is VNP-complete over K Valiant1979Algebra; Bürgisser, Chapter 2 when it is in VNP K and every family in VNP K is a p-projection of it.

          Instances For

            If a VNP-complete family is in VP, then VNP ⊆ VP.

            A VNP-complete family is in VP exactly when VNP ⊆ VP: Valiant's hypothesis VP ≠ VNP says that no VNP-complete family has polynomial-size circuits.