Formal verification of concurrent programs in Lp and in Coq: A comparative analysis

  • Boutheina Chetali
  • Barbara Heyd
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1275)


This paper describes the formal verification of parallel programs using a rewrite and induction based theorem prover like LP and a higher order theorem prover based on the Calculus of Inductive Construction, namely Coq. The chosen specification environment is UNITY, a subset of temporal logic for specifying and verifying concurrent programs. By means of an example, a lift-control program, we describe the embedding Of UNITY and we show how to verify mechanically program properties using the two provers. Then we summarize a comparison between the theorem proving environments, based on our practical experience with both systems for the verification of UNITY programs.


Formal Verification Unity theorem prover methodology Larch Prover Coq Computer Checked Proof 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    F. Andersen. A theorem Proyer for UNITY in Higher Order Logic. PhD thesis, Technical University of Denmark, 1992.Google Scholar
  2. 2.
    F. Andersen, K.D. Petersen, and J.S. Pettersson. Program verification using HOL-Unity. In J.J. Joyce and C.H. Seger, editors, Proceedings sixth International Workshop on Higher Order Logic theorem proving and its applications, volume 780 of Lecture Notes in Computer Science, pages 1–15, Vancouver, Canada, August 1993. Springer-Verlag.Google Scholar
  3. 3.
    D Bolignano. Towards a Mechanization of Cryptographic Protocol Verification. In Conference On Computer-Aided Verification, Haifa, Israël, Jun 1997. Springer-Verlag.Google Scholar
  4. 4.
    N. Brown and D. Merl A proof environment for concurrent programs. In In Proceedings FME'93 Symposium, volume 670 of Lecture Notes in Computer Science. Springer-Verlag, 1993.Google Scholar
  5. 5.
    K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988. ISBN 0-201-05866-9.Google Scholar
  6. 6.
    B. Chetali. Vérification Formelle des Systèmes Parallèles décrits en UNITY á l'aide d'un outil de Démonstration Automatique. PhD thesis, Université Henri Poincaré, Nancy l., May 1996.Google Scholar
  7. 7.
    B. Chetali and P. Lescanne. An exercise in LP: The proof of the non restoring division circuit. In U. Martin and J.M. Wing, editors, Proceedings First International Workshop on Larch, volume 780 of Workshops in Computing, pages 55–68, Dedbam, Boston, August 1992. Springer-Verlag.Google Scholar
  8. 8.
    B. Chetali and P. Lescarme. Formal verification of a protocol for communications over faulty channels. In Proc., of the 8th International Conference on Formal Description Techniques for Distributed Systems and Communications Protocols (FORTE'95), Montréal, Quebec, Canada, October 1995. IFIP.Google Scholar
  9. 9.
    Projet Coq. The coq proof assistant (version 6.1). Reference Manual, 1996Google Scholar
  10. 10.
    S Coupet-Grimai and L Jakubiec. Coq and Hardward Verification: A Case Study. In J von Wright, J Grundy, and J Harrison, editors, Theorem Proving In Higher Order Logics, volume 1125 of Lecture Notes in Computer Science, pages 125–139, Turku, Finland, August 1996. Springer-Verlag.Google Scholar
  11. 11.
    P Crégut. Omega: A solver of quantifier-free problems in presburger arithmetic. Supplied in the contrib directory of Coq V6.1, 1996.Google Scholar
  12. 12.
    E. W. Dijkstra and C. S. Scholten. Predicate Calculus and Program Semantics. Springer-Verlag, 1989.Google Scholar
  13. 13.
    D. Doligez and G. Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In POPL'94. ACM, 1994.Google Scholar
  14. 14.
    S. V. Garland and J. V. Guttag. A guide to LP, the Larch prover. Technical Report 82, Digital Systems Research Center, 130 Lytton Ave., Palo Alto, CA 94301, USA., 1991.Google Scholar
  15. 15.
    E. Giménez. A Calculus of Infinite Constructions and its application to the verification of communicating systems. PhD thesis, Ecole Normale Supérieure de Lyon, 1996.Google Scholar
  16. 16.
    D. M. Goldschlag. Mechanically verifying concurrent programs with the Boyer-Moore Prover. IEEE Transactions on Software Engineering, 16(9):1005–1022, September 1990.Google Scholar
  17. 17.
    J. V. Guttag, J.J. Horning, S.J Garland, K.D. Jones, A. Modet, and J. M. Wing. Larch: Languages and Tools for Formal Specification. Springer-Verlag, 1993.Google Scholar
  18. 18.
    B Heyd and P. Crégut. A modular coding of Unity in Coq. In J von Wright, J Grundy, and J Harrison, editors, Theorem Proving in Higher Order Logic, volume 1125 of Lecture Notes in Computer Science, pages 251–266, Turku, Finland, August 1996. Springer-Verlag.Google Scholar
  19. 19.
    L. Lamport. Proving the correctness of multiprocess programs. IEEE Transactions on Software Engineering, 3(2):125–143, 1977.Google Scholar
  20. 20.
    L. Lamport and S. Owicki. The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3):872–923, may 1994.Google Scholar
  21. 21.
    Victor Luchangco, Ekrem Séylemez, Stephen Garland, and Nancy Lynch. Verifying timing properties of concurrent algorithms. In FORTE'94: Seventh International Conference on Formal Description Techniques, Berne, Switzerland, October 4–7 1994. Chapman and Hall.Google Scholar
  22. 22.
    Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems, Specification. Springer-Verlag, 1991.Google Scholar
  23. 23.
    N. Mellergaard and J. Staunstrup. Generating proof obligations for circuits. In Ursula Martin and Jeannette M. Wing, editors, First International Workshop on Larch, pages 185–199. Springer-Verlag, July 1992.Google Scholar
  24. 24.
    J. Misra. A logic for concurrent programming. unpublished manuscripts, 1994.Google Scholar
  25. 25.
    S. Owre, J. Rushby, N. Shankar, and F. von Henke. Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Transactions on Software Engineering, 21(2), February 1995.Google Scholar
  26. 26.
    C Paulin-Mohring. Circuits as Streams in Coq: Verification of a Sequential Multiplier. Basic Research Actions “Types”, 1995.Google Scholar
  27. 27.
    I.S.W.B. Prasetya. Error in the UNITY Substitution Rule for Subscripted Operators(Short Communication). 6(4):466–470, 1994.Google Scholar
  28. 28.
    B. A. Sanders. Eliminating the substitution axiom from UNITY logic. Formal Aspects of Computing, 3:189–205, 1991.Google Scholar
  29. 29.
    B Werner. Une théorie des constructions inductives. PhD thesis, Université Paris 7, 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Boutheina Chetali
    • 1
  • Barbara Heyd
    • 1
  1. 1.CRIN-CNRS and INRIA-LorraineUniversity of Henri Poincaré,Nancy IVillers-les-NancyFrance

Personalised recommendations