Not necessarily closed convex polyhedra and the double description method

Since the seminal work of Cousot and Halbwachs, the domain of convex polyhedra has been employed in several systems for the analysis and verification of hardware and software components. Although most implementations of the polyhedral operations assume that the polyhedra are topologically closed (i.e., all the constraints defining them are non-strict), several analyzers and verifiers need to compute on a domain of convex polyhedra that are not necessarily closed (NNC). The usual approach to implementing NNC polyhedra is to embed them into closed polyhedra in a higher dimensional vector space and reuse the tools and techniques already available for closed polyhedra. In this work we highlight and discuss the issues underlying such an embedding for those implementations that are based on the double description method, where a polyhedron may be described by a system of linear constraints or by a system of generating rays and points. Two major achievements are the definition of a theoretically clean, high-level user interface and the specification of an efficient procedure for removing redundancies from the descriptions of NNC polyhedra.

[1]  Andy King,et al.  Inferring Argument Size Relationships with CLP(R) , 1996, LOPSTR.

[2]  Nicolas Halbwachs,et al.  Verification of Linear Hybrid Systems by Means of Convex Approximations , 1994, SAS.

[3]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[4]  Ravi Kannan,et al.  Lattice translates of a polytope and the Frobenius problem , 1992, Comb..

[5]  H. Raiffa,et al.  3. The Double Description Method , 1953 .

[6]  Roberto Bagnara,et al.  Precise widening operators for convex polyhedra , 2003, Sci. Comput. Program..

[7]  N. V. Chernikoba Algorithm for discovering the set of all the solutions of a linear programming problem , 1968 .

[8]  Henny B. Sipma,et al.  Synthesis of Linear Ranking Functions , 2001, TACAS.

[9]  Nicolas Halbwachs,et al.  Verification of Real-Time Systems using Linear Relation Analysis , 1997, Formal Methods Syst. Des..

[10]  Michael Rodeh,et al.  Cleanness Checking of String Manipulations in C Programs via Integer Analysis , 2001, SAS.

[11]  Thomas A. Henzinger,et al.  A Note on Abstract Interpretation Strategies for Hybrid Automata , 1994, Hybrid Systems.

[12]  Roberto Bagnara,et al.  Possibly Not Closed Convex Polyhedra and the Parma Polyhedra Library , 2002, SAS.

[13]  N. Chernikova Algorithm for finding a general formula for the non-negative solutions of a system of linear equations , 1964 .

[14]  Roberto Bagnara,et al.  A New Encoding and Implementation of Not Necessarily Closed Convex Polyhedra , 2007 .

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

[16]  H. L. Verge A Note on Chernikova's algorithm , 1992 .

[17]  Thomas A. Henzinger,et al.  HYTECH: a model checker for hybrid systems , 1997, International Journal on Software Tools for Technology Transfer.

[18]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[19]  J. Stoer,et al.  Convexity and Optimization in Finite Dimensions I , 1970 .

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

[21]  Bernd Finkbeiner,et al.  An Update on STeP: Deductive-Algorithmic Verification of Reactive Systems , 1998, Tool Support for System Specification, Development and Verification.

[22]  Nicolas Halbwachs,et al.  Delay Analysis in Synchronous Programs , 1993, CAV.

[23]  Patrick Cousot Static analysis : 8th International Symposium, SAS 2001, Paris, France, July 16-18, 2001 : proceedings , 2001 .

[24]  Jean-Pierre Talpin,et al.  Polyhedral Analysis for Synchronous Languages , 1999, SAS.