The static derivation of concurrency and its mechanized certification

  • Christian Lengauer
  • Chua-Huang Huang
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 197)


This is an attempt to combine the two research areas of programming methodology and automated theorem proving. We investigate the potential for automation of a programming methodology that supports the compile-time derivation of concurrency in imperative programs. In this methodology, concurrency is identified by the declaration of certain semantic properties (so-called "semantic relations") of appropriate program parts. Semantic declarations can be exploited to transform the sequential execution of the program into a parallel execution. We make observations about the automation of correctness proofs of such transformations for a limited domain of programs: sorting networks.


Semantic Relation Automate Theorem Prove Comparator Module Segment Tree Sorting Network 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ackerman, W. B. "Data Flow Languages." Computer 15, 2 (Feb. 1982), 15–25.Google Scholar
  2. 2.
    Bates, J. L., and Constable, R. L. Proofs as Programs. Tech. Rept. TR 82-530, Cornell University, 1982.Google Scholar
  3. 3.
    Boyer, R. S., and Moore, J S. A Computational Logic. Academic Press, 1979.Google Scholar
  4. 4.
    Boyer, R. S., and Moore, J S. A Theorem Prover for Recursive Functions, a User's Manual. Computer Science Laboratory, SRI International, 1979.Google Scholar
  5. 5.
    Dijkstra, E. W. A Discipline of Programming. Series in Automatic Computation, Prentice-Hall, 1976.Google Scholar
  6. 6.
    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.Google Scholar
  7. 7.
    Knuth, D. E. The Art of Computer Programming, Vol. 3: Sorting and Searching. Addison-Wesley, 1973. Sect. 5.3.4.Google Scholar
  8. 8.
    Kuck, D. J. "A Survey of Parallel Machine Organization and Programming." Computing Surveys 9, 1 (Mar. 1977), 29–59.Google Scholar
  9. 9.
    Lengauer, C., and Hehner, E. C. R. "A Methodology for Programming with Concurrency: An Informal Presentation." Science of Computer Programming 2, 1 (Oct. 1982), 1–18.Google Scholar
  10. 10.
    Lengauer, C. "A Methodology for Programming with Concurrency: The Formalism." Science of Computer Programming 2, 1 (Oct. 1982), 19–52.Google Scholar
  11. 11.
    Lengauer, C. A Methodology for Programming with Concurrency. Tech. Rept. CSRG-142, Computer Systems Research Group, University of Toronto, Apr., 1982.Google Scholar
  12. 12.
    Lengauer, C. "On the Role of Automated Theorem Proving in the Compile-Time Derivation of Concurrency." Journal of Automated Reasoning 1 (1985). To appear. Earlier version: On the Mechanical Transformation of Program Executions to Derive Concurrency. Tech. Rept. TR-83-20, Department of Computer Sciences, The University of Texas at Austin, Oct., 1983.Google Scholar
  13. 13.
    Manna, Z., and Waldinger, R. "A Deductive Approach to Program Synthesis." ACM TOPLAS 2, 1 (Jan. 1980), 90–121.Google Scholar

Copyright information

© Springer-Verlag 1985

Authors and Affiliations

  • Christian Lengauer
    • 1
  • Chua-Huang Huang
    • 1
  1. 1.Department of Computer SciencesThe University of Texas at AustinAustin

Personalised recommendations