Abstract
In this paper we investigate how standard model checkers can be applied to checking refinement relationships between Z specifications. The major obstacle to such a use are the (potentially) infinite data domains in specifications. Consequently, we examine the application of data abstraction techniques for reducing the infinite to a finite state space. Since data abstractions do, however, decrease the amount of information in a specification, refinement can—in general—not be proven on the abstractions anymore, it can only be disproved. The model checker can thus be used to generate counter examples to a refinement relationship. Here, we show how abstract specifications can be systematically constructed (from a given data abstraction) and how a standard model checker (FDR) can be applied to find counter examples in case when refinement is absent. We especially discuss the applicability of the construction method: it constructs abstract specifications which are either upward or downward simulations of the original specifications, and depending on the operations in the specification and the data abstraction chosen, such a construction might succeed or fail. The construction abstracts both the input/output as well as the state.
Similar content being viewed by others
References
Boiten, E.A., Derrick, J.: IO-refinement in Z. In: Evans, A., Duke, D.J., Clark, T. (eds.) 3rd BCS-FACS Northern Formal Methods Workshop. Springer, Heidelberg (1998). http://www.ewic. org.uk/
Bolton, C.: On the refinement of state-based and event-based models. PhD Thesis, University of Oxford (2002)
Bolton, C.: Using the alloy analyzer to verify data refinement in Z. In: Refine 2005. Electronic Notes in Theoretical Computer Science (2005)
Bolton, C., Davies, J.: Refinement in object-Z and CSP. In: Butler, M., Petre, L., Sere, K. (eds.) Integrated Formal Methods (IFM 2002). Lecture Notes in Computer Science, vol. 2335, pp. 225–244. Springer, Heidelberg (2002)
Bolton, C., Davies, J.: A singleton failures semantics for communicating sequential processes. Form. Asp. Comput. (2006, to appear)
Bolton C. and Lowe G. (2005). A hierarchy of failures-based models: Theory and application. Theor. Comput. Sci. 330(3): 407–438
Clarke, E.M., Grumberg, O., Long, D.E.: Model checking and abstraction. In: 19th ACM POPL (1992)
Clarke E.M., Grumberg O., Jha S., Lu Y. and Veith H. (2003). Counterexample-guided abstraction refinement for symbolic model checking. JACM 50(5): 752–794
Cousot, P.: Abstract interpretation. ACM Comput. Surv. 28(2) (1996)
Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: 4th ACM POPL (1977)
Dams, D., Grumberg, O., Gerth, R.: Abstract interpretation of reactive systems: abstractions preserving ∀ CTL *, ∃ CTL * and CTL *. In: Olderog, E.-R. (ed.) Programming Concepts, Methods and Calculi, vol. A-56, pp. 573–592. Elsevier, Amsterdam (1994)
Derrick J. and Boiten E.A. (1999). Calculating upward and downward simulations of state-based specifications. Inf. Softw. Technol. 41: 917–923
Derrick, J., Boiten, E.A.: Refinement in Z and object-Z. Springer, Heidelberg (2001)
Derrick J. and Boiten E.A. (2003). Relational concurrent refinement. Formal Aspects of Computing 15(1): 182–214
de Roever, W.-P., Engelhardt, K.: Data refinement: model-oriented proof methods and their comparison. CUP (1998)
Farias, A., Mota, A., Sampaio, A.: Efficient CSPZ data abstraction. In: Integrated Formal Methods (IFM 2004). LNCS, vol. 2966, pp. 108–127 (2004)
Fischer, C., Wehrheim, H.: Model-checking CSP-OZ specifications with FDR. In: Araki, K., Galloway, A., Taguchi, K. (eds.) Proceedings of the 1st International Conference on Integrated Formal Methods (IFM), pp. 315–334. Springer, Heidelberg (1999)
Formal Systems (Europe) Ltd. Failures-divergence refinement: FDR2 user manual (1997)
He, J.: Process refinement. In: McDermid, J. (ed.) The Theory and Practice of Refinement. Butterworths (1989)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Englewood Cliffs (1985)
Josephs M.B. (1988). A state-based approach to communicating processes.. Distrib. Comput. 3: 9–18
Kassel, G., Smith, G.: Model checking object-Z classes: some experiments with FDR. In: Asia-Pacific Software Engineering Conference (APSEC 2001). IEEE Computer Society Press (2001)
Lazic, R.: A semantic study of data independence with applications to model checking. PhD Thesis, Oxford University Computing Laboratory (1999)
Lazic, R., Roscoe, A.W.: Data independence with generalised predicate symbols. In: Parallel and Distributed Processing Techniques and Applications (PDPTA), pp. 319–325. CSREA Press (1999)
Leuschel, M, Butler, M.J.: Automatic refinement checking for B. In: Kung-Kiu Lau, Richard Banach (eds.) ICFEM. Lecture Notes in Computer Science, vol. 3785, pp. 345–359. Springer, Heidelberg (2005)
Loiseaux C., Graf S., Sifakis J., Bouajjani A. and Bensalem S. (1995). Property preserving abstractions for the verification of concurrent systems. Form. Methods Syst. Des. 6: 1–35
Mota A. and Sampaio A. (2001). Model-checking CSP-Z: strategy, tool support and industrial application. Sci. Comput. Program. 40: 59–96
Mota, A., Borba, P., Sampaio, A.: Mechanical abstraction of CSP-Z processes. In: Eriksson, L.-H., Lindsay, P. (eds.) Formal Methods Europe (FME’2002). LNCS, vol. 2391, pp. 163–183. Springer, Heidelberg (2002)
Roscoe, A.W.: The theory and practice of concurrency (1998)
Saaltink, M.: The Z/EVES system. In: ZUM ’97. LNCS, vol. 1212, pp. 72–88. Springer, Heidelberg (1997)
Scattergood, J.B.: The semantics and implementation of machine-readable CSP. PhD Thesis, University of Oxford (1998)
Schneider, S.: Non-blocking data refinement and traces-divergences semantics. Technical report, University of Surrey (2005)
Smith G. and Derrick J. (2001). Specification, refinement and verification of concurrent systems—an integration of Object-Z and CSP. Form. Methods Syst. Des. 18: 249–284
Smith, G., Derrick, J.: Model checking downward simulations. In: REFINE 2005, Electronic notes in theoretical computer science, vol. 137, pp. 205–224 (2005)
Smith G. and Derrick J. (2006). Verifying data refinements using a model checker. Form. Asp. Comput. 18(3): 264–287
Smith, G., Wildman, L.: Model checking Z specifications using SAL. In: International conference of B and Z users (ZB 2005). Lecture Notes in Computer Science, vol. 3455, pp. 85–103. Springer, Heidelberg (2005)
Spivey, J.M.: The Z notation: a reference manual, 2nd edn. Int. Ser. Comput. Sci. Prentice Hall, Englewood Cliffs (1992)
Stepney, S., Cooper, D., Woodcock, J.C.P.: More powerful data refinement in Z. In: Bowen, J.P., Fett, A., Hinchey, M.G. (eds.) ZUM’98: The Z Formal Specification Notation. Lecture Notes in Computer Science, vol. 1493, pp. 284–307. Springer, Heidelberg (1998)
Wehrheim, H.: Data abstraction techniques in the validation of CSP-OZ specifications. Form. Asp. Comput. 12 (2000)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Derrick, J., Wehrheim, H. On using data abstractions for model checking refinements. Acta Informatica 44, 41–71 (2007). https://doi.org/10.1007/s00236-007-0042-3
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00236-007-0042-3