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.
Similar content being viewed by others
Notes
Note that a query may not only have several solutions, but may also have several strongest solutions.
The definition in [25] is a bit different and allows also vacuous triggers: scenarios that do not satisfy Condition (1).
This type of automata is referred to as looping automata.
References
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
Avni G (2011) An abstraction-refinement framework for trigger querying. Msc Thesis
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
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
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
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
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
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
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
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
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
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
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
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
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
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
de Alfaro L, Roy P (2010) Solving games via three-valued abstraction refinement. Inf Comput 208(6):666–676
Giacobazzi R (1998) Abductive analysis of modular logic programs. J Log Comput 8(4):457–483
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
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
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
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
Gurfinkel A, Chechik M, Devereux B (2003) Temporal logic query checking: a tool for model exploration. IEEE Trans Softw Eng 29(10):898–914
Kühne U, Große D, Drechsler R (2009) Property analysis and design understanding. In: DATE, pp 1246–1249
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
Kurshan RP (1994) Computer aided verification of coordinating processes. Princeton University Press, Princeton
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
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
Pnueli A (1977) The temporal logic of programs. In: Proc 18th IEEE symp on foundations of computer science, pp 46–57
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
Vijayaraghavan S, Ramanathan M (2005) A practical guide for SystemVerilog assertions. Springer, Berlin
Author information
Authors and Affiliations
Corresponding author
Additional information
A preliminary version appears in the 18th International Static Analysis Symposium, LNCS 6887, pp. 263–279, 2011.
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10703-013-0200-x