Abstract Error Projection

  • Akash Lal
  • Nicholas Kidd
  • Thomas Reps
  • Tayssir Touili
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4634)

Abstract

In this paper, we extend model-checking technology with the notion of an error projection. Given a program abstraction, an error projection divides the program into two parts: the part outside the error projection is guaranteed to be correct, while the part inside the error projection can have bugs. Subsequent automated or manual verification effort need only be concentrated on the part inside the error projection. We present novel algorithms for computing error projections using weighted pushdown systems that are sound and complete for the class of Boolean programs and discuss additional applications for these algorithms.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Ball, T., Naik, M., Rajamani, S.K.: From symptom to cause: localizing errors in counterexample traces. In: POPL (2003)Google Scholar
  2. 2.
    Ball, T., Rajamani, S.: Automatically validating temporal safety properties of interfaces. In: Dwyer, M.B. (ed.) Model Checking Software. LNCS, vol. 2057, Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Ball, T., Rajamani, S.K.: Boolean programs: A model and process for software analysis. Technical Report MSR-TR-2000-14, Microsoft Research (2000)Google Scholar
  4. 4.
    Bouajjani, A., Esparza, J., Maler, O.: Reachability analysis of pushdown automata: Application to model checking. In: Mazurkiewicz, A., Winkowski, J. (eds.) CONCUR 1997. LNCS, vol. 1243, Springer, Heidelberg (1997)Google Scholar
  5. 5.
    Bouajjani, A., Esparza, J., Touili, T.: A generic approach to the static analysis of concurrent programs with procedures. In: POPL (2003)Google Scholar
  6. 6.
    Chaki, S., Clarke, E., Groce, A., Jha, S., Veith, H.: Modular verification of software components in C. In: ICSE (2003)Google Scholar
  7. 7.
    Chaki, S., Groce, A., Strichman, O.: Explaining abstract counterexamples. In: Roy, B., Meier, W. (eds.) FSE 2004. LNCS, vol. 3017, Springer, Heidelberg (2004)Google Scholar
  8. 8.
    Cousot, P.: Méthodes itératives de construction et d’approximation de point fixes d’opérateurs monotones sur un treillis, analyse sémantique des programmes. Thèse ès sciences mathématiques, Univ. of Grenoble (1978)Google Scholar
  9. 9.
    Engler, D.R., Chelf, B., Chou, A., Hallem, S.: Checking system rules using system-specific, programmer-written compiler extensions. In: OSDI (2000)Google Scholar
  10. 10.
    Finkel, A., Willems, B., Wolper, P.: A direct symbolic approach to model checking pushdown systems. Elec. Notes in Theoretical Comp. Sci. 9 (1997)Google Scholar
  11. 11.
    Henzinger, T., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: POPL (2002)Google Scholar
  12. 12.
    Hong, H.S., Lee, I., Sokolsky, O.: Abstract slicing: A new approach to program slicing based on abstract interpretation and model checking. In: SCAM (2005)Google Scholar
  13. 13.
    Jeannet, B., Serwe, W.: Abstracting call-stacks for interprocedural verification of imperative programs. In: Rattray, C., Maharaj, S., Shankland, C. (eds.) AMAST 2004. LNCS, vol. 3116, Springer, Heidelberg (2004)Google Scholar
  14. 14.
    Kremenek, T., Ashcraft, K., Yang, J., Engler, D.R.: Correlation exploitation in error ranking. In: SIGSOFT FSE (2004)Google Scholar
  15. 15.
    Lal, A., Kidd, N., Reps, T., Touili, T.: Abstract error projection. Technical Report 1579, University of Wisconsin-Madison (January 2007)Google Scholar
  16. 16.
    Lal, A., Reps, T.: Improving pushdown system model checking. Technical Report 1552, University of Wisconsin-Madison (January 2006)Google Scholar
  17. 17.
    Massé, D.: Combining forward and backward analyses of temporal properties. In: Danvy, O., Filinski, A. (eds.) PADO 2001. LNCS, vol. 2053, Springer, Heidelberg (2001)CrossRefGoogle Scholar
  18. 18.
    Mohri, M., Pereira, F.C.N., Riley, M.: Weighted automata in text and speech processing. In: ECAI (1996)Google Scholar
  19. 19.
    Mohri, M., Pereira, F.C.N., Riley, M.: The design principles of a weighted finite-state transducer library. In: Theoretical Computer Science (2000)Google Scholar
  20. 20.
    Qadeer, S., Wu, D.: KISS: Keep it simple and sequential. In: PLDI (2004)Google Scholar
  21. 21.
    Reps, T., Schwoon, S., Jha, S., Melski, D.: Weighted pushdown systems and their application to interprocedural dataflow analysis. SCP, 58 (2005)Google Scholar
  22. 22.
    Schwoon, S.: Model-Checking Pushdown Systems. PhD thesis, Tech. Univ. Munich (2002)Google Scholar
  23. 23.
    Weiser, M.: Program slicing. IEEE Trans. Software Eng. 10(4), 352–357 (1984)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Akash Lal
    • 1
  • Nicholas Kidd
    • 1
  • Thomas Reps
    • 1
  • Tayssir Touili
    • 2
  1. 1.University of Wisconsin, Madison, WisconsinUSA
  2. 2.LIAFA, CNRS & University of Paris 7, ParisFrance

Personalised recommendations