The role of proof obligations in software design

  • Cliff B. Jones
Advanced Seminar On The Role Of Semantics In Software Development The Role Of Semantics In The Development Of Software Systems
Part of the Lecture Notes in Computer Science book series (LNCS, volume 186)


This paper presents certain "proof obligations" which can be used to establish the correctness of software design. The design of both sequential and parallel programs is considered. The position is taken that an understanding of formal results of this kind can aid practical software development.


Software Development Development Method Temporal Logic Design Decision Parallel Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [Aczel 82]
    A Note on Program Verification, P.Aczel, manuscript, January 1982.Google Scholar
  2. [Aczel 83]
    On an Inference Rule for Parallel Composition, P.Aczel, manuscript, February 1983.Google Scholar
  3. [Barringer 84]
    Now You May Compose Temporal Logic Specifications, H.Barringer, R.Kuiper and A. Pnueli, Procs. of 16th ACM Symposium on Theory of Computing, May 1984.Google Scholar
  4. [Barringer 84a]
    A Logic Covering Undefinedness in Program Proofs, H. Barringer, J.H. Cheng and C.B. Jones, ACTA Informatica, Vol 21 Part 3, pp251–269, 1984.Google Scholar
  5. [Barringer 84b]
    A Survey of Verification Techniques for Parallel Programs, H.Barringer, to be published, LNCS, Springer-Verlag.Google Scholar
  6. [Barringer 85]
    A Compositional Temporal Approach to a CSP-Like Language, H.Barringer, R.Kuiper and A.Pnueli, IFIP Working Conference on "The Role of Abstract Model in Information Processing", Vienna, January 30th — February 1st, 1985.Google Scholar
  7. [Bjorner 82]
    Formal Specification and Software Development, D.Bjorner and C.B.Jones, Prentice-Hall International, 1982.Google Scholar
  8. [Fielding 80]
    The Specification of Abstract Mappings and their Implementation as B +-Trees, E. Fielding, Oxford University, Monograph PRG-18, 1980.Google Scholar
  9. [Francez 78]
    A Proof Method for Cyclic Programs, N. Francez and A. Pnueli, ACTA Inf. Vol 9 No 2, pp133–157, April 1978.Google Scholar
  10. [Hoare 69]
    An Axiomatic Basis of Computer Programming, C.A.R.Hoare, CACM Google Scholar
  11. [Hoare 75]
    Parallel Programming: An Axiomatic Approach, C.A.R.Hoare, In Computer Langs, Permagon Press, Vol 1, pp 151–160.Google Scholar
  12. [Jones 80]
    Software Development: A Rigorous Approach, C.B. Jones, Prentice-Hall International, 400 pages, 1980.Google Scholar
  13. [Jones 81]
    Development Methods for Computer Program Including a Notion of Interference, C.B.Jones, Oxford University, Monograph PRG 25, June 1981.Google Scholar
  14. [Jones 83a]
    Specification and Design of (Parallel) Programs, C.B.Jones, (invited paper), IFIP 1983, Paris, North-Holland, pp 321–332, September 1983.Google Scholar
  15. [Jones 83b]
    Systematic Program Development, C.B.Jones, Symposium ‘Wiskunde en Informatica', Amsterdam, to be published in the Mathematical Centre Tracts.Google Scholar
  16. [Jones 83c]
    Tentative Steps Toward a Development Method for Interfering Programs, C.B. Jones ACM Trans. Program. Lang. Syst., Vol 5 No4, pp 596–619, October 1983.Google Scholar
  17. [Lamport 80]
    The "Hoare Logic" of Concurrent Programs, L. Lamport, Acta Inf., vol 14 no 1, pp21–37, June 1980.Google Scholar
  18. [Lamport 83]
    What Good Is Temporal Logic?, L. Lamport, North-Holland, Proc. of the IFIP 9th World Computer Congress, Paris, pages 657–668, 1983.Google Scholar
  19. [Marshall 85]
    A Formal Specification of Line Representations on Graphics Devices, L.S.Marshall, TAPSOFT Joint Conference on Theory and Practice of Software Development, Berlin, March 1985.Google Scholar
  20. [Madhavji 85]
    Software Construction Using Typed Fragments, N.H.Madhavji, N.Leoutsarakos, D Vouliouris, TAPSOFT Joint Conference on Theory and Practice of Software Development, Berlin, March 1985.Google Scholar
  21. [Naur 85]
    Intuition in Software Development, P. Naur, TAPSOFT Joint Conference on Theory and Practice of Software Development, Berlin, March 1985.Google Scholar
  22. [Owicki 76]
    Verifying Properties of Parallel Programs: An Axiomatic Approach, S.S.Owicki and D.Gries, Comm. ACM, Vol 19 No 5, pp 279–285.Google Scholar
  23. [de Roever 85]
    The Quest for Compositionality — a Survey of Assertion-based Proof Systems for Concurrent Programs, Roever, IFIP Working Conference on "The Role of Abstract Models in Information Processing", Vienna, January 30th — February 1st., 1985.Google Scholar
  24. [Sa 84]
    Temporal Logic Specifications of Communication Protocals, J.Sa, Manchester University, 1984.Google Scholar
  25. [Snelting 85]
    Experiences with the PSG-Programming System Generator, G.Snelting, TAPSOFT Joint Conference on Theory and Practice of Software Development, Berlin, March 1985.Google Scholar
  26. [Welsh 82]
    The Specification, Design and Implementation of NDB, A. Welsh, M.Sc. Thesis, Manchester University, October 1982.Google Scholar
  27. [Welsh 84]
    A Database Programming Language: Definition, Implementation and Correctness Proofs, A. Welsh, Ph.D. thesis, Manchester University, October 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • Cliff B. Jones
    • 1
  1. 1.Department of Computer ScienceUniversity of ManchesterManchesterEngland

Personalised recommendations