TY - GEN
T1 - An abstraction-refinement framework for trigger querying
AU - Avni, Guy
AU - Kupferman, Orna
PY - 2011
Y1 - 2011
N2 - 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 φ. For example, the trigger query M |=? → Ferr asks for the set of scenarios after which err aught to eventually happen. Trigger querying thus 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. The general idea is to replace the reasoning about M by reasoning about an abstraction MA of M, and return to the user two languages, L l and L u , that under- and over-approximate L, respectively. We consider predicate abstraction, and the languages Ll and Lu are defined with respect to the set of predicates. The challenge in defining the approximating languages is that trigger querying does not have a clear polarity, and the definition of Ll and Lu has to combine the upper- and over-approximations of M. We describe an automata-theoretic approach for refining and reducing Lu \ L l . While refinement for model checking is lengthwise, in the sense that it is based on counterexamples, here we suggest both lengthwise and widthwise refinement, where the latter is based on cuts in an automaton for Lu \ Ll and thus can 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.
AB - 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 φ. For example, the trigger query M |=? → Ferr asks for the set of scenarios after which err aught to eventually happen. Trigger querying thus 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. The general idea is to replace the reasoning about M by reasoning about an abstraction MA of M, and return to the user two languages, L l and L u , that under- and over-approximate L, respectively. We consider predicate abstraction, and the languages Ll and Lu are defined with respect to the set of predicates. The challenge in defining the approximating languages is that trigger querying does not have a clear polarity, and the definition of Ll and Lu has to combine the upper- and over-approximations of M. We describe an automata-theoretic approach for refining and reducing Lu \ L l . While refinement for model checking is lengthwise, in the sense that it is based on counterexamples, here we suggest both lengthwise and widthwise refinement, where the latter is based on cuts in an automaton for Lu \ Ll and thus can 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.
UR - http://www.scopus.com/inward/record.url?scp=80053108679&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-23702-7_21
DO - 10.1007/978-3-642-23702-7_21
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.conference???
AN - SCOPUS:80053108679
SN - 9783642237010
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 263
EP - 279
BT - Static Analysis - 18th International Symposium, SAS 2011, Proceedings
T2 - 18th International Static Analysis Symposium, SAS 2011
Y2 - 14 September 2010 through 16 September 2010
ER -