Specification Structures and propositions-as-types for concurrency

  • Samson Abramsky
  • Simon Gay
  • Rajagopal Nagarajan
Chapter
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1043)

Abstract

Many different notions of “property of interest” and methods of verifying such properties arise naturally in programming. A general framework of “Specification Structures” is presented for combining different notions and methods in a coherent fashion. This is then applied to concurrency in the setting of Interaction Categories. As an example, we present a type system for concurrent processes strong enough to guarantee deadlock-freedom, and expressive enough to allow the treatment of some standard examples from the literature. This is illustrated using the classic Dining Philosophers problem.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    S. Abramsky, S. J. Gay, and R. Nagarajan. Interaction categories and foundations of typed concurrent programming. In M. Broy, editor, Deductive Program Design: Proceedings of the 1994 Marktoberdorf International Summer School, NATO ASI Series F: Computer and Systems Sciences. Springer-Verlag, 1995. Also available as theory/papers/Abramsky/marktoberdorf.ps.gz via anonymous ftp to theory.doc.ic.ac.uk.Google Scholar
  2. 2.
    S. Abramsky. Domain theory in logical form. Annals of Pure and Applied Logic, 51:1–77, 1991.CrossRefGoogle Scholar
  3. 3.
    S. Abramsky. Interaction Categories (Extended Abstract). In G. L. Burn, S. J. Gay, and M. D. Ryan, editors, Theory and Formal Methods 1993: Proceedings of the First Imperial College Department of Computing Workshop on Theory and Formal Methods, pages 57–70. Springer-Verlag Workshops in Computer Science, 1993.Google Scholar
  4. 4.
    S. Abramsky. Interaction Categories and communicating sequential processes. In A. W. Roscoe, editor, A Classical Mind: Essays in Honour of C. A. R. Hoare, pages 1–15. Prentice Hall International, 1994.Google Scholar
  5. 5.
    S. Abramsky. Proofs as processes. Theoretical Computer Science, 135:5–9, 1994.CrossRefGoogle Scholar
  6. 6.
    S. Abramsky. Interaction Categories I: Synchronous processes. Paper in preparation, 1995.Google Scholar
  7. 7.
    S. Abramsky and R. Jagadeesan. Games and full completeness for multiplicative linear logic. Journal of Symbolic Logic, 59(2):543–574, June 1994.Google Scholar
  8. 8.
    S. Abramsky and R. Jagadeesan. New foundations for the geometry of interaction. Information and Computation, 111(1):53–119, 1994.CrossRefGoogle Scholar
  9. 9.
    S. Abramsky, R. Jagadeesan, and P. Malacaria. Full abstraction for PCF (extended abstract). In M. Hagiya and J. C. Mitchell, editors, Theoretical Aspects of Computer Software. International Symposium TACS'94, number 789 in Lecture Notes in Computer Science, pages 1–15, Sendai, Japan, April 1994. Springer-Verlag.Google Scholar
  10. 10.
    A. Asperti and G. Longo. Categories, Types and Structures: An introduction to category theory for the working computer scientist. Foundations of Computing Series. MIT Press, 1991.Google Scholar
  11. 11.
    M. Barr. *-autonomous categories and linear logic. Mathematical Structures in Computer Science, 1(2):159–178, July 1991.Google Scholar
  12. 12.
    G. Berry and P.-L. Curien. Theory and practice of sequential algorithms: the kernel of the applicative language CDS. In J. C. Reynolds and M. Nivat, editors, Algebraic Semantics, pages 35–84. Cambridge University Press, 1985.Google Scholar
  13. 13.
    R. Blute. Linear logic, coherence and dinaturality. Theoretical Computer Science, 115(1):3–41, 1993.CrossRefGoogle Scholar
  14. 14.
    P. M. Cohn. Universal Algebra, volume 6. D. Reidel, 1981.Google Scholar
  15. 15.
    R. L. Croie. Categories for Types. Cambridge University Press, 1994.Google Scholar
  16. 16.
    J. W. de Bakker. Mathematical Theory of Program Correctness. Prentice Hall International, 1980.Google Scholar
  17. 17.
    W. P. de Roever. The quest for compositionality—a survey of assertion based proof systems for concurrent programs, Part I: Concurrency based on shared variables. In Proceedings of the IFIP Working Conference, 1985.Google Scholar
  18. 18.
    S. J. Gay. Linear Types for Communicating Processes. PhD thesis, University of London, 1995. Available as theory/papers/Gay/thesis.ps.gz via anonymous ftp to theory.doc.ic.ac.uk.Google Scholar
  19. 19.
    G. Gentzen. Investigations into logical deduction. In M. E. Szabo, editor, The Collected Papers of Gerhard Gentzen. North-Holland, 1969.Google Scholar
  20. 20.
    J.-Y. Girard. Linear Logic. Theoretical Computer Science, 50(1):1–102, 1987.CrossRefGoogle Scholar
  21. 21.
    J.-Y. Girard, Y. Lafont, and P. Taylor. Proofs and Types, volume 7 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1989.Google Scholar
  22. 22.
    C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.Google Scholar
  23. 23.
    N. D. Jones and F. Nielson. Abstract interpretation. In S. Abramsky, D. Gabbay, and T. Maibaum, editors, Handbook of Logic in Computer Science, volume 4. Oxford University Press, 1995. To appear.Google Scholar
  24. 24.
    G. M. Kelly and M. L. Laplaza. Coherence for compact closed categories. Journal of Pure and Applied Algebra, 19:193–213, 1980.CrossRefGoogle Scholar
  25. 25.
    D. C. Kozen and J. Tiuryn. Logics of programs. In van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B, pages 789–840. North Holland, 1990.Google Scholar
  26. 26.
    S. MacLane. Categories for the Working Mathematician. Springer-Verlag, Berlin, 1971.Google Scholar
  27. 27.
    Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer-Verlag, 1992.Google Scholar
  28. 28.
    J. McKinna and R. Burstall. Deliverables: A categorical approach to program development in type theory. In Proceedings of Mathematical Foundation of Computer Science, 1993.Google Scholar
  29. 29.
    R. Milner. Calculi for synchrony and asynchrony. Theoretical Computer Science, 25:267–310, 1983.CrossRefGoogle Scholar
  30. 30.
    R. Milner. Communication and Concurrency. Prentice Hall, 1989.Google Scholar
  31. 31.
    R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT Press, 1990.Google Scholar
  32. 32.
    P. W. O'Hearn and R. D. Tennent. Relational parametricity and local variables. In Proceedings, 20th ACM Symposium on Principles of Programming Languages. ACM Press, 1993.Google Scholar
  33. 33.
    A. M. Pitts. Relational properties of recursively defined domains. In 8th Annual Symposium on Logic in Computer Science, pages 86–97. IEEE Computer Society Press, Washington, 1993.Google Scholar
  34. 34.
    R. Soare. Recursively Enumerable Sets and Degrees. Perspectives in Mathematical Logic. Springer-Verlag, Berlin, 1987.Google Scholar
  35. 35.
    J. B. Wells. Typability and type checking in the second-order λ-calculus are equivalent and undecidable. In Proceedings, Ninth Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Press, 1994.Google Scholar

Copyright information

© Springer-Verlag 1996

Authors and Affiliations

  • Samson Abramsky
    • 1
  • Simon Gay
    • 1
  • Rajagopal Nagarajan
    • 1
  1. 1.Department of ComputingImperial College of Science, Technology and MedicineLondonUK

Personalised recommendations