A Generic Framework for Interprocedural Analysis of Numerical Properties

  • Markus Müller-Olm
  • Helmut Seidl
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3672)


In his seminal paper [5], Granger presents an analysis which infers linear congruence relations between integer variables. For affine programs without guards, his analysis is complete, i.e., infers all such congruences. No upper complexity bound, though, has been found for Granger’s algorithm. Here, we present a variation of this analysis which runs in polynomial time. Moreover, we provide an interprocedural extension of this algorithm. These algorithms are obtained by means of multiple instances of a general framework for constructing interprocedural analyses of numerical properties. Finally, we indicate how the analyses can be enhanced to deal with equality guards interprocedurally.


Constraint System Extended State Numerical Property Congruence Relation Program Point 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Balakrishnan, G., Reps, T.W.: Analyzing Memory Accesses in x86 Executables. In: Duesterwald, E. (ed.) CC 2004. LNCS, vol. 2985, pp. 5–23. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  2. 2.
    Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgue, C., Mormiaux, D., Rival, X.: A Static Analyzer for Large Safety-Critical Software. In: Int. ACM Conf. on Programming Language Design and Implementation (PLDI), pp. 196–207 (2003)Google Scholar
  3. 3.
    Dor, N., Rodeh, M., Sagiv, M.: Cleanness checking of string manipulations in C programs via integer analysis. In: Cousot, P. (ed.) SAS 2001. LNCS, vol. 2126, pp. 194–212. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  4. 4.
    Granger, P.: Static Analysis of Arithmetical Congruences. Int. J. of Computer Math., 165–190 (1989)Google Scholar
  5. 5.
    Granger, P.: Static Analysis of Linear Congruence Equalities among Variables of a Program. In: Abramsky, S. (ed.) CAAP 1991 and TAPSOFT 1991. LNCS, vol. 493, pp. 169–192. Springer, Heidelberg (1991)Google Scholar
  6. 6.
    Gulwani, S., Necula, G.: Discovering Affine Equalities Using Random Interpretation. In: 30th ACM Symp. on Principles of Programming Languages (POPL), pp. 74–84 (2003)Google Scholar
  7. 7.
    Gulwani, S., Necula, G.: Precise Interprocedural Analysis Using Random Interpretation. In: 32th Ann. ACM Symp. on Principles of Programming Languages (POPL), pp. 324–337 (2005)Google Scholar
  8. 8.
    Hafner, J., McCurley, K.: Asymptotically Fast Triangularization of Matrices over Rings. SIAM J. of Computing 20(6), 1068–1083 (1991)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Karr, M.: Affine Relationships Among Variables of a Program. Acta Informatica 6, 133–151 (1976)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Lang, S.: Algebra, 3rd edn. Pearson Education, Inc., London (1993)zbMATHGoogle Scholar
  11. 11.
    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
  12. 12.
    Müller-Olm, M., Seidl, H.: A note on karr’s algorithm. In: Díaz, J., Karhumäki, J., Lepistö, A., Sannella, D. (eds.) ICALP 2004. LNCS, vol. 3142, pp. 1016–1028. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  13. 13.
    Müller-Olm, M., Seidl, H.: Precise Interprocedural Analysis through Linear Algebra. In: 31st ACM Symp. on Principles of Programming Languages (POPL), pp. 330–341 (2004)Google Scholar
  14. 14.
    Müller-Olm, M., Seidl, H.: Analysis of modular arithmetic. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 46–60. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  15. 15.
    Simon, A., King, A.: Analyzing string buffers in C. In: Kirchner, H., Ringeissen, C. (eds.) AMAST 2002. LNCS, vol. 2422, pp. 365–379. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  16. 16.
    Storjohann, A.: Algorithms for Matrix Canonical Forms. PhD thesis, ETH Zürich, Diss. ETH No. 13922 (2000)Google Scholar
  17. 17.
    Storjohann, A.: A Fast, Practical, and Deterministic Algorithm for Triangularizing Integer Matrices. Tech. Rep. 255, ETH Zürich (1996)Google Scholar
  18. 18.
    Zariski, O., Samuel, P.: Commutative Algebra, Nostrand, Princeton, NJ, vol. I (1958)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Markus Müller-Olm
    • 1
  • Helmut Seidl
    • 2
  1. 1.Fachbereich Informatik, LS 5Universität DortmundDortmundGermany
  2. 2.Institut für Informatik, I2TU MünchenMünchenGermany

Personalised recommendations