Introducing Backward Refinement into B

  • Steve Dunne
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2651)


The B Method exploits a direct first-order wp predicate-transformer formulation of downward simulation to generate its proof obligations for a refinement, so B’s notion of refinement is restricted to that of forward refinement. Therefore some refinements we would intuitively recognise as valid cannot be proved so in B. While relational formulations of upward simulation abound in the refinement literature, the only predicate-transformer formulations proposed hitherto have been higher-order ones quantified over all postconditions, which cannot be conveniently exploited by the B Method. Here, we propose a new first-order predicate-transformer formulation of upward simulation suitable to be adopted by B for backward refinement.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    M. Abadi and L. Lamport. The existence of refinement mappings. Theoretical Computer Science, 82(2):253–284, 1991.MATHCrossRefMathSciNetGoogle Scholar
  2. [2]
    J.-R. Abrial. The B-Book: Assigning Programs to Meanings. Cambridge University Press, 1996.Google Scholar
  3. [3]
    W.-P. de Roever and K. Engelhardt. Data Refinement: Model-Oriented Proof Methods and their Comparison. Number 47 in Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1998.Google Scholar
  4. [4]
    J. Derrick. A single complete refinement rule for Z. Journal of Logic and Computation, 10(5): 663–675, 2000.MATHCrossRefMathSciNetGoogle Scholar
  5. [5]
    E.W. Dijkstra. A Discipline of Programming. Prentice-Hall International, 1976.Google Scholar
  6. [6]
    E.W. Dijkstra and C.S. Scholten. Predicate Calculus and Program Semantics. Springer Berlin, 1990.MATHGoogle Scholar
  7. [7]
    S.E. Dunne. A theory of generalised substitutions. In D. Bert, J.P. Bowen, M.C. Henson, and K. Robinson, editors, ZB2002: Formal Specification and Development in Z and B, number 2272 in Lecture Notes in Computer Science, pages 270–290. Springer-Verlag, 2002.CrossRefGoogle Scholar
  8. [8]
    P.H.B. Gardiner and Carroll Morgan. A single complete rule for data refinement. Formal Aspects of Computing, 5:367–382, 1993.MATHCrossRefGoogle Scholar
  9. [9]
    E.C.R. Hehner. Bunch theory: a simple set theory for computer science. Information Processing Letters, 12(1):26–30, 1981.MATHCrossRefMathSciNetGoogle Scholar
  10. [10]
    Wim H. Hesselink. Programs, Recursion and Unbounded Choice. Number 27 in Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1992.Google Scholar
  11. [11]
    C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10): 576–583, 1969.MATHCrossRefGoogle Scholar
  12. [12]
    C.A.R. Hoare, He Jifeng, and J.W. Sanders. Data refinement refined. Number 213 in Lecture Notes in Computer Science, pages 187–196. Springer-Verlag, 1986.Google Scholar
  13. [13]
    C.C. Morgan. Programming from Specifications (2nd edn). Prentice Hall International, 1994.Google Scholar
  14. [14]
    K. Robinson. Reconciling axiomatic and model-based specifications using the B Method. In Jonathan P. Bowen, Steve Dunne, Andy Galloway, and Steve King, editors, ZB2000: Formal Specification and Development in B and Z, number 1878 in Lecture Notes in Computer Science, pages 95–106. Springer, 2000.CrossRefGoogle Scholar
  15. [15]
    Steve Schneider. The B Method: an introduction. Cornerstones of Computing. Palgrave, 2001.Google Scholar
  16. [16]
    J.M. Spivey. The Z Notation: a Reference Manual (2nd edn). Prentice Hall, 1992.Google Scholar
  17. [17]
    Susan Stepney, David Cooper, and Jim Woodcock. More powerful Z data refinement: pushing the state of the art in industrial refinement. In Jonathan P. Bowen, Andreas Fett, and Michael G. Hinchey, editors, ZUM’ 98: The Z Formal Specification Notation, 11th International Conference of Z Users, Berlin, September,1998, Proceedings, number 1493 in Lecture Notes in Computer Science, pages 284–307. Springer, 1997.Google Scholar
  18. [18]
    J. von Wright. The lattice of data refinement. Acta Informatica, 31(2):105–135, 1994.MATHCrossRefMathSciNetGoogle Scholar
  19. [19]
    J. Woodcock and J. Davies. Using Z: Specification, Refinement and Proof. Prentice Hall, 1996.Google Scholar
  20. [20]
    J.C.P. Woodcock and Carroll Morgan. Refinement of state-based concurrent systems. In Dines Bjørner, C. A. R. Hoare, and Hans Langmaack, editors, VDM’ 90, VDM and Z — Formal Methods in Software Development, Third International Symposium of VDM Europe, Kiel, FRG, April 17–21, 1990, Proceedings, number 428 in Lecture Notes in Computer Science, pages 340–351. Springer, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Steve Dunne
    • 1
  1. 1.School of Computing and MathematicsUniversity of TeessideMiddlesbroughUK

Personalised recommendations