A Program Verification System Based on Oz

  • Isabelle Dony
  • Baudouin Le Charlier
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3389)


We present an imperative program verification system that exploits many powerful aspects of Oz. Our verification system supports an expressive assertion language for writing specifications and loop invariants. It is able to prove the correctness of elaborated imperative programs consisting of several subproblems that are checked independently. We illustrate the functionalities of our system on a few non trivial examples. Then, we explain that, using Oz constraint programming and other convenient programming mechanisms of Oz, the implementation of the system is straightforward. We also provide information about the efficiency of our implementation.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    The Mozart Programming System,
  2. 2.
    The PVS specification and verification system,
  3. 3.
    Bal, T., Rajamani, S.K.: Boolean programs: A model and process for software analysis. Technical Report 2000-14, Microsoft Research (2000)Google Scholar
  4. 4.
    Corbett, J.C., Dwyer, M.B., Hatcliff, J.: A language framework for expressing checkable properties of dynamic software. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 93–112. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  5. 5.
    Jackson, S.J.D., Damon, C.A.: Isomorph-free model enumeration: a new method for checking relational specifications. ACM Trans. on Programming Languages and Systems 20(2), 302–343 (1998)CrossRefGoogle Scholar
  6. 6.
    Damon, C.A., Jackson, D.: Efficient search as a means of executing specifications. In: Margaria, T., Steffen, B. (eds.) TACAS 1996. LNCS, vol. 1055, pp. 70–86. Springer, Heidelberg (1996)Google Scholar
  7. 7.
    Grumberg, O., Clarke, E.M., Long, D.E.: Model checking and abstraction. ACM Transactions on Programming Langages and Systems 16(5), 1512–1542 (1994)CrossRefGoogle Scholar
  8. 8.
    Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: Proc. of the conference record of the Fifth annual ACM Symptium on Principles of Programming Languages, Tukson, Arizona, pp. 84–97. ACM Press, New York (1978)Google Scholar
  9. 9.
    Floyd, R.W.: Assigning meanings to programs. In: Proc. of Symposia in Applied Mathematics, vol. 19, pp. 19–32. Mathematical Society (1967)Google Scholar
  10. 10.
    Hoare., C.A.R.: An axiomatic definition of semantics. Communications of the ACM 12(10) (1969)Google Scholar
  11. 11.
    Jackson, D.: Aspect: Detecting bugs with abstract dependences. ACM Trans. on Software Engineering and Methodology 4(2), 109–145 (1995)CrossRefGoogle Scholar
  12. 12.
    Charlier, B.L., Derroite, M.: Un système d’aide à l’enseignement d’une méthode de programmation. In: Actes du premier colloque francophone sur la didactique de l’informatique (1989)Google Scholar
  13. 13.
    Moussa, L., Dieul, E.: VICS, verification of an implementation conforming to its specification,
  14. 14.
    Schulte, C.: Programming constraint services. Master’s thesis, Saarbrucken (2000)Google Scholar
  15. 15.
    Van Roy, P., Haridi, S.: Concepts, Techniques, and Models of Computer Programming. The MIT Press, Cambridge (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Isabelle Dony
    • 1
  • Baudouin Le Charlier
    • 1
  1. 1.Université catholique de Louvain 

Personalised recommendations