Better Under-Approximation of Programs by Hiding Variables
Abstraction frameworks use under-approximating transitions in order to prove existential properties of concrete systems. Under-approximating transitions refer to the concrete states that correspond to a particular abstract state in a universal manner. For example, there is a must transition from abstract state a to abstract state a ′ only if all the concrete states in a have successors in a ′.
The universal nature of under-approximating transitions makes them closed under transitivity. Consequently, reachability queries about the concrete system, which have applications in falsification and testing, can be answered by reasoning about its abstraction. On the negative side, the universal nature of under-approximating transitions makes them dependent on all the variables of the program. The abstraction, on the other hand, often hides some of the variables. Since the universal quantification in must transitions ranges over all variables, this often prevents the abstraction from associating a must transition with statements that refer to hidden variables.
We introduce and study partitioned-must transitions. The idea is to partition the program variables to relevant and irrelevant ones, and restrict the universal quantification inside must transitions to the relevant variables. Usual must transitions are a special case of partitioned-must transitions in which all variables are relevant. Partitioned-must transitions exist in many realistic settings in which usual must transitions do not exist. As we show, they retain the advantages of must transitions: they are closed under transitivity, their calculation can be automated, and the three-valued semantics induced by usual must transitions is refined to a multi-valued semantics that takes into an account the set of relevant variables.
KeywordsModel Check Abstract State Safety Property Atomic Proposition Concrete State
Unable to display preview. Download preview PDF.
- FMCO 2004.
- CONCUR 2000.
- ICALP 2004.Bruns, G., Godefroid, P.: Model checking with 3-valued temporal logics. In: Díaz, J., et al. (eds.) ICALP 2004. LNCS, vol. 3142, pp. 281–293. Springer, Heidelberg (2004)Google Scholar
- IDEAL 2005.Ball, T., Kupferman, O., Yorsh, G.: Abstraction for falsification. In: Gallagher, M., Hogan, J.P., Maire, F. (eds.) IDEAL 2005. LNCS, vol. 3578, pp. 67–81. Springer, Heidelberg (2005)Google Scholar
- Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for the static analysis of programs by construction or approximation of fixpoints. In: Proc. 4th ACM POPL, pp. 238–252. ACM Press, New York (1977)Google Scholar
- Dijksta, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)Google Scholar
- CAV 2002.
- ATVA 2006.
- Kurshan, R.P.: Computer Aided Verification of Coordinating Processes. Princeton University Press, Princeton (1994)Google Scholar
- Larsen, K.G., Thomsen, G.B.: A modal process logic. In: Proc. 3th LICS (1988)Google Scholar
- Larsen, K.G., XinXin, L.: Equation solving using modal transition systems. In: Proc. 5th LICS, Philadelphia, pp. 108–117 (June 1990)Google Scholar
- CAV 2003.Shoham, S., Grumberg, O.: A game-based framework for CTL counterexamples and 3-valued abstraction-refinement. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 275–287. Springer, Heidelberg (2003)Google Scholar
- TACAS 2004.Shoham, S., Grumberg, O.: Monotonic abstraction-refinement for. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 546–560. Springer, Heidelberg (2004)Google Scholar