Skip to main content
Log in

An abstraction-refinement framework for trigger querying

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

Trigger querying is the problem of finding, given a system M and an LTL formula φ, the set of scenarios that trigger φ in M; that is, the language L of finite computations of M such that all infinite computations that have a prefix in L continue with a suffix that satisfies φ. Trigger querying significantly extends query checking, which seeks propositional solutions, and is an extremely useful methodology for system exploration and understanding. The weakness of trigger querying lies in the fact that the size of the solution is linear in the size of the system. For trigger querying to become feasible in practice, we must offer solutions to cope with systems of big, and possibly infinite, state spaces. In this paper we describe an abstraction-refinement framework for trigger querying. Instead of reasoning about the system M, we reason about an abstraction of it and return to the user two languages that under- and over-approximate the language L of computations that trigger φ in M. We describe an automata-theoretic approach for refining and reducing the gap between the approximations and show how, unlike classical counterexample-based refinement approaches, here it is possible to symbolically handle batches of counterexamples. We show that our framework is robust and can be applied also for classical query checking as well as variants and extensions of trigger querying.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. Note that a query may not only have several solutions, but may also have several strongest solutions.

  2. The definition in [25] is a bit different and allows also vacuous triggers: scenarios that do not satisfy Condition (1).

  3. This type of automata is referred to as looping automata.

References

  1. Armoni R, Fix L, Flaisher A, Gerth R, Ginsburg B, Kanza T, Landver A, Mador-Haim S, Singerman E, Tiemeyer A, Vardi MY, Zbar Y (2002) The ForSpec temporal logic: a new temporal property-specification logic. In: Proc 8th int conf on tools and algorithms for the construction and analysis of systems. Lecture notes in computer science, vol 2280. Springer, Berlin, pp 196–211

    Google Scholar 

  2. Avni G (2011) An abstraction-refinement framework for trigger querying. Msc Thesis

  3. Ball T, Bounimova E, Cook B, Levin V, Lichtenberg J, McGarvey C, Ondrusek B, Rajamani SK, Ustuner A (2006) Thorough static analysis of device drivers. In: Proc EuroSys conf, pp 73–85

    Google Scholar 

  4. Ball T, Kupferman O (2006) An abstraction-refinement framework for multi-agent systems. In: Proc 21st IEEE symp on logic in computer science, pp 379–388

    Google Scholar 

  5. Ball T, Kupferman O, Yorsh G (2005) Abstraction for falsification. In: Proc 17th int conf on computer aided verification. Lecture notes in computer science, vol 3576. Springer, Berlin, pp 67–81

    Chapter  Google Scholar 

  6. Beer I, Ben-David S, Eisner C, Fisman D, Gringauze A, Rodeh Y (2001) The temporal logic sugar. In: Proc 13th int conf on computer aided verification. Lecture notes in computer science, vol 2102. Springer, Berlin, pp 363–367

    Chapter  Google Scholar 

  7. Bruns G, Godefroid P (2001) Temporal logic query checking. In: Proc 16th IEEE symp on logic in computer science. IEEE Comput Soc, Los Alamitos, pp 409–420

    Google Scholar 

  8. Chan W (2000) Temporal-logic queries. In: Proc 12th int conf on computer aided verification. Lecture notes in computer science, vol 1855. Springer, Berlin, pp 450–463

    Chapter  Google Scholar 

  9. Chatterjee K, Doyen L, Henzinger T (2008) Quantitative languages. In: Proc 17th annual conf of the European association for computer science logic, pp 385–400

    Google Scholar 

  10. Chechik M, Gheorghiu M, Gurfinkel A (2007) Finding state solutions to temporal queries. In: Proc 6th int conf on integrated formal methods. Lecture notes in computer science, vol 4591. Springer, Berlin, pp 273–292

    Chapter  Google Scholar 

  11. Chechik M, Gurfinkel A (2003) TLQSolver: a temporal logic query checker. In: Proc 15th int conf on computer aided verification. Lecture notes in computer science, vol 2725. Springer, Berlin, pp 210–214

    Chapter  Google Scholar 

  12. Chockler H, Gurfinkel A, Strichman O (2010) Variants of LTL query checking. In: Proc 6th int Haifa verification conference. Lecture notes in computer science, vol 6504. Springer, Berlin, pp 76–92

    Google Scholar 

  13. Clarke EM, Grumberg O, Jha S, Lu Y, Veith H (2003) Counterexample-guided abstraction refinement for symbolic model checking. J ACM 50(5):752–794

    Article  MathSciNet  Google Scholar 

  14. Clarke EM, Gupta A, Strichman O (2004) Sat-based counterexample-guided abstraction refinement. IEEE Trans Comput-Aided Des Integr Circuits Syst 23(7):1113–1123

    Article  Google Scholar 

  15. Cousot P, Cousot R (1977) Abstract interpretation: a unified lattice model for the static analysis of programs by construction or approximation of fixpoints. In: Proc 4th ACM symp on principles of programming languages. ACM, New York, pp 238–252

    Google Scholar 

  16. Damm W, Harel D (1999) LSCs: breathing life into message sequence charts. In: 3rd IFIP int conf on formal methods for open object-based distributed systems. Kluwer Academic, Dordrecht, pp 293–312

    Chapter  Google Scholar 

  17. de Alfaro L, Roy P (2010) Solving games via three-valued abstraction refinement. Inf Comput 208(6):666–676

    Article  MATH  Google Scholar 

  18. Giacobazzi R (1998) Abductive analysis of modular logic programs. J Log Comput 8(4):457–483

    Article  MATH  MathSciNet  Google Scholar 

  19. Glusman M, Kamhi G, Mador-Haim S, Fraer R, Vardi MY (2003) Multiple-counterexample guided iterative abstraction refinement: an industrial evaluation. In: Proc 9th int conf on tools and algorithms for the construction and analysis of systems. Lecture notes in computer science, vol 2619, pp 176–191

    Chapter  Google Scholar 

  20. Godefroid P, Jagadeesan R (2002) Automatic abstraction using generalized model checking. In: Proc 14th int conf on computer aided verification, vol 2404, pp 137–150

    Chapter  Google Scholar 

  21. Godefroid P, Nori AV, Rajamani SK, Tetali S (2010) Compositional may-must program analysis: unleashing the power of alternation. In: Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on principles of programming languages, pp 43–56

    Chapter  Google Scholar 

  22. Grumberg O, Lange M, Leucker M, Shoham S (2005) Don’t know in the μ-calculus. In: Proc 6th int conf on verification, model checking, and abstract interpretation. Lecture notes in computer science, vol 3385. Springer, Berlin, pp 233–249

    Chapter  Google Scholar 

  23. Gurfinkel A, Chechik M, Devereux B (2003) Temporal logic query checking: a tool for model exploration. IEEE Trans Softw Eng 29(10):898–914

    Article  Google Scholar 

  24. Kühne U, Große D, Drechsler R (2009) Property analysis and design understanding. In: DATE, pp 1246–1249

    Google Scholar 

  25. Kupferman O, Lustig Y (2007) What triggers a behavior? In: Proc 7th int conf on formal methods in computer-aided design. IEEE Comput Soc, Los Alamitos, pp 146–153

    Google Scholar 

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

    Google Scholar 

  27. Larsen KG, Thomsen GB (1988) A modal process logic. In: Proc 3rd IEEE symp on logic in computer science. IEEE Comput Soc, Los Alamitos, pp 203–210

    Google Scholar 

  28. Lo D, Maoz S (2008) Mining scenario-based triggers and effects. In: Proc 23rd IEEE/ACM international conference on automated software engineering, pp 109–118

    Google Scholar 

  29. Pnueli A (1977) The temporal logic of programs. In: Proc 18th IEEE symp on foundations of computer science, pp 46–57

    Google Scholar 

  30. Samer M, Veith H (2003) Validity of CTL queries revisited. In: Proc 12th annual conf of the European association for computer science logic, vol 2803. Springer, Berlin, pp 470–483

    Google Scholar 

  31. Vijayaraghavan S, Ramanathan M (2005) A practical guide for SystemVerilog assertions. Springer, Berlin

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Guy Avni.

Additional information

A preliminary version appears in the 18th International Static Analysis Symposium, LNCS 6887, pp. 263–279, 2011.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Avni, G., Kupferman, O. An abstraction-refinement framework for trigger querying. Form Methods Syst Des 44, 149–175 (2014). https://doi.org/10.1007/s10703-013-0200-x

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-013-0200-x

Keywords

Navigation