Documentation

LeanPool.CircuitComplexity.NF

Normal Forms: CNF/DNF Lower Bound for XOR #

Any CNF or DNF formula computing the N-input XOR function requires at least 2^{N-1} clauses (respectively terms).

The proof shows that every DNF for a flip-sensitive function must have each satisfying term mention all N variables, making the terms injective on the 2^{N-1}-element true-set. The CNF case reduces to the DNF case via De Morgan duality (CNF.neg).

Definitions (from Circ.NF.Defs) #

Main results #

theorem CircuitComplexity.DNF.xorBool_complexity_lb {N : } (φ : DNF N) (hN : 1 N) (hcomp : ∀ (x : BitString N), φ.eval x = Schnorr.xorBool N x) :
2 ^ (N - 1) φ.complexity

Any DNF computing N-variable XOR requires at least 2^{N-1} terms.

theorem CircuitComplexity.CNF.xorBool_complexity_lb {N : } (φ : CNF N) (hN : 1 N) (hcomp : ∀ (x : BitString N), φ.eval x = Schnorr.xorBool N x) :
2 ^ (N - 1) φ.complexity

Any CNF computing N-variable XOR requires at least 2^{N-1} clauses.