Linear Absolute Value Relation Analysis

  • Liqian Chen
  • Antoine Miné
  • Ji Wang
  • Patrick Cousot
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6602)


Linear relation analysis (polyhedral analysis), devoted to discovering linear invariant relations among variables of a program, remains one of the most powerful abstract interpretations but is subject to convexity limitations. Absolute value enjoys piecewise linear expressiveness and thus natively fits to encode certain non-convex properties. Based on this insight, we propose to use linear absolute value relation analysis to discover linear relations among values and absolute values of program variables. Under the framework of abstract interpretation, the analysis yields a new numerical abstract domain, namely the abstract domain of linear absolute value inequalities k a k x k  + Σ k b k |x k | ≤ c), which can be used to analyze programs involving piecewise linear behaviors (e.g., due to conditional branches or absolute value function calls). Experimental results of our prototype are encouraging; The new abstract domain can find non-convex invariants of interest in practice.


Linear Complementarity Problem Convex Polyhedron Abstract Domain Complementary Condition Absolute Value 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Gnu multiple precision arithmetic library,
  2. 2.
    Allamigeon, X., Gaubert, S., Goubault, E.: Inferring min and max invariants using max-plus polyhedra. In: Alpuente, M., Vidal, G. (eds.) SAS 2008. LNCS, vol. 5079, pp. 189–204. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  3. 3.
    Bagnara, R., Hill, P.M., Zaffanella, E.: Widening operators for powerset domains. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 135–148. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  4. 4.
    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
  5. 5.
    Chua, L.O., Deng, A.-C.: Canonical piecewise-linear representation. IEEE Trans. on Circuits and Systems 35(1), 101–111 (1988)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Cottle, R.W., Pang, J.-S., Stone, R.E.: The Linear Complementarity Problem. Academic Press, New York (1992)zbMATHGoogle Scholar
  7. 7.
    Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: ACM POPL 1977, pp. 238–252. ACM Press, New York (1977)Google Scholar
  8. 8.
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: ACM POPL 1979, pp. 269–282. ACM Press, New York (1979)Google Scholar
  9. 9.
    Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: ACM POPL 1978, pp. 84–96. ACM Press, New York (1978)Google Scholar
  10. 10.
    Garey, M.R., Johnson, D.S.: Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman & Co, New York (1979)zbMATHGoogle Scholar
  11. 11.
    Giacobazzi, R., Ranzato, F.: Optimal domains for disjunctive abstract interpretation. Sci. Comput. Program 32(1-3), 177–210 (1998)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Granger, P.: Static analysis of arithmetical congruences. International Journal of Computer Mathematics, 165–199 (1989)Google Scholar
  13. 13.
    Gulavani, B.S., Gulwani, S.: A numerical abstract domain based on expression abstraction and max operator with application in timing analysis. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 370–384. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  14. 14.
    Halbwachs, N., Proy, Y.E., Roumanoff, P.: Verification of real-time systems using linear relation analysis. Formal Methods in System Design 11(2), 157–185 (1997)CrossRefGoogle Scholar
  15. 15.
    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
  16. 16.
    Lalire, G., Argoud, M., Jeannet, B.: Interproc.,
  17. 17.
    Laviron, V., Logozzo, F.: Subpolyhedra: A (more) scalable approach to infer linear inequalities. In: Jones, N.D., Müller-Olm, M. (eds.) VMCAI 2009. LNCS, vol. 5403, pp. 229–244. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  18. 18.
    LeVerge, H.: A note on Chernikova’s algorithm. Technical Report 635, IRISA, France (1992)Google Scholar
  19. 19.
    Mangasarian, O.L., Pang, J.S.: The extended linear complementarity problem. SIAM J. Matrix Anal. Appl. 16(2), 359–368 (1995)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Miné, A.: Relational abstract domains for the detection of floating-point run-time errors. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 3–17. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  21. 21.
    Miné, A.: The octagon abstract domain. Higher-Order and Symbolic Computation 19(1), 31–100 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Rival, X., Mauborgne, L.: The trace partitioning abstract domain. ACM Transactions on Programming Languages and Systems (TOPLAS) 29(5) (2007)Google Scholar
  23. 23.
    Rohn, J.: Solvability of systems of interval linear equations and inequalities. In: Linear Optimization Problems with Inexact Data, pp. 35–77. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  24. 24.
    Sankaranarayanan, S., Ivancic, F., Shlyakhter, I., Gupta, A.: Static analysis in disjunctive numerical domains. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 3–17. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  25. 25.
    Sankaranarayanan, S., Sipma, H., Manna, Z.: Scalable analysis of linear systems using mathematical programming. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 25–41. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  26. 26.
    Schrijver, A.: Theory of linear and integer programming. John Wiley & Sons, Inc., Chichester (1986)zbMATHGoogle Scholar
  27. 27.
    Simon, A.: Splitting the Control Flow with Boolean Flags. In: Alpuente, M., Vidal, G. (eds.) SAS 2008. LNCS, vol. 5079, pp. 315–331. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  28. 28.
    Simon, A., King, A., Howe, J.M.: Two Variables per Linear Inequality as an Abstract Domain. In: Leuschel, M. (ed.) LOPSTR 2002. LNCS, vol. 2664, pp. 71–89. Springer, Heidelberg (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Liqian Chen
    • 1
  • Antoine Miné
    • 2
    • 3
  • Ji Wang
    • 1
  • Patrick Cousot
    • 2
    • 4
  1. 1.National Laboratory for Parallel and Distributed ProcessingChangshaP.R. China
  2. 2.École Normale SupérieureParisFrance
  3. 3.CNRSFrance
  4. 4.CIMSNew York UniversityNew YorkUSA

Personalised recommendations