Relaxing Restrictions on Invariant Composition in the B Method by Ownership Control a laSpec#

  • Sylvain Boulmé
  • Marie-Laure Potet
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5115)


This paper deals with modular verification of component invariants in the B Method. On the one hand, B imposes severe architecture restrictions that ensure soundness of component compositions with a few additional proof obligations. On the other hand, in the context of the verification of object oriented programs, Spec# proposes a more expressive approach, but at the price of more complex specifications, and more numerous proof obligations. In this paper, we investigate an intermediate solution combining the advantages of both approaches.


Component Status Generalize Substitution Proof Obligation Typing Rule Abstract Machine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Abr96]
    Abrial, J.R.: The B-Book. Cambridge University Press, Cambridge (1996)zbMATHGoogle Scholar
  2. [Ba99]
    Behm, P., et al.: Météor: A successful application of B in a large project. In: Wing, J.M., Woodcock, J.C.P., Davies, J. (eds.) FM 1999. LNCS, vol. 1708, pp. 369–387. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  3. [BA05]
    Badeau, F., Amelot, A.: Using B as a High Level Programming Language in an Industrial Project: Roissy VAL. In: Treharne, H., King, S., Henson, M.C., Schneider, S. (eds.) ZB 2005. LNCS, vol. 3455, pp. 334–354. Springer, Heidelberg (2005)Google Scholar
  4. [BB99]
    Büchi, M., Back, R.: Compositional Symmetric Sharing in B. In: Wing, J.M., Woodcock, J.C.P., Davies, J. (eds.) FM 1999. LNCS, vol. 1708, p. 431. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  5. [BBP+03]
    Bert, D., Boulmé, S., Potet, M.-L., Requet, A., Voisin, L.: Adaptable Translator of B Specifications to Embedded C programs. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805. Springer, Heidelberg (2003)Google Scholar
  6. [BDF+04]
    Barnett, M., DeLine, R., Fähndrich, M., Leino, K.R.M., Schulte, W.: Verification of object-oriented programs with invariants. Journal of Object Technology 3(6), 27–56 (2004)Google Scholar
  7. [BN04]
    Barnett, M., Naumann, D.A.: Friends need a bit more: Maintaining invariants over shared state. In: Kozen, D. (ed.) MPC 2004. LNCS, vol. 3125, pp. 54–84. Springer, Heidelberg (2004)Google Scholar
  8. [BP07]
    Boulmé, S., Potet, M.-L.: Interpreting invariant composition in the B method using the spec# ownership relation: A way to explain and relax B restrictions. In: Julliand, J., Kouchnarenko, O. (eds.) B 2007. LNCS, vol. 4355, pp. 4–18. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  9. [Cle02]
    ClearSy. Le Langage B. Manuel de reference, version 1.8.5. ClearSy (2002)Google Scholar
  10. [Dij76]
    Dijkstra, E.W.: A discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)zbMATHGoogle Scholar
  11. [GP85]
    Gries, D., Prins, J.: A New Notion of Encapsulation. In: Proc. of Symposium on Languages Issues in Programming Environments, SIGLPAN (1985)Google Scholar
  12. [Hab01]
    Habrias, H.: Spécification formelle avec B. Hermès Science Publications (2001)Google Scholar
  13. [Hoa72]
    Hoare, C.A.R.: Proof of correctness of data representations. Acta Informatica 1, 271–281 (1972)zbMATHCrossRefGoogle Scholar
  14. [LM04]
    Leino, K.R.M., Müller, P.: Object invariants in dynamic contexts. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 491–516. Springer, Heidelberg (2004)Google Scholar
  15. [LM06]
    Leino, K.R.M., Müller, P.: A verification methodology for model fields. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 115–130. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. [LR98]
    Lanet, J.-L., Requet, A.: Formal Proof of Smart Card Applets Correctness. In: Schneier, B., Quisquater, J.-J. (eds.) CARDIS 1998. LNCS, vol. 1820. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  17. [MG90]
    Morgan, C., Gardiner, P.H.B.: Data Refinement by Calculation. Acta Informatica 27(6), 481–503 (1990)zbMATHCrossRefMathSciNetGoogle Scholar
  18. [MPHL06]
    Müller, P., Poetzsch-Heffer, A., Leavens, G.T.: Modular Invariants for Layered Object Structures. Science of Computer Programming (2006)Google Scholar
  19. [NB04]
    Naumann, D.A., Barnett, M.: Towards imperative modules: Reasoning about invariants and sharing of mutable state. In: LICS 2004, pp. 313–323. IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
  20. [Pot02]
    Potet, M.-L.: Spécifications et développements formels: Etude des aspects compositionnels dans la méthode B. Habilitation à  diriger des  recherches, Institut National Polytechnique de Grenoble, décembre 5 (2002)Google Scholar
  21. [SL00]
    Sabatier, D., Lartigue, P.: The Use of the B method for the Design and the Validation of the Transaction Mechanism for smart Card Applications. Formal Methods in System Design 17(3), 245–272 (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Sylvain Boulmé
    • 1
  • Marie-Laure Potet
    • 1
  1. 1.Verimag, GrenobleFrance

Personalised recommendations