Skip to main content

Disjunctive Interval Analysis

  • Conference paper
  • First Online:
Static Analysis (SAS 2021)

Abstract

We revisit disjunctive interval analysis based on the Boxes abstract domain. We propose the use of what we call range decision diagrams (RDDs) to implement Boxes, and we provide algorithms for the necessary RDD operations. RDDs tend to be more compact than the linear decision diagrams (LDDs) that have traditionally been used for Boxes. Representing information more directly, RDDs also allow for the implementation of more accurate abstract operations. This comes at no cost in terms of analysis efficiency, whether LDDs utilise dynamic variable ordering or not. RDD and LDD implementations are available in the Crab analyzer, and our experiments confirm that RDDs are well suited for disjunctive interval analysis.

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 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.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

Notes

  1. 1.

    With a little additional effort, the approach extends to rationals and floating point numbers.

  2. 2.

    Gurfinkel and Chaki [11] consider a restricted programming language with only linear expressions and guards.

  3. 3.

    It is straightforward to translate an RDD to an LDD over bounds constraints, and vice versa.

  4. 4.

    This view explains our tendency to use notation like [3, 4) for what is obviously a (closed) singleton integer interval.

  5. 5.

    As presented, this differs slightly from [11] in that we select the left sibling as replacement in widen-edge, where [11] selects the right. We also implemented a right-biased variant, and differences are minimal.

  6. 6.

    Available at https://github.com/seahorn/crab.

  7. 7.

    Available at https://github.com/seahorn/clam.

  8. 8.

    Available at https://github.com/seahorn/ldd.

References

  1. Apt, K.: Principles of Constraint Programming, Cambridge University Press, Cambridge (2003). https://doi.org/10.1017/CBO9780511615320

  2. Bryant, R.: Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv. 24(3), 293–318 (1992). https://doi.org/10.1145/136035.136043

    Article  Google Scholar 

  3. Chaki, S., Gurfinkel, A., Strichman, O.: Decision diagrams for linear arithmetic. In: Proceedings of the 9th Conference on Formal Methods in Computer-Aided Design (FMCAD 2009), pp. 53–60. IEEE Comp. Soc. (2009). https://doi.org/10.1109/FMCAD.2009.5351143

  4. Choi, C.W., Harvey, W., Lee, J.H.M., Stuckey, P.J.: Finite domain bounds consistency revisited. In: Proceedings of the Australian Conference on Artificial Intelligence 2006. LNCS, vol. 4304, pp. 49–58. Springer (2006). https://doi.org/10.1007/11941439_9

  5. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Proceedings of the Sixth ACM Symposium on Principles of Programming Languages, pp. 269–282. ACM Press (1979). https://doi.org/10.1145/567752.567778

  6. Cousot, P., Cousot, R., Mauborgne, L.: A scalable segmented decision tree abstract domain. In: Manna, Z., Peled, D.A. (eds.) Time for Verification: Essays in Memory of Amir Pnueli, LNCS, vol. 6200, pp. 72–95. Springer (2010). https://doi.org/10.1007/978-3-642-13754-9_5

  7. Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: Proceedings of the Fifth ACM Symposium on Principles of Programming Languages, pp. 84–97. ACM Press (1978). https://doi.org/10.1145/512760.512770

  8. Fähndrich, M., Logozzo, F.: Static contract checking with abstract interpretation. In: Beckert, B., Marché, C. (eds.) Formal Verification of Object-Oriented Software. LNCS, vol. 6528, pp. 10–30. Springer (2011). https://doi.org/10.1007/978-3-642-18070-5_2

  9. Giacobazzi, R., Ranzato, F.: Optimal domains for disjunctive abstract interpretation. Sci. Comput. Prog. 32, 177–210 (1998). https://doi.org/10.1016/S0167-6423(97)00034-8

    Article  MathSciNet  MATH  Google Scholar 

  10. Groote, J.F., van de Pol, J.: Equational binary decision diagrams. In: Parigot, M., Voronkov, A. (eds.) Logic for Programming and Automated Reasoning, LNCS, vol. 1955, pp. 161–178. Springer (2000). https://doi.org/10.1007/3-540-44404-1_11

  11. Gurfinkel, A., Chaki, S.: Boxes: A symbolic abstract domain of boxes. In: Cousot, R., Martel, M. (eds.) Static Analysis: Proceedings of the 17th International Symposium, LNCS, vol. 6337, pp. 287–303. Springer (2010). https://doi.org/10.1007/978-3-642-15769-1_18

  12. Handjieva, M., Tzolovski, S.: Refining static analyses by trace-based partitioning using control flow. In: Levi, G. (ed.) Static Analysis, LNCS, vol. 1503, pp. 200–214. Springer (1998). https://doi.org/10.1007/3-540-49727-7_12

  13. Jeannet, B.: The BddApron logico-numerical abstract domains library (2009). http://www.inrialpes.fr/pop-art/people/bjeannet/bjeannet-forge/bddapron/

  14. Jeannet, B., Miné, A.: A library of numerical abstract domains for static analysis. In: Bouajjani, A., Maler, O. (eds.) Computer Aided Verification, LNCS, vol. 5643, pp. 661–667. Springer (2009). https://doi.org/10.1007/978-3-642-02658-4_52

  15. Jensen, T.P.: Disjunctive strictness analysis. In: Proceedings of the 7th Annual IEEE Symposium of Logic in Computer Science, pp. 174–185. IEEE Computer Society (1992). https://doi.org/10.1109/LICS.1992.185531

  16. Larsen, K.G., Pearson, J., Weise, C., Yi, W.: Clock difference diagrams. Nordic J. Comput. 6(3), 271–298 (1999)

    MathSciNet  MATH  Google Scholar 

  17. Marriott, K., Søndergaard, H.: Precise and efficient groundless analysis for logic programs. ACM Lett. Prog. Lang. Syst. 2(1–4), 181–196 (1993). https://doi.org/10.1145/176454.176519

    Article  Google Scholar 

  18. Mauborgne, L.: Abstract interpretation using typed decision graphs. Sci. Comput. Prog. 31(1), 91–112 (1998). https://doi.org/10.1016/s0167-6423(96)00042-1

    Article  MathSciNet  MATH  Google Scholar 

  19. Mauborgne, L., Rival, X.: Trace partitioning in abstract interpretation based static analyzers. In: Sagiv, M. (ed.) Programming Languages and Systems: Proceedings of the 14th European Symposium, LNCS, vol. 3444, pp. 5–20. Springer (2005). https://doi.org/10.1007/978-3-540-31987-0_2

  20. Miné, A.: A new numerical abstract domain based on difference-bound matrices. In: Danvy, O., Filinski, A. (eds.) Programs as Data Objects, LNCS, vol. 2053, pp. 155–172. Springer (2001). https://doi.org/10.1007/3-540-44978-7_10

  21. Miné, A.: The Octagon abstract domain. In: Burd, E., Aiken, P., Koschke, R. (eds.) Proceedings of the Eighth Working Conference on Reverse Engineering, pp. 310–319. IEEE Computer Society (2001). https://doi.org/10.1109/WCRE.2001.957836

  22. Miné, A.: Symbolic methods to enhance the precision of numerical abstract domains. In: Emerson, E.A., Namjoshi, K.S. (eds.) Verification, Model Checking, and Abstract Interpretation, LNCS, vol. 3855, pp. 348–363. Springer (2006). https://doi.org/10.1007/11609773_23

  23. Møller, J., Lichtenberg, J., Andersen, H.R., Hulgaard, H.: Difference decision diagrams. In: Flum, J., Rodriguez-Artalejo, M. (eds.) Computer Science Logic, LNCS, vol. 1683, pp. 111–125. Springer (1999). https://doi.org/10.1007/3-540-48168-0_9

  24. Srinivasan, A., Kam, T., Malik, S., Brayton, R.K.: Algorithms for discrete function manipulation. In: Computer-Aided Design: Proceedings of the IEEE International Conference, pp. 92–95. IEEE Computer Society (1990). https://doi.org/10.1109/ICCAD.1990.129849

  25. Strehl, K., Thiele, L.: Symbolic model checking of process networks using interval diagram techniques. In: International Conference on Computer-Aided Design, pp. 686–692. ACM Press (1998). https://doi.org/10.1145/288548.289117

  26. Urban, C., Miné, A.: A decision tree abstract domain for proving conditional termination. In: Müller-Olm, M., Seidl, H. (eds.) Static Analysis, LNCS, vol. 8723, pp. 302–318. Springer (2014). https://doi.org/10.1007/978-3-319-10936-7_19

Download references

Acknowledgements

We thank the three anonymous reviewers for their careful reading of an earlier version of the paper, and their constructive suggestions for how to improve it. Jorge Navas has been supported by the National Science Foundation under grant number 1816936.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Harald Søndergaard .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Gange, G., Navas, J.A., Schachte, P., Søndergaard, H., Stuckey, P.J. (2021). Disjunctive Interval Analysis. In: Drăgoi, C., Mukherjee, S., Namjoshi, K. (eds) Static Analysis. SAS 2021. Lecture Notes in Computer Science(), vol 12913. Springer, Cham. https://doi.org/10.1007/978-3-030-88806-0_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-88806-0_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-88805-3

  • Online ISBN: 978-3-030-88806-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics