Slicing is one of a number of techniques for reducing the state space of specifications during verification. Unlike techniques as e.g. data abstraction slicing is precise: the slice exactly reflects the property to be verified. This necessitates keeping large parts of the specification.

In this paper we relax this requirement and instead compute slices overapproximating the behaviour of the specification. This can lead to substantially smaller slices. We consequently adapt the technique of abstraction refinement to slicing as to improve the slice once a false negative is detected. Slicing thus becomes an incremental method: it starts with a small, minimal part of the specification and successively adds further parts until either the property under interest holds on the slice or a real counterexample is found. We show correctness and termination of our technique.


Model Check Temporal Logic Atomic Proposition Atom Versus Automaton State 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Brückner, I., Wehrheim, H.: Slicing an Integrated Formal Method for Verification. In: Lau, K.-K., Banach, R. (eds.) ICFEM 2005. LNCS, vol. 3785, pp. 360–374. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Chaki, S., Clarke, E.M., Ouaknine, J., Sharygina, N., Sinha, N.: State/event-based software model checking. In: Boiten, E.A., Derrick, J., Smith, G.P. (eds.) IFM 2004. LNCS, vol. 2999, pp. 128–147. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. 3.
    Clarke, E., Grumberg, O., Peled, D.: Model checking. MIT Press, Cambridge (1999)Google Scholar
  4. 4.
    Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement for symbolic model checking. JACM 50(5), 752–794 (2003)CrossRefMathSciNetGoogle Scholar
  5. 5.
    Clarke, E.M., Grumberg, O., Long, D.E.: Model checking and abstraction. In: 19th ACM POPL (1992)Google Scholar
  6. 6.
    Edelkamp, S., Lluch-Lafuente, A., Leue, S.: Directed model-checking in HSF-SPIN. In: Dwyer, M.B. (ed.) SPIN 2001. LNCS, vol. 2057, pp. 57–79. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  7. 7.
    Fischer, C.: CSP-OZ: A combination of Object-Z and CSP. In: Bowman, H., Derrick, J. (eds.) Formal Methods for Open Object-Based Distributed Systems (FMOODS 1997), vol. 2, pp. 423–438. Chapman and Hall, Boca Raton (1997)Google Scholar
  8. 8.
    Hatcliff, J., Dwyer, M., Zheng, H.: Slicing software for model construction. Higher-order and Symbolic Computation 13(4), 315–353 (2000)zbMATHCrossRefGoogle Scholar
  9. 9.
    Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: POPL, pp. 58–70 (2002)Google Scholar
  10. 10.
    Ip, C., Dill, D.: Better verification through symmetry. In: International Conference on Computer Hardware Description Languages (1993)Google Scholar
  11. 11.
    Loiseaux, C., Graf, S., Sifakis, J., Bouajjani, A., Bensalem, S.: Property preserving abstractions for the verification of concurrent systems. Formal methods in system design 6, 1–35 (1995)CrossRefGoogle Scholar
  12. 12.
    Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems (Specification). Springer, Heidelberg (1991)zbMATHGoogle Scholar
  13. 13.
    Millett, L., Teitelbaum, T.: Issues in slicing PROMELA and its applications to model checking, protocol understanding, and simulation. Software Tools for Technology Transfer 2(4), 343–349 (2000)zbMATHCrossRefGoogle Scholar
  14. 14.
    Peled, D.: All from one, one for all: On model checking using representatives. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697. Springer, Heidelberg (1993)Google Scholar
  15. 15.
    Tip, F.: A survey of program slicing techniques. Journal of programming languages 3(3) (1995)Google Scholar
  16. 16.
    Shankar, N., Ganesh, V., Saidi, H.: Slicing SAL. Technical report, SRI International (1999),
  17. 17.
    Weiser, M.: Program slicing. In: Proceedings of the 5th international conference on Software engineering, pp. 439–449. IEEE Press, Los Alamitos (1981)Google Scholar
  18. 18.
    Weiser, M.: Programmers use slices when debugging. Communications of the ACM 25(7), 446–452 (1982)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Heike Wehrheim
    • 1
  1. 1.Institut für InformatikUniversität PaderbornPaderbornGermany

Personalised recommendations