Motivation: Systems like this: v v 2 v 3 v 4 = v v 2 v 3 v 4 = 0 v 2 v 4 = 0 are very difficult for CNF SAT solvers although they can be solved using simple algebraic manipulations
Let c 0, c,...,c 2 n be a 0- vector of 2 n coefficients. For 0 j < n, let b i,j be the j th bit in the binary representation of number i. Our proof system targets sets of equations of the following form: 2 n i=0 c i v b i,0 v b i, 2...v b i,n n = 0 where variables v i take values from {0, }. Note: the term i = 0 is a constant. Each equation in the set is regarded to be a fact. A term is said to be multi-linear. example: v v 2 v 3 + v 2 v 3 + v v 3 + v + v 2 + = 0
New facts are derived from old facts using the following rules:. Any even sum of like terms in an equation may be replaced by 0. e.g.: v v 2 + v v 2 0 and + 0. Needed to eliminate terms when adding equations. 2. A factor v 2 may be replaced by v Needed to ensure terms remain multi-linear after multiplication 3. An equation may be multiplied by a term, the resulting equation may be reduced by the rule above. e.g.: v 3 v 4 (v + v 3 = 0) v v 3 v 4 + v 3 v 4 = 0. The new equation is said to be a new, derived fact. 4. Two equations may be added, using mod 2 arithmetic The new equation is said to be a new, derived fact.
Observe: solution spaces for two equations are complementary if they differ only in their c 0 term Example: v v 2 v 3 + v v 2 + v 2 v 3 + v + = 0 and v v 2 v 3 + v v 2 + v 2 v 3 + v = 0 are complementary. Derived equations have solution space at least as large as the original set Example: v = 0 added to v = 0 gives 0 = 0, which allows v = All derived equations + old equations have same solution space as the original set
Theorem: Using rules stated earlier, The equation =0 is always derivable from an inconsistent set of multi-linear equations and never derived from a consistent set.
Examples: The clause (v v 2 v 3 ) is represented by: v ( + v 2 )( + v 3 ) + v 2 ( + v 3 ) + v 3 + = 0 which reduces to v v 2 v 3 + v v 2 + v v 3 + v 2 v 3 + v + v 2 + v 3 + = 0. The clause ( v v 2 v 3 ) is represented by: ( + v )( + v 2 )( + v 3 ) + v 2 ( + v 3 ) + v 3 + = 0 which reduces to v v 2 v 3 + v v 2 + v v 3 + v = 0. The expression ( v v 2 v 3 ) (v v 2 v 3 ) is represented by: 2v v 2 v 3 + 2v v 2 + 2v v 3 + v 2 v 3 + 2v + v 2 + v 3 + = 0 v 2 v 3 + v 2 + v 3 + = 0 (same as (v 2 v 3 )) Observe: A BDD is an equation
Example: Solve the expression (v v 2 ) (v 2 v 3 ) (v 3 v ): v v 2 +v 2 = 0 () v 2 v 3 +v 3 = 0 (2) v v 3 +v = 0 (3) v v 2 v 3 +v 2 v 3 = 0 (4) v 3 () v v 2 v 3 +v 3 = 0 (5) (4) + (2) v v 2 v 3 +v v 3 = 0 (6) v (2) v v 2 v 3 +v = 0 (7) (6) + (3) v v 2 v 3 +v v 2 = 0 (8) v 2 (3) v v 2 v 3 +v 2 = 0 (9) (8) + () v +v 2 = 0 (0) (9) + (7) v +v 3 = 0 () (5) + (7) Solution: v = v 2 = v 3
Motivation: Systems like this: v v 2 v 3 v 4 = v v 2 v 3 v 4 = 0 v 2 v 4 = 0 are very difficult for CNF SAT solvers although they can be solved using simple algebraic manipulations v + v 2 + v 3 + v 4 + = 0 v + v 2 + v 3 + v 4 + = 0 v 2 + v 4 + = 0
An Algebraic Solver (ψ, d) /* Input: List of equations ψ = e,..., e m, integer d */ /* Output: satisfiable or unsatisfiable */ /* Locals: Set B of equations */ Set B. Repeat while ψ : Pop e ψ. Repeat while e B : first non-zero(e) = first non-zero(e ): Set e reduce(e + e ). /* Rule 4. */ If e is = 0: Output unsatisfiable If e is not 0 = 0: Set B B {e}. If degree(e) < d: Repeat for all variables v: If reduce(v e) has not been in ψ: Append ψ reduce(v e). /* Rule 3. */ Output satisfiable.
Theorem: The number of derivations used by the algebraic solver is within a polynomial factor of the minimum number possible. Theorem: minimum number of derivations used by the algebraic solver cannot be much greater than, and may sometimes be far less than, the minimum number needed by resolution.
Comparison with BDD operations (restrict(f,c)): f = (v v 2 ) ( v v 3 ) c = (v 2 v 3 ) v 0 v 3 v 2 0 0 0 v 2 0 v 3 0 0 v 0 v 3 v 2 0 0 0 Algebra: f : v v 3 + v 2 + v v 2 = 0 and c : v 2 v 3 + v 3 = 0 (v 2 v 3 ) (v v 3 + v 2 + v v 2 = 0) (v 2 v 3 = 0) + (v 2 v 3 + v 3 = 0) v 3 = 0. As BDDs: (v 2 v 3 ) means v 2 = v 3 = rows are 0, all other rows are. All rows of f are rows of (v 2 v 3 ) so product can be added as a fact. But when conjoined with c, the inference v 3 = 0 is obtained.
Comparison with BDD operations (gcf(f,c) and Ex. Quant.): On BDDs, gcf(f,c) depends on the variable ordering But gcf(f,c) may replace f, not so for algebra In algebra, ex. quant. means multiply two equations example: consider g = v v 2 v 3 + v v 3 + v + = 0. To ex. quant. away v 2 from g: form equations: v + = 0 (v 2 = ) v v 3 + v + = 0 (v 2 = 0) Then multiply (v + ) (v v 3 + v + ) = (v v 3 + v v 3 + v + ) = (v + ). But the quantified away variable can be in just one equation.
Integer Programming: Algebraic Methods Solve: M ψ α +b Z, α i {0, }, for all 0 i < n, where M ψ is the (0, ±) matrix representation of CNF formula ψ, b is an integer vector: b i is the number of - entries in row i of M ψ, and Z is a vector of s. A solution certifies ψ is satisfiable. No solution certifies its unsatisfiable. example: ( v 0 v v 7 ) ( v v 2 ) ( v 2 v 3 ) ( v 0 v 3 v 8 ) (v 0 v 6 v 7 ) ( v 5 v 6 ) ( v 4 v 5 v 9 ) (v 0 v 4 ) - 0 0 0 0 0-0 0 0-0 0 0 0 0 0 0 0 0-0 0 0 0 0 0-0 0-0 0 0 0 0 0 0 0 0 - - 0 0 0 0 0 0 0 0-0 0 0 0 0 0 0-0 0 0 0 0 0 0 0 0 0 0 2 α + 2 2 0