Software & Systems Modeling

, Volume 4, Issue 3, pp 258–276 | Cite as

Investigating a file transfer protocol using CSP and B

  • Neil Evans
  • Helen Treharne
Special section on St.Eve workshop


In this paper a file transmission protocol specification is developed using the combination of two formal methods: CSP and B. The aim is to demonstrate that it is possible to integrate two well established formal methods whilst maintaining their individual advantages. We discuss how to compositionally verify the specification and ensure that it preserves some abstract properties. We also discuss how the structure of the specification follows a particular style which may be generally applicable when modelling other protocols using this combination .


CSP Combining formalisms Compositional verification 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abadi M, Lamport L (1993) Composing Specifications. ACM Transactions on Programming Languages and Systems 15(1):73–132, January 1993CrossRefGoogle Scholar
  2. 2.
    Abrial JR (1996) The B Book: Assigning Programs to Meaning. CUPGoogle Scholar
  3. 3.
    Abrial JR (1996) Extending B without changing it (for developing distributed systems). In: Habrias H (ed) 1st Conference on the B Method, Nantes, November 1996, pp 169–190Google Scholar
  4. 4.
    Abrial JR, Mussat L (1997) Specification and Design of a Transmission Protocol by Successive Refinements using B. Mathematical Models in Program Development 158:129–200. Springer, Nato ASI Series F: Computer and Systems SciencesGoogle Scholar
  5. 5.
    Behm P, Desforges P, Maynadier JM (1998) METEOR: An Industrial Success in Formal Development. B’98, Montpellier, April 1998, LNCS, vol 1393. SpringerGoogle Scholar
  6. 6.
    Bolognesi T, Brinksma E (1998) Introduction to the ISO Specification Language LOTOS. Computer Networks and ISDN Systems 14(1):25–29, January 1998CrossRefGoogle Scholar
  7. 7.
    Bramble M (2004) Investigating the consistency of combined specifications. MPhil thesis, Royal Holloway, University of LondonGoogle Scholar
  8. 8.
    Butler MJ (2000) csp2B: A Practical Approach to Combining CSP and B. Formal Aspects of Computing 12:182–196CrossRefGoogle Scholar
  9. 9.
    Cavalcanti A, Sampaio A, Woodcock J (2002) Refinement of Actions in Circus. In: REFINE’02, FMEWorkshop, CopenhagenGoogle Scholar
  10. 10.
    Evans N, Treharne H, Laleau R, Frappier M (2004) How to Verify Dynamic Properties of Information Systems. In: IEEE International Conference on Software Engineering and Formal Methods, China. IEEE Computer Society PressGoogle Scholar
  11. 11.
    Havelund K, Shankar N (1996) Experiments in Theorem Proving and Model Checking. In: FME’96, Oxford, March 1996, LNCS, vol 1051. SpringerGoogle Scholar
  12. 12.
    Goldberg A (1983) Smalltalk-80: The Interactive Programming Environment. Addison-Wesley PublishersGoogle Scholar
  13. 13.
    Helmink L, Selling MPA, Vaandrager FW (1994) Proofchecking a data link protocol. Technical Report CS-R9420, Centruum voor Wiskunde en Informatica (CWI), March 1994Google Scholar
  14. 14.
    Hoare CAR (1985) Communicating Sequential Processes. Prentice HallGoogle Scholar
  15. 15.
    Lamport L, Schneider FB (1984) The “Hoare Logic” of CSP, and All That. ACM Transactions on Programming Languages and Systems 6(2):281–296, April 1984CrossRefGoogle Scholar
  16. 16.
    Mateescu R (1996) Formal Description and Analysis of a Bounded Retransmission Protocol. INRIA Rapport de recherche 2965Google Scholar
  17. 17.
    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. SpringerGoogle Scholar
  18. 18.
    Roscoe AW (1998) The Theory and Practice of Concurrency. Prentice HallGoogle Scholar
  19. 19.
    Schneider S, Treharne H (2002) Communicating B Machines. In: ZB2002, Grenoble, January 2002, LNCS, vol 2272, SpringerGoogle Scholar
  20. 20.
    Schneider S, Treharne H (2002) CSP Theorems for Communicating B Machines. Technical Report CSD-TR-02-12, Dept. of Computer Science, Royal HollowayGoogle Scholar
  21. 21.
    Schneider SA (1999) Concurrent and Real-Time Systems: the CSP Approach. John WileyGoogle Scholar
  22. 22.
    Fischer C (1997) CSP-OZ: A combination of Object-Z and CSP. In: Bowman H, Derrick J (eds) Formal Methods for Open Object-Based Distributed Systems (FMOODS ’97), vol 2. Chapman & HallGoogle Scholar
  23. 23.
    Stepney S, Cooper D, Woodcock J (2000) An Electronic Purse Specification, Refinement and Proof. Oxford University Computing Laboratory, Technical Monograph PRG-126, July 2000Google Scholar
  24. 24.
    Treharne H (2000) Controlling Software Specifications. PhD Thesis, Royal Holloway, University of LondonGoogle Scholar
  25. 25.
    Treharne H, Schneider S, Bramble M (2003) Composing Specifications using Communication. In: ZB2003, Grenoble, June 2003, LNCS, vol 2651, SpringerGoogle Scholar
  26. 26.
    Vissers CA, Scollo G, van Sinderen M, Brinksma E (1991) Specification Styles in Distributed Systems Design and Verification. TCS 89:179–206CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 2005

Authors and Affiliations

  • Neil Evans
    • 1
  • Helen Treharne
    • 2
  1. 1.Department of Computer Science, Royal HollowayUniversity of LondonUK
  2. 2.Department of ComputingUniversity of SurreyUK

Personalised recommendations