A reflexive tactic for polynomial positivity using numerical solvers and floating-point computations

Polynomial positivity over the real field is known to be decidable but even the best algorithms remain costly. An incomplete but often efficient alternative consists in looking for positivity witnesses as sum of squares decompositions. Such decompositions can in practice be obtained through convex optimization. Unfortunately, these methods only yield approximate solutions. Hence the need for formal verification of such witnesses. State of the art methods rely on heuristic roundings to exact solutions in the rational field. These solutions are then easy to verify in a proof assistant. However, this verification often turns out to be very costly, as rational coefficients may blow up during computations. Nevertheless, overapproximations with floating-point arithmetic can be enough to obtain proofs at a much lower cost. Such overapproximations being non trivial, it is mandatory to formally prove that rounding errors are correctly taken into account. We develop a reflexive tactic for the Coq proof assistant allowing one to automatically discharge polynomial positivity proofs. The tactic relies on heavy computation involving multivariate polynomials, matrices and floating-point arithmetic. Benchmarks indicate that we are able to formally address positivity problems that would otherwise be untractable with other state of the art methods.

[1]  Cyril Cohen,et al.  Refinements for Free! , 2013, CPP.

[2]  László Lovász,et al.  Factoring polynomials with rational coefficients , 1982 .

[3]  Makoto Yamashita,et al.  A high-performance software package for semidefinite programs: SDPA 7 , 2010 .

[4]  Dale Miller,et al.  Certified Programs and Proofs , 2012, Lecture Notes in Computer Science.

[5]  César A. Muñoz,et al.  Formalization of Bernstein Polynomials and Applications to Global Optimization , 2013, Journal of Automated Reasoning.

[6]  Siegfried M. Rump,et al.  Verification methods: rigorous results using floating-point arithmetic , 2010, Acta Numerica.

[7]  B. Borchers A C library for semidefinite programming , 1999 .

[8]  Frédéric Besson,et al.  Fast Reflexive Arithmetic Tactics the Linear Case and Beyond , 2006, TYPES.

[9]  Thomas C. Hales,et al.  Formal Verification of Nonlinear Inequalities with Taylor Interval Approximations , 2013, NASA Formal Methods.

[10]  Anton van den Hengel,et al.  Semidefinite Programming , 2014, Computer Vision, A Reference Guide.

[11]  J. Lasserre Moments, Positive Polynomials And Their Applications , 2009 .

[12]  César A. Muñoz,et al.  A Formally Verified Generic Branching Algorithm for Global Optimization , 2013, VSTTE.

[13]  Pierre Corbineau,et al.  On the Generation of Positivstellensatz Witnesses in Degenerate Cases , 2011, ITP.

[14]  Pierre-Yves Strub,et al.  Formal proofs of transcendence for e and pi as an application of multivariate and symmetric polynomials , 2015, CPP.

[15]  John Harrison,et al.  Verifying Nonlinear Real Formulas Via Sums of Squares , 2007, TPHOLs.

[16]  Benjamin Grégoire,et al.  Extending Coq with Imperative Features and Its Application to SAT Verification , 2010, ITP.

[17]  Assalé Adjé,et al.  Property-based Polynomial Invariant Generation Using Sums-of-Squares Optimization , 2015, SAS.

[18]  Stephen P. Boyd,et al.  Convex Optimization , 2004, Algorithms and Theory of Computation Handbook.

[19]  James Demmel,et al.  IEEE Standard for Floating-Point Arithmetic , 2008 .

[20]  Benjamin Grégoire,et al.  Full Reduction at Full Throttle , 2011, CPP.

[21]  A. Tarski A Decision Method for Elementary Algebra and Geometry , 2023 .

[22]  Johan Löfberg,et al.  Pre- and Post-Processing Sum-of-Squares Programs in Practice , 2009, IEEE Transactions on Automatic Control.

[23]  Enrico Tassi,et al.  A Small Scale Reflection Extension for the Coq system , 2008 .

[24]  Jean B. Lasserre,et al.  Global Optimization with Polynomials and the Problem of Moments , 2000, SIAM J. Optim..

[25]  Christine Paulin-Mohring,et al.  The coq proof assistant reference manual , 2000 .

[26]  Guillaume Melquiond,et al.  Flocq: A Unified Library for Proving Floating-Point Algorithms in Coq , 2011, 2011 IEEE 20th Symposium on Computer Arithmetic.

[27]  Pablo A. Parrilo,et al.  Semidefinite programming relaxations for semialgebraic problems , 2003, Math. Program..

[28]  George E. Collins,et al.  Quantifier elimination for real closed fields by cylindrical algebraic decomposition , 1975 .

[29]  Victor Magron,et al.  NLCertify: A Tool for Formal Nonlinear Optimization , 2014, ICMS.

[30]  Sriram Sankaranarayanan,et al.  Validating numerical semidefinite programming solvers for polynomial invariants , 2016, SAS.

[31]  B. Borchers CSDP, A C library for semidefinite programming , 1999 .

[32]  Guillaume Melquiond,et al.  Proving Tight Bounds on Univariate Expressions with Elementary Functions in Coq , 2016, Journal of Automated Reasoning.

[33]  Yinyu Ye,et al.  Algorithm 875: DSDP5—software for semidefinite programming , 2008, TOMS.

[34]  Pierre Roux Formal Proofs of Rounding Error Bounds With application to an automatic positive definiteness check , 2017 .

[35]  Siegfried M. Rump,et al.  Verification of Positive Definiteness , 2006 .