The Valiant–Vazirani randomized isolation reduction #
ValiantVazirani.reduce (φ, r) adds to φ some number k of random parity equations
A x + b = 0 over the n = φ.vars.length occurrences x of its variables [Valiant and Vazirani]
[VV86], Arora and Barak, Section 17.4. The number k is
read in binary from the first hashBits φ bits of r, so that every k ≤ n + 2 has probability
2 ^ (-hashBits φ) ≥ 1 / (2 (n + 3)); the rows of A and the offsets b are read from the
remaining bits, missing bits being false. Each equation is written in conjunctive normal form
with auxiliary variables carrying its prefix parities, with two or four clauses per term, so the
auxiliary variables are determined by the original ones. The variables are then renumbered by the
injective Cslib.Complexity.splitVarToNat.
Main definitions #
Cslib.Complexity.ValiantVazirani.hashCNF: random parity equations in conjunctive normal form.Cslib.Complexity.ValiantVazirani.reduce: the Valiant–Vazirani reduction.Cslib.Complexity.ValiantVazirani.randomBits: the number of random bits it reads.
Main results #
Cslib.Complexity.ValiantVazirani.computableInPolyTime_reduce: polynomial time.Cslib.Complexity.ValiantVazirani.reduce_mem_UNSAT: soundness.Cslib.Complexity.ValiantVazirani.three_mul_two_pow_le_card_filter_card_filter_eq_one: the Valiant–Vazirani lemma for affine seeds, in integers.Cslib.Complexity.ValiantVazirani.three_mul_two_pow_le_card_reduce_mem_USAT,Cslib.Complexity.ValiantVazirani.three_div_le_dens_reduce_mem_USAT: success probabilityΩ(1 / n).Cslib.Complexity.ValiantVazirani.two_pow_le_two_mul_card_exists_row: amplification by independent rows.
References #
Parity equations in conjunctive normal form #
The variables of the reduced formula before renumbering: inl v is a variable of the original
formula, and inr (i, j) carries the parity of the first j terms of the i-th equation.
Instances For
Clauses forcing next = prev ^^ (bit && x).
Instances For
Clauses forcing the i-th parity equation: the auxiliary variables inr (i, j) start at
offset, the j-th one adds row[j] && vars[j], and the last one is false. Together they force
offset ^^ ⨁ j, (row[j] && vars[j]) = false.
Instances For
The number of random bits selecting the number of equations.
Instances For
φ together with k random parity equations read from w, renumbered into ℕ.
Instances For
The Valiant–Vazirani reduction. The first hashBits φ random bits, read in binary, give
the number k of parity equations; the remaining bits give their coefficients and offsets.
Instances For
Polynomial time #
Building the clauses of one step is polynomial-time.
Building the clauses of one equation is polynomial-time.
Building all equations is polynomial-time, with the number of equations in unary.
The Valiant–Vazirani reduction is polynomial-time, on the framed encoding of the formula followed by the raw random bits.
Semantics of the parity equations #
The clauses of a step hold exactly when next = prev ^^ (bit && x).
Variables of the reduced formula #
Soundness and isolation #
Soundness. A satisfying assignment of the reduced formula restricts to one of φ: the
equations only add constraints.
The satisfying assignments of φ, read off at the occurrences of its variables.
Instances For
Isolation gives unique satisfiability. If exactly one satisfying assignment of φ hashes
to zero under the equations read from w, then φ with these equations is uniquely
satisfiable: the auxiliary variables are determined by the original ones.
The success probability #
A satisfiable formula has a solution.
The Valiant–Vazirani lemma in integers: for a nonempty set S of bit strings of length
M, with k = log₂ #S + 2 random equations, exactly one element of S satisfies them for at
least 3 / 16 of the 2 ^ (k M + k) affine seeds.
Counting random words #
Reading the coefficients and offsets is a bijection from words of exactly
k * width + k bits.
The number of random bits the reduction reads on φ: hashBits φ selector bits, then the
coefficients and offsets of up to φ.vars.length + 2 equations of φ.vars.length terms.
Instances For
The reduction reads at most (φ.vars.length + 2) ^ 2 random bits.
The Valiant–Vazirani reduction succeeds with probability Ω(1 / n). For a satisfiable
formula φ with n = φ.vars.length variable occurrences and any number m ≥ randomBits φ of
random bits, the reduced formula is uniquely satisfiable for at least a 3 / (32 (n + 3))
fraction of the random words of length m. Since n counts occurrences, not variables, this is
Ω(1 / |φ|) in the length of the formula, weaker than the textbook bound 1 / (8 v) in the
number v of variables.
The Valiant–Vazirani success probability as a density: for a satisfiable formula φ with
n = φ.vars.length variable occurrences and m ≥ randomBits φ, a uniformly random word of
length m makes the reduced formula uniquely satisfiable with probability at least
3 / (32 (n + 3)).
Amplification #
Amplification by independent rows. If at least a 3 / (32 M) fraction of the words of
length W are good, then among the words of 11 M rows of W bits, at least half have a good
row: the repeated-trials bound Fintype.half_le_dens_filter_exists_apply_mem, transferred along
the block decomposition.