Abstract
CSP || B is an integration of two well known formal notations: CSP and B. It provides a method for modelling systems with both complex state (described in B machines) and control flow (described as CSP processes). Consistency checking within this approach verifies that a controller process never calls a B operation outside its precondition. Otherwise the behaviour of the operation cannot be predicted. In previous work, this check was carried out by manually decomposing the model before preprocessing the CSP processes to perform a hand-written weakest precondition proof. In this paper, a framework is described that mechanises consistency checking in a theorem prover and removes the need for preprocessing. This work is based on an existing PVS embedding of the CSP traces model, but it is extended by introducing a notion of state so that the interaction between processes and machines can be analysed. Numerous rules have been defined (and proved) which enable consistency checking and decomposition via PVS proof. These rules also formally justify the relaxation of previous constraints on CSP || B architectures, thereby widening the scope of CSP || B modelling. The PVS embedding and rules presented in this paper are not only applicable to CSP || B specifications, but to other combined approaches which use a non-blocking semantics for the state-based operations.
Similar content being viewed by others
References
Abrial JR (1996) The B book: assigning programs to meanings. Cambridge University Press, Cambridge
Bodeveix JP, Filali M, Munoz C (1999) A formalization of the B method in Coq and PVS. In: FM’99 World Congress on formal methods. Springer, Heidelberg
Bramble MP (2004) Investigating the consistency of combined specifications. MPhil, Royal Holloway, University of London
Butler MJ (1992) A CSP approach to action systems. DPhil, Computer Laboratory, Oxford University
Butler M, Leuschel M (2005) Combining CSP and B for specification and property verification. In: Fitzgerald J, Hayes I, Tarlecki A (eds) Proceedings of formal methods
Cavalcanti A, Sampaio A, Woodcock J (2002) Refinement of actions in circus. In: REFINE’02, FME Workshop, Copenhagen
Dutertre B, Schneider S (1997) Embedding CSP in PVS: an application to authentication protocols. In: TPHOL’97. Springer, Heidelberg
Evans N, Treharne H (2005) Investigating a file transfer protocol using CSP and B. In: Software and System Modelling Special Issue of St. Eve workshop
Evans N, Treharne H (2005) Linking semantic models to support CSP || B consistency checking. In: Proceedings of the 5th International Workshop on Automated Verification of Critical Systems, Vol 145. ENTCS
Evans N, Treharne H, Laleau R, Frappier M (2004) How to verify dynamic properties of an information system. In: software engineering and formal methods. IEEE, New York
Hoare CAR (1985) Communicating sequential processes. Prentice–Hall, Englewood Cliffs
Jensen T (1994) Abstract interpretation over algebraic data types. In: Proceedings of 5th IEEE international conference on computer languages. IEEE Press, New York
Morgan CC (1990) Of wp and CSP. In: Feijen WHJ, van Gasteren AJM, Gries D, Misra J (eds) Beauty is our business: a birthday salute to Edsger W. Dijkstra. Springer, Heidelberg
Munoz C (1999) Rushby JM structural embedding: mechanization with method. In: FM’99 World congress on formal methods. Springer, Heidelberg
Owre S, Rushby JM, Shankar N (1992) PVS: a prototype verification system. In: Proceedings of 11th international conference on automated deduction (CADE), LNAI 607. Springer, Heidelberg
Owre S, Shankar N (1993) Abstract datatypes in PVS. Technical report SRI-CSL-93-9R, Computer Science Laboratory, SRI International, Menlo Park, CA (extensively revised in 1997)
Owre S, Shankar N, Rushby JM (2001) PVS language reference. Reference manual, version 2.4. SRI International, Menlo Park
Pratten C (1995) An introduction to proving AMN specifications with PVS. In: Proceedings of Z twenty years on—what is its future
Roscoe AW (1998) The theory and practice of concurrency. Prentice–Hall, Englewood Cliffs
Schneider S (2001) The B method: an introduction. Palgrave
Schneider S (1999) Concurrent and real-time systems: the CSP approach. Wiley, London
Shankar N, Owre S, Rushby JM, Stringer-Calvert DWJ (2001) PVS prover guide. Reference manual, version 2.4. SRI International, Menlo Park
Schneider S, Treharne H (2002) Communicating B machines. In: ZB2002, LNCS 2272. Springer, Heidelberg
Schneider S, Treharne H (2005) CSP theorems for communicating B machines. In formal aspects of computing, Vol 17, Number 4. Springer, Heidelberg
Smith G, Derrick J (1997) Refinement and verification of concurrent systems specified in object-Z and CSP. In ICFEM’97. IEEE Computer Society, New York
Treharne H (2000) Controlling software specifications. PhD Thesis, Royal Holloway, University of London
Treharne H, Schneider S (1999) Using a process algebra to control B operations. In: IFM99. Springer, Heidelberg
Author information
Authors and Affiliations
Corresponding author
Additional information
R. Lazic, R. Nagarajan and J. C. P. Woodcock
Rights and permissions
About this article
Cite this article
Evans, N., Treharne, H. Interactive tool support for CSP || B consistency checking. Form Asp Comp 19, 277–302 (2007). https://doi.org/10.1007/s00165-007-0034-7
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-007-0034-7