Abstract interpretation meets convex optimization

Numerical static program analyses by abstract interpretation, e.g., the problem of inferring bounds for the values of numerical program variables, are faced with the problem that the abstract domains often contain infinite ascending chains. In order to enforce termination within the abstract interpretation framework, a widening/narrowing approach can be applied that trades the guarantee of termination against a potential loss of precision. Alternatively, recently strategy improvement algorithms have been proposed for computing numerical invariants which do not suffer the imprecision incurred by widenings. Before, strategy improvement algorithms have successfully been applied for solving two-players zero-sum games. In this article we discuss and compare max-strategy and min-strategy improvement algorithms for static program analysis. For that, the algorithms are cast within a common general framework of solving systems of fixpoint equations x->=e where the right-hand sides e are maxima of finitely many monotone and concave functions. Then we indicate how the general setting can be instantiated for inferring numerical invariants of programs based on non-linear templates.

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

[2]  Helmut Seidl,et al.  Precise Fixpoint Computation Through Strategy Iteration , 2007, ESOP.

[3]  Helmut Seidl,et al.  Precise Relational Invariants Through Strategy Iteration , 2007, CSL.

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

[5]  Antoine Miné,et al.  The octagon abstract domain , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[6]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[7]  Helmut Seidl,et al.  Precise Interval Analysis vs. Parity Games , 2008, FM.

[8]  Eric Feron,et al.  Control software analysis, part II: Closed-loop analysis , 2008, ArXiv.

[9]  Kim-Chuan Toh,et al.  Solving semidefinite-quadratic-linear programs using SDPT3 , 2003, Math. Program..

[10]  Helmut Seidl,et al.  Computing Relaxed Abstract Semantics w.r.t. Quadratic Zones Precisely , 2010, SAS.

[11]  Helmut Seidl,et al.  Solving systems of rational equations through strategy iteration , 2011, TOPL.

[12]  Monique Laurent,et al.  Semidefinite optimization , 2019, Graphs and Geometry.

[13]  Eric Goubault,et al.  Coupling policy iteration with semi-definite relaxation to compute accurate numerical invariants in static analysis , 2010, Log. Methods Comput. Sci..

[14]  Eric Feron,et al.  Control software analysis, Part I Open-loop properties , 2008, ArXiv.

[15]  Stephen J. Wright Primal-Dual Interior-Point Methods , 1997, Other Titles in Applied Mathematics.

[16]  Torben Amtoft,et al.  Faithful Translations between Polyvariant Flows and Polymorphic Types , 2000, ESOP.

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

[18]  Kim-Chuan Toh,et al.  SDPT3 -- A Matlab Software Package for Semidefinite Programming , 1996 .

[19]  Masakazu Kojima,et al.  Implementation and evaluation of SDPA 6.0 (Semidefinite Programming Algorithm 6.0) , 2003, Optim. Methods Softw..

[20]  Henrik Björklund,et al.  Complexity of Model Checking by Iterative Improvement: The Pseudo-Boolean Framework , 2003, Ershov Memorial Conference.

[21]  Paolo Rapisarda,et al.  Proceedings 15th International Symposium on Mathematical Theory of Networks and Systems , 2002 .

[22]  Antoine Mid The Octagon Abstract Domain , 2001 .

[23]  Stephen A. Vavasis,et al.  Quadratic Programming is in NP , 1990, Inf. Process. Lett..

[24]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[25]  Eric Goubault,et al.  Computing the smallest xed point of nonexpansive mappings arising in game theory and static analysis of programs , 2009 .

[26]  Henny B. Sipma,et al.  Scalable Analysis of Linear Systems Using Mathematical Programming , 2005, VMCAI.

[27]  James M. Ortega,et al.  Iterative solution of nonlinear equations in several variables , 2014, Computer science and applied mathematics.

[28]  Eric Goubault,et al.  A Policy Iteration Algorithm for Computing Fixed Points in Static Analysis of Programs , 2005, CAV.

[29]  Brian Borchers,et al.  Implementation of a primal–dual method for SDP on a shared memory parallel architecture , 2007, Comput. Optim. Appl..

[30]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[31]  Ankur Taly,et al.  Static Analysis by Policy Iteration on Relational Domains , 2007, ESOP.

[32]  Masakazu Kojima,et al.  SDPARA: SemiDefinite Programming Algorithm paRAllel version , 2003, Parallel Comput..

[33]  Michael L. Overton,et al.  Large-scale semidefinite programs in electronic structure calculation , 2007, Math. Program..

[34]  Henny B. Sipma,et al.  Efficient Strongly Relational Polyhedral Analysis , 2006, VMCAI.

[35]  Henrik Björklund,et al.  Optimization on Completely Unimodal Hypercubes , 2002 .

[36]  Jos F. Sturm,et al.  A Matlab toolbox for optimization over symmetric cones , 1999 .

[37]  Brian Borchers CSDP 2.3 user's guide , 1999 .