non-linear arithmetic sat/smt summer school 2014
DESCRIPTION
Non-linear Arithmetic SAT/SMT Summer School 2014. Leonardo de Moura Microsoft Research Slides at: http ://leodemoura.github.io/. Applications. IMO. [2001] Forall , prove that [2005] Forall , prove that. Polynomial Constraints. AKA Existential Theory of the Reals R. Milestones. - PowerPoint PPT PresentationTRANSCRIPT
Non-linear ArithmeticSAT/SMT Summer School 2014
Leonardo de MouraMicrosoft Research
Slides at: http://leodemoura.github.io/
Applications
IMO[2001] Forall , prove that
[2005] Forall , prove that
Polynomial Constraints
AKAExistential Theory of the Reals
R
Milestones
1637 1732 1830 1835 1876 1930 1975820 1247
RCF admits QEnon elementary complexity
QE by CADDoubly exponential
PSPACE
R
How hard is R?
NP-hardnessx is “Boolean” x (x-1) = 0 x or y or z x + y + z > 0
PSPACE membershipCanny – 1988,Grigor’ev – 1988
NP
Example
,,,…,
𝑥1=2𝑥2=4𝑥3=16
𝑥𝑛=22𝑛
Main TechniquesHigh-School Level Procedures - Cohen, Muchnick, Hormander 60’s
Wu’s method for Geometry Theorem Proving - Wu 1983
Solving equations in via Gröbner Basis - Buchberger 1985
CAD: Cylindrical Algebraic Decomposition 70’s
Ben-Or, Kozen, Reif’s doubly exponential procedure 80’s
VTS: Virtual Term Substitution (Weispfenning 1988)Special cases (e.g., quadratic, cubic) for QE
ICP: Interval Constraint Propagation
Polynomials
Univariate
Multivariate
Reduction to a single equation
Example
Polynomial division (univariate)
polydiv(f, g) q := 0r := fwhile deg(r)>= deg(g)
invariant f = q.g + rd := deg(r)-deg(g)q := q + lc(r)/lc(g).xd
r := r - lc(r)/lc(g).xd.g
lc : leading coefficient
Example
f: , g:
q := 0 r := ,
lc(r) = 3, lc(g)=1, deg(r)-deg(g) = 1
q := , r :=
lc(r)=1, deg(r)-deg(g) = 0
q := , r :=
3 𝑥3+𝑥2+1=(3 𝑥+1 ) (𝑥2+1 )−3 𝑥f = q . g + r
Important
If Then
The sign of at a root (aka zero) of is equal to the sign of at
Polynomial Sequence
Example
at 1
= 2
Sturm Sequence for (, )
Sturm Sequence for (, )
forall
Sturm Theorem
is the derivative of
Number of zeros in
Example
Example
Example
0 2 4 6+ + - +- + - ++ - + +- + + +
Simple procedure
We can already decide formulas such as
Example:
Only the signs of the leading coefficients matter at and
-+ +- +- -
Sturm-Tarski Theorem
is the derivative of
-
Sturm-Tarski Theorem
= Numbers of zeros (roots) of
=
=
=
System of equations
1 1 1
0 1 -1
0 1 1
New procedure
Now, we can decide formulas such as,
New procedure
Now, we can decide formulas such as
Example:
1 1 1 = 2
0 1 -1
0 1 1 = 2
New procedure
Now, we can decide formulas such as
Example:
1 1 1 = 2
0 1 -1
0 1 1 = 2
¿ (𝑔=0 )=1 ,¿ (𝑔>0 )=1 ,¿ (𝑔<0 )=0
New procedure
Now, we can decide formulas such as
What about ?
1 1 1 = 2
0 1 -1
0 1 1 = 2
¿ (𝑔=0 )=1 ,¿ (𝑔>0 )=1 ,¿ (𝑔<0 )=0
Sturm-Tarski Theorem
Sturm-Tarski Theorem
New procedure
Now, we can decide formulas such as, We can generalize to
equations!
We can do better than
Ben-Or, Kozen, Reif OptimizationNumber of zeros (roots) of Each “unknown” is an integer
Solve the system incrementally! Suppose Found zeros!
…
Missing case
What about formulas such as
?
Given take
1)
’s have constant sign, use sign of leading coefficients.
2)
’s have at most one zero, use leading coefficients to
compute sign at and .
3)
and contains all realizable sign conditions.
Multivariate case
only uses the sign of the leading coefficients.
Pseudo Polynomial Division
is a polynomial in The previous decision algorithm does not work. does not have multiplicative inverse!
Trick (clean denominators)
Pseudo Polynomial Divisionpolydiv(f, g)
q := 0r := fl := 1while deg(r)>= deg(g)
invariant l.f = q.g + rl := lc(g).l q := lc(g).qr := lc(g).rd := deg(r)-deg(g)q := q + lc(r)/lc(g).xd
r := r - lc(r)/lc(g).xd.g
Pseudo Polynomial Division
polydiv(f, g) q := 0r := fl := 1while deg(r)>= deg(g)
invariant l.f = q.g + rl := lc(g).l d := deg(r)- deg(g)q := lc(g).q + lc(r).xd
r := lc(g).r - lc(r).xd.g
Example
We “want”
Example
Sturm “Tree” for multivariate poly
Branch on sign of the leading coefficient
𝑎𝑥2+𝑏𝑥+𝑐
𝑏𝑥+𝑐𝑐
𝑎<0 𝑎>0
𝛿<0𝛿=0
𝛿>0𝛿=0
𝛿>0𝛿<0
𝑎≠ 0 𝑎=0
𝑏≠0 𝑏=0
Sturm “Tree” for multivariate poly
Branch on sign of the leading coefficient
𝑎𝑥2+𝑏𝑥+𝑐
𝑏𝑥+𝑐𝑐
𝑎<0 𝑎>0
𝛿<0𝛿=0
𝛿>0𝛿=0
𝛿>0𝛿<0
𝑎≠ 0 𝑎=0
𝑏≠0 𝑏=0
Assumptions
+--
++-
𝑎𝑥2+𝑏𝑥+𝑐
No zero
Assumptions
+-0
++0
𝑎𝑥2+𝑏𝑥+𝑐
1 zero
Assumptions
+-+
+++
𝑎𝑥2+𝑏𝑥+𝑐
2 zeros
Model-guided procedure
Build model incrementally (like a SAT solver)Given polynomials in An assignment for We have to consider only one branch of the tree!Example:
Example:
Example:
Assign:
Example:
Assign:
3 No solutions
Example:
Assign:
3 No solutions
𝑦+2>0
Idea: Generalize the inconsistency using the corresponding branch of the Sturm tree
Example:
Assign:
3 No solutions
𝑦+2>0
Idea: Generalize the inconsistency using the corresponding branch of the Sturm tree
𝑦 2+1>0
Example:
Assign:
3 No solutions
𝑦+2>0
Idea: Generalize the inconsistency using the corresponding branch of the Sturm tree
𝑦 2+1>0− 𝑦4−2 𝑦2+2 𝑦+3>0
Example:
Assign:
3 No solutions
1
𝑦+2>0
Idea: Generalize the inconsistency using the corresponding branch of the Sturm tree
𝑦 2+1>0− 𝑦4−2 𝑦2+2 𝑦+3>0
Example:
Assign:
1
𝑦+2>0𝑦 2+1>0− 𝑦4−2 𝑦2+2 𝑦+3>0
+---+
++-++
Example:
Assign:
1
𝑦+2>0𝑦 2+1>0− 𝑦4−2 𝑦2+2 𝑦+3>0
+---+
++-++
(𝑦+2 )𝑥4+ (𝑦 2+1 )𝑥2+1>0
Example:
Assign:
1
𝑦+2>0REDUNDANT − 𝑦4−2 𝑦2+2 𝑦+3>0
+---+
++-++
(𝑦+2 )𝑥4+ (𝑦 2+1 )𝑥2+1>0
Example:
Assign:
1
𝑦+2>0 REDUNDANT
+---+
++-++
(𝑦+2 )𝑥4+ (𝑦 2+1 )𝑥2+1>0
Example:
Assign:
𝑦+2>0
(𝑦+2 )𝑥4+ (𝑦 2+1 )𝑥2+1>0
Example:
Assign:
¬ ( 𝑦+2>0 )∨ (𝑦+2 )𝑥4+ (𝑦 2+1 )𝑥2+1>0
¬ ( 𝑦+2>0 )∨ (𝑦+2 )𝑥4+ (𝑦 2+1 )𝑥2+1≥0
¬ ( 𝑦+2>0 )∨¬((𝑦+2 )𝑥4+ (𝑦2+1 ) 𝑥2+1<0)
Example:
Assign:
¬ ( 𝑦+2>0 )∨¬((𝑦+2 )𝑥4+ (𝑦2+1 ) 𝑥2+1<0)
Resolvent: The resolvent “blocks” , and many other values.
Example:
Assign:
¬ ( 𝑦+2>0 )∨¬((𝑦+2 )𝑥4+ (𝑦2+1 ) 𝑥2+1<0)
Resolvent: The resolvent “blocks” , and many other values.
The problem is unsat
How do we represent an assignment?
Real algebraic numbers
√2+√3
First zero of
Tower of algebraic extensions
ℚ (𝛼1 )…(𝛼𝑘)
Tower of extensions(Computable) ordered field Operations:
Approximation: -interval
Refine approximation
Binary Rational
Algebraic Extensions
is a root of a polynomial with coefficients in Encoding as polynomial + interval
Algebraic Extensions
The elements of are polynomials .
Implement using polynomial arithmetic.
Compute sign (when possible) using interval arithmetic.
Algebraic Extensions
Let be =
We can normalize a by computing the polynomial remainder.
Polynomial Remainder
Algebraic Extensions: non-minimal Polynomials
Computing the inverse of , where
Find s.t.
Compute the extended GCD of and .
0
Algebraic Extensions: non-minimal Polynomials
We only use square-free polynomials in
They are not necessarily minimal in our implementation.
Solution: Dynamically refine , when computing inverses.
Only is is minimal
CAD “Big Picture”1. Project/Saturate set of polynomials 2. Lift/Search: Incrementally build assignment
Isolate roots of polynomials Select a feasible cell , and assign some If there is no feasible cell, then backtrack
CAD “Big Picture”𝑥2+ 𝑦2−1<0𝑥 𝑦−1>0 1. Saturate
𝑥4−𝑥2+1
𝑥𝑥2−1
+ + + + + + ++ 0 - - - 0 +- - - 0 + + +
2. Search
CAD “Big Picture”𝒙𝟐+𝒚𝟐−𝟏<0𝒙 𝒚 −𝟏>0 1. Saturate
𝑥4−𝑥2+1
𝑥𝑥2−1
+ + + + + + ++ 0 - - - 0 +- - - 0 + + +
𝒙−𝟐
+ + ++ 0 -
2. Search
CAD “Big Picture”𝒙𝟐+𝒚𝟐−𝟏<𝟎𝑥 𝑦−1>0 1. Saturate
𝑥4−𝑥2+1
𝑥𝑥2−1
+ + + + + + ++ 0 - - - 0 +- - - 0 + + +
𝒙−𝟐
+ + ++ 0 -
2. Search
CONFLICT
Delineability
Resources
http://tinyurl.com/ksb32xw