From sequential to distributed formal proofs

  • Víctor M. Gulfas
  • J. Santiago Jorge
  • Juan J. Quintela
  • José L. Freire
6 Specific Methods and Applications
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1333)


In this paper, an example of developing and proving of a distributed functional program is shown. The chosen example is the looking for non-trivial repetitions in Pascal's triangle. A sketch of a proof of the sequential implementation is carried out following [10]. The results of that proof are also applied to the distributed version, which is derived from the sequential one by transforming some common programming patterns. The distributed program has been implemented and tested using a distributed extension of the functional language Objective Caml described in [11]


Functional Programming Formal Proofs Distributed Computing 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    G. Agha. ACTORS: A Model of Concurrent Computation in Distributed Systems. The MIT Press, Cambridge, Massachusetts 02142, 1990.Google Scholar
  2. 2.
    W. Dijkstra, E. Dijkstra A Discipline of Programming. Prentice-Hall, Englewood Cliffs, NJ, 1976.Google Scholar
  3. 3.
    J.L. Freire, V.M. Gulias, and B.B. Fraguela. Extending Caml Light to perform distributed computations. In Joint Conference on Declarative Programming (GULP-PRODE'95), Salerno, Italy, September 1995.Google Scholar
  4. 4.
    D. Gries. The Science of Programming. Springer-Verlag, New York, 1981.Google Scholar
  5. 5.
    Victor M. Gulías, Juan J. Quintela, and Jose L. Freire. Distributed computing using objective caml. In 8th International Workshop on Implementation of Functional Languages IFL'96, Bonn, Germany, September 1996.Google Scholar
  6. 6.
    V.M. Gulías and A. Valderruten. Une interface graphique distribuée pour le λ-calcul supportée par des serveurs fonctionnels. In Journées Francophones des langages applicatifs (JFLA'95), pages 229–246, Bois d'Amont, France, January 1995. Published in INRIA Collection Didactique, 13.Google Scholar
  7. 7.
    R. H. Halstead. Multilisp: a language for concurrent symbolic computation. ACM Trans. Prog. Lang. and Sys., 7(4):501–538, October 1985.CrossRefGoogle Scholar
  8. 8.
    C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, NJ, 1985.Google Scholar
  9. 9.
    Jack Dongarra and others. A Users' Guide to PVM Parallel Virtual Machine. Oak Ridge National Laboratory, July 1991.Google Scholar
  10. 10.
    J. Santiago Jorge, Víctor M. Gulías, and Antonio Blanco. Búsqueda de repetidos en et triángulo de pascal: Prueba formal. Technical Report (to appear), Department of Computer Science, University of La Coruña, 1997.Google Scholar
  11. 11.
    Xavier Leroy. The Objective Caml system, documentation and user's guide Release 1.03. INRIA, 1996.Google Scholar
  12. 12.
    J. Mills, L. Clarke, and A. Trew. CHIMP Concepts and Development. Technical Report EPCC-TR94-14, The University of Edinburgh, March 1994.Google Scholar
  13. 13.
    J.M. Molinelli, J.L. Freire, and A. Blanco. Computer-looking for nontrivial repetitions in the pascal triangle. SIGSMALL/PC NOTES, 16(4):3–26, December 1990.Google Scholar
  14. 14.
    L. C. Paulson. ML for the working programmer. Cambridge Univ. Press, 1991.Google Scholar
  15. 15.
    Klaus E. Schauser and Seth C. Goldstein. How much non-strictness do lenient programs Require? In FPCA, San Diego, CA, June 1995.Google Scholar
  16. 16.
    R. Stevens. UNIX Network Programming. Prentice-Hall, Englewood Cliffs, New Jersey, USA, 1993.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Víctor M. Gulfas
    • 1
  • J. Santiago Jorge
    • 1
  • Juan J. Quintela
    • 1
  • José L. Freire
    • 1
  1. 1.LFCIA, Departament of Computer ScienceUniversity of La CoruñaSpain

Personalised recommendations