Skip to main content
Log in

On the role of automated theorem proving in the compile-time derivation of concurrency

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

A recent trend in program development is to derive correct implementations from program specifications by the application of a formal calculus, a ‘programming methodology’. The application of formal rules lends itself to automation. We investigate the automation of one part of a methodology for programming with concurrency. In this methodology, concurrency is derived by transforming the sequential execution of a program into an equivalent concurrent execution on the basis of formal transformation rules. Such rules can be interpreted as theorems of semantic equivalences. The mechanical certification of these theorems would significantly enhance the reliability of the methodology. The following is an initial exploration of this problem applied to a certain class of programs: sorting networks. We present an implementation of a part of the underlying semantic theory in Boyer and Moore's mechanized logic, and report on the mechanical proof of a transformation that derives concurrency for an insertion sort.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Ackerman, W. B., ‘Data-flow languages’, Computer 15, 15–25 (1982).

    Google Scholar 

  2. Bates, J. L. and Constable, R. L., ‘Proofs as programs’, Tech. Rept. TR 82-530, Cornell University (1982).

  3. Boyer, R. S. and Moore, J S., A Computational Logic, Academic Press, New York (1979).

    Google Scholar 

  4. Boyer, R. S. and Moore, J S., ‘A theorem prover for recursive functions, a user's manual’, Computer Science Laboratory, SRI International (1979).

  5. Chang, C. and Lee, R. C., Symbolic Logic and Mechanical Theorem Proving, Series in Computer Science and Applied Mathematics, Academic Press, New York (1973).

    Google Scholar 

  6. Dahl, O.-J., Dijkstra, E. W., and Hoare, C. A. R., Structured Programming, A.P.I.C. Studies in Data Processing, Vol. 8, Academic Press, New York (1972).

    Google Scholar 

  7. Dijkstra, E. W., A Discipline of Programming, Series in Automatic Computation, Prentice-Hall, Englewood Cliffs (1976).

    Google Scholar 

  8. Floyd, R. W., ‘Assigning meanings to programs’, Proc. Amer. Math. Soc. Symposia in Applied Mathematics, Vol. 19, pp. 19–32 (1967).

  9. Good, D. I., ‘The proof of a distributed system in Gypsy’, Tech. Rept. #30, Institute for Computing Science, The University of Texas at Austin (1982).

  10. Gries, D., The Science of Programming, Texts and Monographs in Computer Science, Springer-Verlag, New York (1981).

    Google Scholar 

  11. Hehner, E. C. R., ‘do considered od: A contribution to the programming calculus’, Acta Informatica 11, 287–304 (1979).

    Google Scholar 

  12. Hoare, C. A. R., ‘An axiomatic basis for computer programming’, Comm. ACM 17, 576–580, 583 (1969).

    Google Scholar 

  13. Huang, C.-H. and Lengauer, C., ‘The automated proof of a trace transformation for a bitonic sort’, Tech. Rept. TR-84-30, Department of Computer Sciences, The University of Texas at Austin (1984).

  14. Johnson, S. and Nagle, J., ‘Automatic program proving for real-time embedded software’, Proc. 10th Ann. ACM Symp. on Principles of Programming Languages, Association for Computing Machinery, pp. 48–58 (1983).

  15. Knuth, D. E. and Bendix, P., ‘Simple word problems in universal algebras, in Computational Problems in Abstract Algebra, (ed. J. Leech), Pergamon Press, London (1970).

    Google Scholar 

  16. Knuth, D. E., The Art of Computer Programming, Vol. 3: Sorting and Searching, Addison-Wesley, Reading, Mass., Sect. 5.3.4 (1973).

    Google Scholar 

  17. Kuck, D. J., ‘A survey of parallel machine organization and programming’, Computing Surveys 9, 29–59 (1977).

    Google Scholar 

  18. Lamport, L., ‘The “Hoare logic” of concurrent programs’, Acta Informatica 14, 21–37 (1980).

    Google Scholar 

  19. Lengauer, C. and Hehner, E. C. R., ‘A methodology for programming with concurrency: an informal presentation’, Science of Computer Programming 2, 1–18 (1982).

    Google Scholar 

  20. Lengauer, C., ‘A methodology for programming with concurrency: the formalism’, Science of Computer Programming 2, 19–52 (1982).

    Google Scholar 

  21. Lengauer, C., ‘A methodology for programming with concurrency’, Tech. Rept. CSRG-142, Computer Systems Research Group, University of Toronto (1982).

  22. Lengauer, C. and Huang, C.-H., ‘The static derivation of concurrency and its mechanized certification’, Proc. NSF-SERC Seminar on Concurrency, Lecture Notes in Computer Science, Springer-Verlag, New York (1984). To appear.

    Google Scholar 

  23. Manna, Z. and Pnueli, A., ‘Temporal verification of concurrent programs: the temporal framework for concurrent programs’, in The Correctness Problem in Computer Science, (eds. R. S. Boyer and J S. Moore), International Lecture Series in Computer Science, Academic Press, New York (1981), pp. 215–273.

    Google Scholar 

  24. Manna, Z. and Waldinger, R., ‘A deductive approach to program synthesis’, ACM TOPLAS 2, 90–121 (1980).

    Google Scholar 

  25. Owicki, S. S. and Gries, D., ‘An axiomatic proof technique for parallel programs’, Acta Informatica 6, 319–340 (1976).

    Google Scholar 

  26. Russinoff, D. M., An experiment with the Boyer-Moore program verification system: a proof of Wilson's theorem’, Tech. Rept. #38, Institute for Computing Science, The University of Texas at Austin (1983).

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lengauer, C. On the role of automated theorem proving in the compile-time derivation of concurrency. J Autom Reasoning 1, 75–101 (1985). https://doi.org/10.1007/BF00244290

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00244290

Key words

Navigation