Advertisement

Boom: Taking Boolean Program Model Checking One Step Further

  • Gerard Basler
  • Matthew Hague
  • Daniel Kroening
  • C. -H. Luke Ong
  • Thomas Wahl
  • Haoxian Zhao
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6015)

Abstract

We present Boom, a comprehensive analysis tool for Boolean programs. We focus in this paper on model-checking non-recursive concurrent programs. Boom implements a recent variant of counter abstraction, where thread counters are used in a program-context aware way. While designed for bounded counters, this method also integrates well with the Karp-Miller tree construction for vector addition systems, resulting in a reachability engine for programs with unbounded thread creation. The concurrent version of Boom is implemented using BDDs and includes partial order reduction methods. Boom is intended for model checking system-level code via predicate abstraction. We present experimental results for the verification of Boolean device driver models.

References

  1. 1.
    Ball, T., Chaki, S., Rajamani, S.: Parameterized verification of multithreaded software libraries. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, p. 158. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  2. 2.
    Ball, T., Rajamani, S.: Bebop: A symbolic model checker for Boolean programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 113–130. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  3. 3.
    Basler, G., Kroening, D., Mazzucchi, M., Wahl, T.: Symbolic counter abstraction for concurrent software. In: Bouajjani, A., Maler, O. (eds.) Computer Aided Verification. LNCS, vol. 5643, pp. 64–78. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  4. 4.
    Basler, G., Kroening, D., Weissenbacher, G.: SAT-based summarization for boolean programs. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 131–148. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Delzanno, G., Raskin, J.-F., Begin, L.V.: Towards the automated verification of multithreaded Java programs. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, p. 173. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  6. 6.
    Esparza, J., Schwoon, S.: A BDD-based model checker for recursive programs. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, p. 324. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  7. 7.
    Geeraerts, G., Raskin, J.-F., Begin, L.V.: Expand, enlarge and check.. made efficient. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 394–407. Springer, Heidelberg (2005)Google Scholar
  8. 8.
    Karp, R., Miller, R.: Parallel program schemata. Computer and System Sciences (1969)Google Scholar
  9. 9.
    Torre, S.L., Madhusudan, P., Parlato, G.: Reducing context-bounded concurrent reachability to sequential reachability. In: Bouajjani, A., Maler, O. (eds.) Computer Aided Verification. LNCS, vol. 5643, pp. 477–492. Springer, Heidelberg (2009)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Gerard Basler
    • 1
  • Matthew Hague
    • 1
  • Daniel Kroening
    • 1
  • C. -H. Luke Ong
    • 1
  • Thomas Wahl
    • 1
  • Haoxian Zhao
    • 1
  1. 1.Oxford University Computing LaboratoryOxfordUnited Kingdom

Personalised recommendations