Abstract
Action systems provide a formal approach to modelling parallel and reactive systems. They have a well established theory of refinement supported by simulation-based proof rules. This paper introduces an automatic approach for verifying action system refinements utilising standard CTL model checking. To do this, we encode each of the simulation conditions as a simulation machine, a Kripke structure on which the proof obligation can be discharged by checking that an associated CTL property holds. This procedure transforms each simulation condition into a model checking problem. Each simulation condition can then be model checked in isolation, or, if desired, together with the other simulation conditions by combining the simulation machines and the CTL properties.
Similar content being viewed by others
References
Abrial J-R (1996) The B-Book: Assigning programs to meanings. Cambridge University Press, Cambridge
Back RJR (1992) Refinement of parallel and reactive programs. Technical Report Caltech-CS-TR-92-23, Computer Science Department, California Institute of Technology
Butler M, Grundy J, Langbacka T, Ruksenas R, von Wright J (1997) The refinement calculator: Proof support for program refinement. In: Groves L, Reeves S (eds) Formal Methods Pacific ’97. Springer, Berlin, pp 40–61
Back RJR, Kurki-Suonio R (1989) Decentralization of process nets with centralized control. Distributed Comput 3(2):73–87
Bolton C (2005) Using the Alloy analyzer to verify data refinement in Z. In: Derrick J, Boiten E (eds) REFINE 2005, vol 137, Issue 2 of ENTCS. Elsevier, Amsterdam, pp 23–44
Back RJR, Sere K (1992) Superposition refinement of parallel algorithms. In: Parker K, Rose G (eds) Formal Description Techniques (FORTE IV). North-Holland, Amsterdam, pp 475–493
Back RJR, von Wright J (1994) Trace refinement of action systems. In: Jonsson B, Parrow J (eds) Concurrency theory (CONCUR ’94). LNCS, vol 836. Springer, Berlin, pp 367–384
Back RJR, von Wright J (1998) Refinement calculus: A systematic introduction. Graduate Texts in Computer Science. Springer, Berlin
Derrick J, Boiten E (2001) Refinement in Z and Object-Z, foundations and advanced applications. Springer, Berlin
de Moura L, Owre S, Rueß H, Rushby J, Shankar N, Sorea M, Tiwari A (2004) SAL 2. In: Alur R, Peled D (eds) International Conference on Computer Aided Verification (CAV 2004). LNCS, vol 3114. Springer, Berlin, pp 496–500
Emerson EA (1990) Temporal and modal logic. In: van Leeuwen J (ed) Handbook of theoretical computer science, vol B. Elsevier, Amsterdam, pp 996–1072
Fischer C, Wehrheim H (1999) Model-checking CSP-OZ specifications with FDR. In: Araki K, Galloway A, Taguchi K (eds) International Conference on Integrated Formal Methods (IFM’99). Springer, Berlin, pp 315–334
He J (1989) Process refinement. In: McDermid J (ed) The theory and practice of refinement. Butterworths, London
Jackson D (2002) Alloy: a lightweight object modelling notation. ACM Trans Software Eng Methodol 11(2):256–290
Josephs M (1988) A state-based approach to communicating processes. Distributed Comput 3:9–18
Kassel G, Smith G (2001) Model checking Object-Z classes: some experiments with FDR. In: Asia-Pacific Software Engineering Conference (APSEC 2001). IEEE Computer Society Press, Washington
Leuschel M, Butler M (2003) ProB: a model checker for B. In: Araki K, Gnesi S, Mandrioli D (eds) Formal Methods Europe (FME 2003). LNCS, vol 2805. Springer, Berlin, pp 855–874
Leuschel M, Butler M (2005) Automatic refinement checking for B. In: Lau K, Banach R (eds) International Conference on Formal Engineering Methods (ICFEM 2005). LNCS, vol 3785. Springer, Berlin, pp 345–359
Mota A, Sampaio A (2001) Model-checking CSP-Z: strategy, tool support and industrial application. Sci Comput Program 40:59–96
Robinson N, Fidge C (2002) Animation of data refinements. In: Strooper P, Muenchaisri P (eds) Asia-Pacific Software Engineering Conference (APSEC 2002). IEEE Computer Society Press, Washington, pp 137–146
Robinson N (2002) Checking Z data refinement using an animation tool. In: Bert D, Bowen JP, Henson MC, Robinson K (eds) International Conference of Z and B users (ZB 2002). LNCS, vol 2272. Springer, Berlin, pp 62–81
Robinson N (2003) Finding abstraction relations for data refinement. Technical Report TR03-03, Software Verification Research Centre, The University of Queensland
Robinson N (2003) Incremental derivation of abstraction relations for data refinement. In: Dong JS, Woodcock J (eds) International Conference on Formal Engineering Methods (ICFEM 2003). LNCS, vol 2885. Springer, Berlin, pp 246–265
Roscoe AW (1998) The theory and practice of concurrency. Series in Computer Science. Prentice-Hall, Englewood Cliffs
Smith G, Derrick J (2006) Verifying data refinements using a model checker. Formal Aspects Comput 18(3):264–287
Smith G (2000) The Object-Z Specification language. Advances in formal methods. Kluwer, Dordrecht
Spivey JM (1992) The Z notation: A reference manual 2nd edn. Prentice-Hall, Englewood Cliffs
Smith G, Winter K (2006) Simulation machines for checking action system refinements. In: Aichernig B, Boiten E, Derrick J, Groves L (eds) International Refinement Workshop (Refine 2006), vol 187 of ENTCS. Elsevier, Amsterdam, pp 75–90
Waldén M, Sere K (1996) Refining action systems within B-Tool. In Formal Methods Europe (FME ’96). LNCS, vol 1051. Springer, Berlin, pp 84–103
Author information
Authors and Affiliations
Corresponding author
Additional information
B. K. Aichernig, E. A. Boiten, M. J. Butler, J. Derrick and L. Groves
Rights and permissions
About this article
Cite this article
Smith, G., Winter, K. Model checking action system refinements. Form Asp Comp 21, 155–186 (2009). https://doi.org/10.1007/s00165-007-0053-4
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-007-0053-4