computation in real closed infinitesimal and transcendental extensions of the rationals
DESCRIPTION
Computation in Real Closed Infinitesimal and Transcendental Extensions of the Rationals. Leonardo de Moura Grant Passmore. What?. Transcendental. Infinitesimal. FindRoots ( ). Real Closed Fields. Ordered Field Positive elements are squares All polynomials of odd degree have roots. - PowerPoint PPT PresentationTRANSCRIPT
Computation in Real Closed Infinitesimal andTranscendental Extensions of the Rationals
Leonardo de MouraGrant Passmore
What?
𝜋+𝜖<𝜋
1+𝜖𝜖2
>10100
FindRoots ()
√2+√3
InfinitesimalTranscendental
3√ 19− 3√ 29 + 3√ 49=3√ 3√2−1
Real Closed Fields
ℝ
ℝ 𝑎𝑙𝑔
⊆
Real Algebraic Numbers
Ordered FieldPositive elements are squares All polynomials of odd degree have roots
Real Closed Fields
ℝ
ℝ 𝑎𝑙𝑔=~ℚ
⊆Real Closure of the Rational Numbers
Real Closed Fields
ℝ
ℝ 𝑎𝑙𝑔=~ℚ
⊆~𝐾 ,𝐾=ℚ(𝜋)
⊆Field extension
Real Closed Fields
ℝ
ℝ 𝑎𝑙𝑔=~ℚ
⊆~𝐾 ,𝐾=ℚ(𝜋)
⊆~𝐾 1 ,𝐾 1=ℚ(𝜋 )(𝑒)⊆
Real Closed Fields
ℝ
ℝ 𝑎𝑙𝑔=~ℚ
⊆
~𝐾 ,𝐾=ℚ(𝜋)
⊆
~𝐾 1,𝐾 1=ℚ(𝜋 )(𝑒)
⊆ℍ⊆
⊆
~𝐾 2 ,𝐾 2=ℚ (𝜋)(𝑒)(𝜖)⊇Hyperreals
Infinitesimal
Real Closed Fields
ℝ
ℝ 𝑎𝑙𝑔=~ℚ
⊆
~𝐾 ,𝐾=ℚ(𝜋)
⊆
~𝐾 1,𝐾 1=ℚ(𝜋 )(𝑒)
⊆ℍ⊆
⊆
~𝐾 2 ,𝐾 2=ℚ (𝜋)(𝑒)(𝜖)⊇Hyperreals
Infinitesimal
Why?
NLSat: Nonlinear Arithmetic Solver (RCF) IJCAR 2012(joint work with Dejan Jovanovic)
Also relevant for any CAD-based procedure, and model generating solvers
NLSat bottlenecks:
• Real algebraic number computations
• Subresultant computations
NLSat
𝑥→−√2Decide
NLSat
𝑥→−√2DecideThere is no s.t.
NLSat
𝑥→−√2DecideThere is no s.t. Conflict resolution (and backtrack) implies
NLSat
𝑥→√2Decide𝑦→−1/2Decide
NLSat
Example:
𝑦 5− 𝑦+(𝑥¿¿3+1)¿
Before: timeout (old package used Resultant theory)After: 0.05 secs
NLSat + Transcendental constants
Nonlinear Arithmetic Solver
Transcendental Constants (e.g., MetiTarski)
Exact Nonlinear Optimization (on demand)
Find smallest s.t.
Output:unsatunboundedminimum()infimum()
Exact Nonlinear Optimization (on demand)
Find smallest s.t.
Observation 1:
Univariate case is easy
Inefficient solution:
Exact Nonlinear Optimization (on demand)
Find smallest s.t.
Observation 2:Adapt NLSat for solving the satisfiability modulo assignment problem.
Satisfiability Modulo Assignment (SMA)
Given and Output:sat satisfies
unsat() implies and is false
No-good sampling
,
,
, …, …
Finite decomposition property:The sequence is finite
approximates
Exact Nonlinear Optimization (on demand)
−∞
Univariate minimization
Related WorkTranscendental constants
MetiTarskiInterval Constraint Propagation (ICP)
RealPaver, Rsolver, iSat, dReal
Reasoning with InfinitesimalsACL2, Isabelle/HOLNonstandard analysis
Real Closure of a Single Infinitesimal Extension [Rioboo]Puiseux series
Coste-Roy: encoding algebraic elements using Thom’s lemma
Our approach
Tower of extensions
Hybrid representation
Interval (arithmetic) + Thom’s lemma
Clean denominators
Non-minimal defining polynomials
Tower of extensions
…
Transcendental, Infinitesimal, or
Algebraic extension
Tower of extensions
Transcendental Extensions
Infinitesimal Extensions
Algebraic Extensions
ℚ (𝑡 1)… (𝑡𝑛 ) (𝜖1)… (𝜖𝑚 ) (𝛼1 )… (𝛼𝑘)
Tower of extensionsBasic Idea:
Given (computable) ordered field Implement
Tower of extensions(Computable) ordered field Operations:
Approximation: -interval
Refine approximation
Binary Rational
(Computable) Transcendental Extensions
-interval
𝜋2+𝜋 −2𝜋+1
Elements of the extension are encoded as rational functions
(Computable) Transcendental Extensions
12𝜋+ 1
𝜋+1=
12𝜋2
+12𝜋+1
𝜋+112𝜋+ 1
𝜋+1=
12𝜋2
+12𝜋+1
𝜋+1
Standard normal form for rational functionsGCD(numerator, denominator) = 1Denominator is a monic polynomial
(Computable) Transcendental Extensions
Refine intervalInterval arithmeticRefine coefficients and extension
Zero iff numerator is the zero polynomialIf is not the zero polynomial, then can’t be zero, since is transcendental.
Remark is transcendental with respect to
is not transcendental with respect to
Infinitesimal Extensions
Every infinitesimal extension is transcendental
Rational functions
sign of first non zero coefficient
Non-refinable intervals
Algebraic Extensions
is a root of a polynomial with coefficients in Encoding as polynomial + interval does not work may not be Archimedian
Roots can be infinitely close to each other.Roots can be greater than any Real.
Thom’s LemmaWe can always distinguish the roots of a polynomial in a RCF using the signs of the derivatives
Algebraic Extensions
Three roots of
Roots: , ,
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
Algebraic Extensions
Given Feasible sign assignments of at roots of in Based on Sturm-Tarski TheoremBen-Or et al algorithm.
where
Algebraic Extensions: Clean Representation
Clean denominators of coefficients of in
Use pseudo-remainder when computing Sturm-sequences.
Examplewhere is (
𝛼
Examplewhere is (
𝛼
𝜋
1 1
Examplewhere is (
𝛼
𝜋
1 1 1
√2
Examplewhere is (
𝛼
𝜋
1 1 1
√2
𝜖
1
Examplewhere is (
𝛼
𝜋
1 1 1
√2
𝜖
1𝜋1
Examples
msqrt2, sqrt2 = MkRoots([-2, 0, 1])
print(msqrt2)
>> root(x^2 + -2, (-oo, 0), {})
print(sqrt2)
>> root(x^2 + -2, (0, +oo), {})
print(sqrt2.decimal(10))
>> 1.4142135623?
−2+𝑥2√2−√2
Examplesr1,r2,r3,r4 = MkRoots([1, 0, -10, 0, 1])
msqrt2, sqrt2 = MkRoots([-2, 0, 1])
msqrt3, sqrt3 = MkRoots([-3, 0, 1])
print sqrt3 + sqrt2 == r4>> True
print sqrt3 + sqrt2 > r3>> True
print sqrt3 + msqrt2 == r3>> True
1−10 𝑥2+𝑥4
Examples
pi = Pi()
rs = MkRoots([pi, - sqrt2, 0, 0, 0, 1])
print(len(rs))
>> 1
print(rs[0])
>> root(x^5 + -1 root(x^2 + -2, (0, +oo), {}) x + pi, (-oo, 0), {})
𝜋−√2𝑥+𝑥5
Examples
eps = MkInfinitesimal()
print(eps < 0.000000000000001)
>> True
print(1/eps > 10000000000000000000000)
>> True
print(1/eps + 1 > 1/eps)
>> True
[r] = MkRoots([-eps, 0, 0, 1])
print(r > eps)
>> True −𝜖+𝑥33√𝜖>𝜖
Infinity value
Examples
[x] = MkRoots([-1, -1, 0, 0, 0, 1])
[y] = MkRoots([-197, 3131, -31*x**2, 0, 0, 0, 0, x])
[z] = MkRoots([-735*x*y, 7*y**2, -1231*x**3, 0, 0, y])
print x.decimal(10), y.decimal(10), z.decimal(10)
>> 1.1673039782?, 0.0629726948?, 31.4453571397?
instantaneously solved
Same Example in Mathematica
x = Root[#^5 - # - 1 &, 1]
y = Root[x #^7 - 31 x^2 #^2 + 3131 # - 197 &, 1]
z = Root[y #^5 - 1231 x^3 #^2 + 7 y^2 # - 735 x y &, 1]
10min, is encoded by a polynomial of degree 175.
Conclusion
Package for computing with transcendental, infinitesimal and algebraic extensions.
Main application: exact nonlinear optimization.
Code is available online.
You can play with it online: http://rise4fun.com/z3rcf
More info: https://z3.codeplex.com/wikipage?title=CADE24
PSPACE-complete procedures