Skip to main content

Fate and free will in error traces

Abstract

The ability to generate counterexamples for failing properties is often cited as one of the strengths of model checking. However, it is often difficult to interpret long error traces in which many variables appear. Besides, a traditional error trace presents only one possible behavior of the system causing the failure, with no further annotation. Our objective is to identify some structure in the error trace to make debugging easier. We present an enhanced error trace as an alternation of fated (forced) and free segments. The fated segments show unavoidable progress toward the error while the free segments show choices that, if avoided, may have prevented the error. Hence, the demarcation into segments tends to highlight critical events. The segmentation of a trace raises the questions of whether the fated segment should indeed be inevitable and whether the free segments are critical in causing the error. Addressing these questions may help the user to better analyze the failure of the property.

This is a preview of subscription content, access via your institution.

References

  1. 1.

    Alpern B, Schneider FB (1985) Defining liveness. Inf Process Lett 21:181–185

    MathSciNet  Article  Google Scholar 

  2. 2.

    Alur R, Henzinger TA, Kupferman O (1997) Alternating-time temporal logic. In: Proceedings of the IEEE symposium on the foundations of computer science, pp 100–109

  3. 3.

    Ball T, Naik M, Rajamani SK (2003) From symptom to cause: localizing errors in counterexample traces. In: Proceedings of the 30th symposium on principles of programming languages (POPL 2003), January 2003, pp 97–105

  4. 4.

    Beer I, Ben-David S, Eisner C, Rodeh Y (1997) Efficient detection of vacuity in ACTL formulas. In: Grumberg O (ed) Proceedings of the 9th conference on computer aided verification (CAV’97). Lecture notes in computer science, vol 1254. Springer, Berlin Heidelberg New York, pp 279–290

  5. 5.

    Brayton RK, Hachtel GD, Sangiovanni-Vincentelli AL, Somenzi F, Aziz A, Cheng S-T, Edwards SA, Khatri SP, Kukimoto Y, Pardo A, Qadeer S, Ranjan RK, Sarwary S, Shiple TR, Swamy G, Villa T (1996) VIS: A system for verification and synthesis. In: Henzinger T, Alur R (eds) Proceedings of the 8th conference on computer-aided verification (CAV’96), New Brunswick, NJ. Lecture notes in computer science, vol 1102. Springer, Berlin Heidelberg New York, pp 428–432

  6. 6.

    Bryant RE (1986) Graph-based algorithms for Boolean function manipulation. IEEE Trans Comput C-35(8):677–691

  7. 7.

    Büchi JR (1962) On a decision method in restricted second order arithmetic. In: Proceedings of the 1960 international congress on logic, methodology, and philosophy of science. Stanford University Press, Stanford, CA, pp 1–11

  8. 8.

    Choueka Y (1974) Theories of automata on ω-tapes: a simplified approach. J Comput Sys Sci 8:117–141

    MathSciNet  Article  Google Scholar 

  9. 9.

    Clarke E, Grumberg O, McMillan K, Zhao X (1995) Efficient generation of counterexamples and witnesses in symbolic model checking. In: Proceedings of the conference on design automation, San Francisco, June 1995, pp 427–432

  10. 10.

    Clarke EM, Emerson EA (1981) Design and synthesis of synchronization skeletons using branching time temporal logic. In: Proceedings of the workshop on logics of programs. Lecture notes in computer science, vol 131. Springer, Berlin Heidelberg New York, pp 52–71

  11. 11.

    Clarke EM, Grumberg O, Peled DA (1999) Model checking. MIT Press, Cambridge, MA

  12. 12.

    de Alfaro L, Henzinger TA, Mang FYC (2000) Detecting errors before reaching them. In: Emerson EA, Sistla AP (eds) Proceedings of the 12th conference on computer aided verification (CAV’00), July 2000. Lecture notes in computer science, vol 1855. Springer, Berlin Heidelberg New York, pp 186–201

  13. 13.

    Emerson EA, Halpern JY (1986) ‘Sometimes’ and ‘not never’ revisited: on branching time versus linear time temporal logic. J Assoc Comput Mach 33(1):151–178

    MathSciNet  Article  Google Scholar 

  14. 14.

    Emerson EA, Jutla CS (1991) Tree automata, mu-calculus and determinacy. In Proceedings of the 32nd IEEE symposium on foundations of computer science, October 1991, pp 368–377

  15. 15.

    Groce A, Visser W (2003) What went wrong: explaining counterexamples. In: Proceedings of the 10th international SPIN workshop: Model Checking of Software, May 2003. Lecture notes in computer science, vol 2648. Springer, Berlin Heidelberg New York, pp 121–135

  16. 16.

    Kupferman O, Vardi MY (1999) Vacuity detection in temporal model checking. In: Proceedings of the conference on correct hardware design and verification methods (CHARME’99), September 1999. Lecture notes in computer science, vol 1703. Springer, Berlin Heidelberg New York, pp 82–96

  17. 17.

    Kurshan RP (1994) Computer-aided verification of coordinating processes. Princeton University Press, Princeton, NJ

  18. 18.

    Lichtenstein O, Pnueli A (1985) Checking that finite state concurrent programs satisfy their linear specification. In: Proceedings of the 12th annual ACM symposium on principles of programming languages, New Orleans, January 1985, pp 97–107

  19. 19.

    McMillan KL (1994) Symbolic model checking. Kluwer, Boston

  20. 20.

    Moon I-H, Kukula JH, Ravi K, Somenzi F (2000) To split or to conjoin: the question in image computation. In: Proceedings of the conference on design automation, Los Angeles, June 2000, pp 23–28

  21. 21.

    Ravi K, Bloem R, Somenzi F (2000) A comparative study of symbolic algorithms for the computation of fair cycles. In: Hunt Jr WA, Johnson SD (eds) Proceedings of the international conference on formal methods in computer-aided design, November 2000. Lecture notes in computer science, vol 1954. Springer, Berlin Heidelberg New York, pp 143–160

  22. 22.

    Wolper P, Vardi MY, Sistla AP (1983) Reasoning about infinite computation paths. In: Proceedings of the 24th IEEE symposium on foundations of computer science, pp 185–194

  23. 23.

    Zeller A (2002) Isolating cause-effect chains from computer programs. In: Proceedings of the 10th international symposium on the foundations of software engineering (FSE-10), November 2002, pp 1–10

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to HoonSang Jin.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Jin, H., Ravi, K. & Somenzi, F. Fate and free will in error traces. Int J Softw Tools Technol Transfer 6, 102–116 (2004). https://doi.org/10.1007/s10009-004-0146-9

Download citation

Keywords

  • Model checking
  • Counterexample
  • Reachability game