Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4435))

Included in the following conference series:

Abstract

Polyhedral analysis [9] is an abstract interpretation used for automatic discovery of invariant linear inequalities among numerical variables of a program. Convexity of this abstract domain allows efficient analysis but also loses precision via convex-hull and widening operators. To selectively recover the loss of precision, sets of polyhedra (disjunctive elements) may be used to capture more precise invariants. However a balance must be struck between precision and cost.

We introduce the notion of affinity to characterize how closely related is a pair of polyhedra. Finding related elements in the polyhedron (base) domain allows the formulation of precise hull and widening operators lifted to the disjunctive (powerset extension of the) polyhedron domain. We have implemented a modular static analyzer based on the disjunctive polyhedral analysis where the relational domain and the proposed operators can progressively enhance precision at a reasonable cost.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: PLDI, pp. 196–207 (2003)

    Google Scholar 

  3. Chin, W.-N., Khoo, S.-C., Xu, D.N.: Deriving pre-conditions for array bound check elimination. In: Danvy, O., Filinski, A. (eds.) PADO 2001. LNCS, vol. 2053, pp. 2–24. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  4. Colby, C., Lee, P.: Trace-based program analysis. In: POPL, pp. 195–207 (1996)

    Google Scholar 

  5. Cousot, P.: Semantic foundations of program analysis. In: Program Flow Analysis: Theory and Applications (1981)

    Google Scholar 

  6. Cousot, P., Cousot, R.: Static determination of dynamic properties of programs. In: Proceedings of the Second International Symposium on Programming, pp. 106–130 (1976)

    Google Scholar 

  7. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL, pp. 238–252 (1977)

    Google Scholar 

  8. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: POPL, pp. 269–282 (1979)

    Google Scholar 

  9. Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: POPL, pp. 84–96 (1978)

    Google Scholar 

  10. Dongarra, J., Luszczek, P., Petitet, A.: The Linpack benchmark: past, present and future. Concurrency and Computation: Practice and Experience 15(9), 803–820 (2003)

    Article  Google Scholar 

  11. Flanagan, C., Qadeer, S.: Predicate abstraction for software verification. In: POPL, pp. 191–202 (2002)

    Google Scholar 

  12. Giacobazzi, R., Ranzato, F.: Optimal domains for disjunctive abstract intepretation. Sci. Comput. Program 32(1-3), 177–210 (1998)

    Article  MATH  Google Scholar 

  13. Bhargav, S., Gulavani, B.S., Rajamani, S.K.: Counterexample driven refinement for abstract interpretation. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006 and ETAPS 2006. LNCS, vol. 3920, Springer, Heidelberg (2006)

    Google Scholar 

  14. Gustavsson, J., Svenningsson, J.: Constraint abstractions. In: PADO, pp. 63–83 (2001)

    Google Scholar 

  15. Halbwachs, N.: Détermination Automatique de Relations Linéaires Vérifiées par les Variables d’un Programme. Thèse de 3ème cycle d’informatique, Université scientifique et médicale de Grenoble, Grenoble, France (March 1979)

    Google Scholar 

  16. Simon, L., Jones, P., et al.: Glasgow Haskell Compiler, http://www.haskell.org/ghc

  17. Shuvendu, K., Lahiri, S.K., Bryant, R.E.: Indexed predicate discovery for unbounded system verification. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 135–147. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  18. Rustan, K., Leino, M., Logozzo, F.: Loop invariants on demand. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, pp. 119–134. Springer, Heidelberg (2005)

    Google Scholar 

  19. Mauborgne, L., Rival, X.: Trace partitioning in abstract interpretation based static analyzers. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 5–20. Springer, Heidelberg (2005)

    Google Scholar 

  20. Miné, A.: A new numerical abstract domain based on difference-bound matrices. In: Danvy, O., Filinski, A. (eds.) PADO 2001. LNCS, vol. 2053, pp. 155–172. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  21. National Institue of Standards and Technology. Java SciMark benchmark for scientific computing, http://math.nist.gov/scimark2/

  22. Popeea, C., Chin, W.-N.: Inferring disjunctive postconditions. Technical report. http://www.comp.nus.edu.sg/~corneliu/research/disjunctive.tr.pdf

  23. Pugh, W.: The Omega test: A fast practical integer programming algorithm for dependence analysis. Communications of the ACM 8, 102–114 (1992)

    Article  Google Scholar 

  24. Sankaranarayanan, S., Ivancic, F., Shlyakhter, I., Gupta, A.: Static analysis in disjunctive numerical domains. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  25. Suzuki, N., Ishihata, K.: Implementation of an array bound checker. In: POPL, pp. 132–143 (1977)

    Google Scholar 

  26. Xu, D.N., Popeea, C., Khoo, S.-C., Chin, W.-N.: A modular type inference and specializer for array bound checks elimination (under preparation). Technical report, http://www.comp.nus.edu.sg/~corneliu/research/array.pdf

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mitsu Okada Ichiro Satoh

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Popeea, C., Chin, WN. (2007). Inferring Disjunctive Postconditions. In: Okada, M., Satoh, I. (eds) Advances in Computer Science - ASIAN 2006. Secure Software and Related Issues. ASIAN 2006. Lecture Notes in Computer Science, vol 4435. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77505-8_26

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77505-8_26

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77504-1

  • Online ISBN: 978-3-540-77505-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics