Polyhedral Approximation of Multivariate Polynomials Using Handelman’s Theorem

  • Alexandre Maréchal
  • Alexis Fouilhé
  • Tim King
  • David Monniaux
  • Michael Périn
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9583)


Convex polyhedra are commonly used in the static analysis of programs to represent over-approximations of sets of reachable states of numerical program variables. When the analyzed programs contain nonlinear instructions, they do not directly map to standard polyhedral operations: some kind of linearization is needed. Convex polyhedra are also used in satisfiability modulo theory solvers which combine a propositional satisfiability solver with a fast emptiness check for polyhedra. Existing decision procedures become expensive when nonlinear constraints are involved: a fast procedure to ensure emptiness of systems of nonlinear constraints is needed. We present a new linearization algorithm based on Handelman’s representation of positive polynomials. Given a polyhedron and a polynomial (in)equality, we compute a polyhedron enclosing their intersection as the solution of a parametric linear programming problem. To get a scalable algorithm, we provide several heuristics that guide the construction of the Handelman’s representation. To ensure the correctness of our polyhedral approximation, our ocaml implementation generates certificates verified by a checker certified in coq.


  1. 1.
    Bagnara, R., Hill, P.M., Zaffanella, E.: The Parma Polyhedra Library: Toward a complete set of numerical abstractions for the analysis and verification of hardware and software systems. Sci. Comput. Program. 72(1–2), 3–21 (2008). Tool available at MathSciNetCrossRefGoogle Scholar
  2. 2.
    Barrett, C., Stump, A., Tinelli, C.: The Satisfiability Modulo Theories Library (SMT-LIB) (2010).
  3. 3.
    Boland, D., Constantinides, G.A.: Bounding variable values and round-off effects using Handelman representations. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 30(11), 1691–1704 (2011)CrossRefGoogle Scholar
  4. 4.
    Boulmé, S., Maréchal, A.: Refinement to certify abstract interpretations, illustrated on linearization for polyhedra. In: Urban, C., Zhang, X. (eds.) Interactive Theorem Proving. LNCS, vol. 9236, pp. 100–116. Springer, Heidelberg (2015)Google Scholar
  5. 5.
    Chen, L., Miné, A., Wang, J., Cousot, P.: Interval polyhedra: an abstract domain to infer interval linear relationships. In: Palsberg, J., Su, Z. (eds.) SAS 2009. LNCS, vol. 5673, pp. 309–325. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  6. 6.
    Chevillard, S., Joldeş, M., Lauter, C.: Sollya: an environment for the development of numerical codes. In: Fukuda, K., Hoeven, J., Joswig, M., Takayama, N. (eds.) ICMS 2010. LNCS, vol. 6327, pp. 28–31. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  7. 7.
    Chevillard, S., Joldeş, M., Lauter, C.: Certified and fast computation of supremum norms of approximation errors. In: Computer Arithmetic (ARITH), pp. 169–176. IEEE Computer Society, June 2009Google Scholar
  8. 8.
    Chvatal, V.: Linear Programming. Series of books in the Mathematical Sciences. W. H., Freeman (1983)Google Scholar
  9. 9.
    Clauss, P., Fernandez, F.J., Gabervetsky, D., Verdoolaege, S.: Symbolic polynomial maximization over convex sets and its application to memory requirement estimation. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 17(8), 983–996 (2009)CrossRefGoogle Scholar
  10. 10.
    Corzilius, F., Loup, U., Junges, S., Ábrahám, E.: SMT-RAT: an SMT-compliant nonlinear real arithmetic toolbox. In: Cimatti, A., Sebastiani, R. (eds.) SAT 2012. LNCS, vol. 7317, pp. 442–448. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  11. 11.
    Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: ACM Principles of Programming Languages (POPL), pp.84–97. ACM Press, January 1978Google Scholar
  12. 12.
    Dantzig, G.B., Thapa, M.N.: Linear Programming 2: Theory and Extensions. Springer, Operations Research (2003)Google Scholar
  13. 13.
    de Moura, L., Bjørner, N.S.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  14. 14.
    de Moura, L., Jovanović, D.: A model-constructing satisfiability calculus. In: Giacobazzi, R., Berdine, J., Mastroeni, I. (eds.) VMCAI 2013. LNCS, vol. 7737, pp. 1–12. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  15. 15.
    Deters, M., Reynolds, A., King, T., Barrett, C., Tinelli, C.: A tour of cvc4: How it works, and how to use it. In: Proceedings of the 14th Conference on Formal Methods in Computer-Aided Design, FMCAD 2014, pp. 4:7–4:7, Austin, TX, 2014. FMCAD IncGoogle Scholar
  16. 16.
    Dutertre, B.: Yices 2.2. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 737–744. Springer, Heidelberg (2014)Google Scholar
  17. 17.
    Dutertre, B., de Moura, L.: A fast linear-arithmetic solver for DPLL(T). In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 81–94. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  18. 18.
    Dutertre, B., De Moura, L.: Integrating simplex with DPLL(T). Technical Report SRI-CSL-06-01, SRI International, computer science laboratory (2006)Google Scholar
  19. 19.
    Feautrier, P.: Parametric integer programming. RAIRO Rech. Opérationnelle 22(3), 243–268 (1988)zbMATHMathSciNetGoogle Scholar
  20. 20.
    Fouilhe, A., Monniaux, D., Périn, M.: Efficient generation of correctness certificates for the abstract domain of polyhedra. In: Logozzo, F., Fähndrich, M. (eds.) Static Analysis. LNCS, vol. 7935, pp. 345–365. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  21. 21.
    Ganzinger, H., Hagen, G., Nieuwenhuis, R., Oliveras, A., Tinelli, C.: DPLL(T): fast decision procedures. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 175–188. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  22. 22.
    Halbwachs, N.: Détermination automatique de relations linéaires vérifiées par les variables d’un programme. Université de Grenoble, Thèse de doctorat de troisième cycle, March 1979Google Scholar
  23. 23.
    Handelman, D.: Representing polynomials by positive linear functions on compact convex polyhedra. Pac. J. Math. 132(1), 35–62 (1988)zbMATHMathSciNetCrossRefGoogle Scholar
  24. 24.
    Jeannet, B., Miné, A.: Apron: a library of numerical abstract domains for static analysis. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 661–667. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  25. 25.
    Jones, C.N., Kerrigan, E.C., Maciejowski, J.M.: Lexicographic perturbation for multiparametric linear programming with applications to control. Automatica (2007)Google Scholar
  26. 26.
    Jourdan, J.-H., Laporte, V., Blazy, S., Leroy, X., Pichardie, D.: A formally-verified C static analyzer. In: ACM Principles of Programming Languages (POPL), pp. 247–259. ACM Press, January 2015Google Scholar
  27. 27.
    Jovanović, D., de Moura, L.: Solving non-linear arithmetic. In: Gramlich, B., Miller, D., Sattler, U. (eds.) IJCAR 2012. LNCS, vol. 7364, pp. 339–354. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  28. 28.
    Khanh, T.V., Vu, X., Ogawa, M.: rasat: SMT for polynomial inequality. In: Proceedings of the 12th International Workshop on Satisfiability Modulo Theories, SMT 2014, Vienna, Austria, July 17–18, 2014, p. 67 (2014)Google Scholar
  29. 29.
    Krivine, J.-L.: Anneaux préordonnés. J. d’ Anal. Math. 12, 307–326 (1964)zbMATHMathSciNetCrossRefGoogle Scholar
  30. 30.
    Lasserre, J.B.: Moments, Positive Polynomials and Their Applications. Imperial College Optimization Series, vol. 1. Imperial College Press, London (2010)zbMATHGoogle Scholar
  31. 31.
    Loechner, V., Wilde, D.K.: Parameterized polyhedra and their vertices. Int. J. Parallel Program. 2(6), 525–549 (1997). Tool available at CrossRefGoogle Scholar
  32. 32.
    Maréchal, A., Périn, M.: Three linearization techniques for multivariate polynomials in static analysis using convex polyhedra. Technical Report 7, Verimag, July 2014Google Scholar
  33. 33.
    Maréchal, A., Périn, M.: A linearization technique for multivariate polynomials using convex polyhedra based on Handelman’s theorem. J. Francophones des Langages Applicatifs (JFLA), January 2015Google Scholar
  34. 34.
    Miné, A.: Symbolic methods to enhance the precision of numerical abstract domains. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 348–363. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  35. 35.
    Muñoz, C., Narkawicz, A.: Formalization of a representation of Bernstein polynomials and applications to global optimization. J. Autom. Reasoning 51(2), 151–196 (2013)CrossRefGoogle Scholar
  36. 36.
    Néron, P.: A Quest for Exactness: Program Transformation for Reliable Real Numbers. Ph.D. thesis, École Polytechnique, Palaiseau, France (2013)Google Scholar
  37. 37.
    Prestel, A., Delzell, C.N.: Positive Polynomials: From Hilbert’s 17th Problem to Real Algebra. Springer-Verlag, June 2001Google Scholar
  38. 38.
    Schweighofer, M.: An algorithmic approach to Schmüdgen’s Positivstellensatz. J. Pure Appl. Algebra 166(3), 307–319 (2002)zbMATHMathSciNetCrossRefGoogle Scholar
  39. 39.
    Stump, A., Sutcliffe, G., Tinelli, C.: StarExec: a cross-community infrastructure for logic solving. In: Demri, S., Kapur, D., Weidenbach, C. (eds.) IJCAR 2014. LNCS, vol. 8562, pp. 367–373. Springer, Heidelberg (2014)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • Alexandre Maréchal
    • 1
  • Alexis Fouilhé
    • 1
  • Tim King
    • 2
  • David Monniaux
    • 2
  • Michael Périn
    • 1
  1. 1.Université Grenoble-Alpes, VERIMAGGrenobleFrance
  2. 2.CNRS, VERIMAGGrenobleFrance

Personalised recommendations