Interprocedurally Analysing Linear Inequality Relations

  • Helmut Seidl
  • Andrea Flexeder
  • Michael Petter
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4421)


In this paper we present an alternative approach to interprocedurally inferring linear inequality relations. We propose an abstraction of the effects of procedures through convex sets of transition matrices. In the absence of conditional branching, this abstraction can be characterised precisely by means of the least solution of a constraint system. In order to handle conditionals, we introduce auxiliary variables and postpone checking them until after the procedure calls. In order to obtain an effective analysis, we approximate convex sets by means of polyhedra. Since our implementation of function composition uses the frame representation of polyhedra, we rely on the subclass of simplices to obtain an efficient implementation. We show that for this abstraction the basic operations can be implemented in polynomial time. First practical experiments indicate that the resulting analysis is quite efficient and provides reasonably precise results.


Linear Inequality Transition Matrice Constraint System Procedure Call Program Variable 
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.
    Bagnara, R., et al.: Precise widening operators for convex polyhedra. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 337–354. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  2. 2.
    Blanchet, B., et al.: A static analyzer for large safety-critical software. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 196–207. ACM Press, New York (2003)CrossRefGoogle Scholar
  3. 3.
    Cortadella, J., Clarisó, R.: The Octahedron Abstract Domain. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 312–327. Springer, Heidelberg (2004)Google Scholar
  4. 4.
    Cousot, P., Cousot, R.: Abstract interpretation frameworks. Journal of Logic and Computation 2(4), 511–547 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: 5th Ann. ACM Symposium on Principles of Programming Languages (POPL), pp. 84–97. ACM Press, New York (1978)CrossRefGoogle Scholar
  6. 6.
    Manna, Z., McCarthy, J.: Properties of programs and partial function logic. In: Machine Intelligence, vol. 5, pp. 27–37. Edinburgh University Press,, Edinburgh (1970)Google Scholar
  7. 7.
    Miné, A.: The Octagon abstract domain. In: Analysis, Slicing, and Transformation (AST), pp. 310–319 (2001)Google Scholar
  8. 8.
    Müller-Olm, M., Seidl, H.: Program analysis through linear algebra. In: 31th Ann. ACM Symposium on Principles of Programming Languages (POPL) (2004)Google Scholar
  9. 9.
    Müller-Olm, M., Seidl, H.: A generic framework for interprocedural analysis of numerical properties. In: Hankin, C., Siveroni, I. (eds.) SAS 2005. LNCS, vol. 3672, pp. 235–250. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  10. 10.
    Manna, Z., et al.: Efficient Strongly Relational Polyhedral Analysis. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 111–125. Springer, Heidelberg (2005)Google Scholar
  11. 11.
    Sankaranarayanan, S., Sipma, H.B., Manna, Z.: Constraint-Based Linear-Relations Analysis. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 53–68. Springer, Heidelberg (2004)Google Scholar
  12. 12.
    Schrijver, A.: Theory of linear and integer programming. John Wiley & Sons, Inc., New York (1986)zbMATHGoogle Scholar
  13. 13.
    Simon, A., King, A., Howe, J.M.: Two Variables per Linear Inequality as an Abstract Domain. In: Leuschel, M.A. (ed.) LOPSTR 2002. LNCS, vol. 2664, pp. 71–89. Springer, Heidelberg (2003)CrossRefGoogle Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • Helmut Seidl
    • 1
  • Andrea Flexeder
    • 1
  • Michael Petter
    • 1
  1. 1.Technische Universität München, Boltzmannstrasse 3, 85748 GarchingGermany

Personalised recommendations