From OBJ to ML to Coq

  • Jacek Chrząszcz
  • Jean-Pierre Jouannaud
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4060)


Rigorous program development is notoriously difficult because it involves many aspects, among which specification, programming, verification, code reuse, maintenance, and version management. Besides, these various tasks are interdependent, requiring going back and forth between them. In this paper, we are interested in certain language features and in languages which help make the user’s life easier for developing programs satisfying their specifications.


Priority Queue Sorting Algorithm Proof Assistant Functional Programming Language Initial Algebra 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    Borovanský, P., Kirchner, C., Kirchner, H., Moreau, P.-E., Vittek, M.: ELAN: A logical framework based on computational systems. In: Meseguer, J. (ed.) 1st International Workshop on Rewriting Logic and its Applications. Electronic Notes in Theoretical Computer Science, vol. 4 (1996)Google Scholar
  3. 3.
    Bouhoula, A., Jouannaud, J.-P., Meseguer, J.: Specification and proof in membership equational logic. Theoretical Computer Science 236, 35–132 (1999)CrossRefMathSciNetGoogle Scholar
  4. 4.
    Bracha, G.: The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, Dept. of Computer Science, University of Utah (1992)Google Scholar
  5. 5.
    Brodal, G.S., Okasaki, C.: Optimal purely functional priority queues. Journal of Functional Programming 6(6), 839–857 (1996)MATHCrossRefGoogle Scholar
  6. 6.
    Burstall, R.M., Goguen, J.A.: Burstall and Joseph A. Goguen. Putting theories together to make specifications. In: Proc. 5th International Joint Conference of Artificial Intelligence, Cambridge Massachusetts, pp. 1045–1058. Edinburgh University, Edinburgh (1977)Google Scholar
  7. 7.
    Burstall, R.M., Goguen, J.A.: The semantics of CLEAR, a specification language. In: Abstract Software Specifications. LNCS, vol. 86, Springer, Heidelberg (1980)Google Scholar
  8. 8.
    Chrząszcz, J.: Modules in Coq are and will be correct. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 130–146. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  9. 9.
    Clavel, M., Eker, S., Lincoln, P., Meseguer, J.: Principles of Maude. In: Meseguer, J. (ed.) 1st International Workshop on Rewriting Logic and its Applications. Electronic Notes in Theoretical Computer Science, vol. 4 (1996)Google Scholar
  10. 10.
    The Coq proof assistant,
  11. 11.
    Coquand, T., Huet, G.: The calculus of constructions. Information and Computation 76, 95–120 (1988)MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Thierry Coquand and Christine Paulin-Mohring. Inductively defined types. In P. Martin-Löf and G. Mints, editors, COLOG-88: International conference on computer logic, volume 417 of LNCS. Springer-Verlag, 1990.Google Scholar
  13. 13.
    Filliâtre, J.-C., Letouzey, P.: Functors for Proofs and Programs. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 370–384. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  14. 14.
    Futatsugi, K., Goguen, J.A., Jouannaud, J.-P., Meseguer, J.: Principles of OBJ2. In: Proc. 12th ACM Symp. on Principles of Programming Languages, New Orleans (1985)Google Scholar
  15. 15.
    Goguen, J.A., Thatcher, J.W., Wagner, E.G.: An initial algebra approach to the specification, correctness and implementation of abstract data types. In: Current Trends in Programming Methodology, vol. 4, pp. 80–149. Prentice Hall, Englewood Cliffs (1978)Google Scholar
  16. 16.
    Goguen, J.A., Thatcher, J.W., Wagner, E.W., Wright, J.B.: Initial algebra semantics and continuous algebra. Journal of the ACM 24(1), 68–95 (1977)MATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Goguen, J.A., Tardo, J.J.: An introduction to obj, a language for writing and testing formal algebraic specifications. In: Specification of Reliable Software Conference, April 1979, pp. 170–189 (1979)Google Scholar
  18. 18.
    Goguen, J.A., Winkler, T., Meseguer, J., Futatsugi, K., Jouannaud, J.-P.: Introducing OBJ*. In: Coleman, D., Gallimore, R., Goguen, J.A. (eds.) Applications of Algebraic Specifications Using OBJ, Cambridge University Press, Cambridge (1993)Google Scholar
  19. 19.
    Hirschowitz, T., Leroy, X.: Mixin modules in a call-by-value setting. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 6–20. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  20. 20.
    Kirchner, C., Kirchner, H., Meseguer, J.: Operational semantics of OBJ3. In: Lepistö, T., Salomaa, A. (eds.) ICALP 1988. LNCS, vol. 317, pp. 287–301. Springer, Heidelberg (1988)Google Scholar
  21. 21.
    The LEGO proof assistant,
  22. 22.
    Luo, Z.: ECC an Extended Calculus of Constructions. In: 4th Symposium on Logic in Computer Science, Pacific Grove, California (1989)Google Scholar
  23. 23.
    MacQueen, D.: Theory and practice of higher-order type systems or the Standard ML type system. Copy of TransparenciesGoogle Scholar
  24. 24.
    Magnusson, L., Nordström, B.: The alf proof editor and its proof engine. In: Barendregt, H., Nipkow, T. (eds.) TYPES 1993. LNCS, vol. 806, pp. 213–237. Springer, Heidelberg (1994)Google Scholar
  25. 25.
    Martin-Löf, P.: An intuitionistic theory of types: Predicative part. In: Rose, H.E., Sheperdson, J.C. (eds.) Logic Colloquium 1973 Studies in Logic, vol. 80, pp. 73–118. North-Holland, Amsterdam (1975)CrossRefGoogle Scholar
  26. 26.
    Martin-Löf, P.: Intuitionistic Type Theory, Biblioplois, Napoli. Notes of Giowanni Sambin on a series of lectues given in Padova (1984)Google Scholar
  27. 27.
    Milner, R.: A theory of type polymorphism programming. Journal of Computer and System Sciences 17 (1978)Google Scholar
  28. 28.
    Nakajima, S., Futatsugi, K.: An object-oriented modeling method for algebraic specifications in Cafe OBJ. In: 19th International Conference on Software Engineering, pp. 34–44. ACM Press, New York (1997)Google Scholar
  29. 29.
    The Objective Caml language,
  30. 30.
    Weis, P., et al.: The CAML reference manual. Rapport de Recherche 121, INRIA (1990)Google Scholar
  31. 31.
    Werner, B.: Méta-théorie du Calcul des Constructions Inductives. PhD thesis, Univ. Paris VII (1994)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Jacek Chrząszcz
    • 1
  • Jean-Pierre Jouannaud
    • 2
  1. 1.Institute of InformaticsWarsaw UniversityWarsaw
  2. 2.École Polytechnique, LIX, CNRS UMR 7161Palaiseau

Personalised recommendations