Advertisement

Modular completeness: Integrating the reuse of specified software in top-down program development

  • Job Zwiers
  • Ulrich Hannemann
  • Yassine Lakhneche
  • Willem -Paul de Roever
  • Frank Stomp
Session 9: Architecture and Reuse
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1051)

Abstract

Reuse of correctly specified software is crucial in bottomup program development. Compositional specification formalisms have been designed to reduce the specification of a syntactically composed construct to specifications of its components, and therefore support topdown development methodology. Thus, the integration of reuse of correctly specified software components in a compositional setting calls for adaptation of a given specification to specifications needed in particular circumstances (depending on their application). Proof systems in which such adaptation steps can be performed whenever they are valid are called modular complete [Z89]. We present a generic way of constructing such systems for sequential and concurrent Hoare logics.

Keywords

Proof System Logical Variable Sequential Composition Adaptation Rule Proof Rule 
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.

References

  1. [AL94]
    Abadi, M., and Lamport L.: Conjoining Specifications, DEC Systems Research Center, Research report (1994)Google Scholar
  2. [A81]
    Apt, K. R.: Ten Years of Hoare's Logic, A Survey, Part I, ACM Transactions on Programming Languages and Systems 3:4 (1981) 431–483Google Scholar
  3. [deB94]
    de Boer, F.: Compositionality in the Inductive Assertion Method for Concurrent Systems, IFIP TC 2 Working Conference on programming concepts, methods and calculi (1994)Google Scholar
  4. [CO81]
    Cartwright, R., and Oppen, D.: The logic of aliasing, Acta Informatica 15 (1981) 365–384Google Scholar
  5. [CH81]
    Chen, Z. C., and Hoare, C. A. R.: Partial correctness of CSP, Conf. on Distr. Comp. Sys. (1981)Google Scholar
  6. [D92]
    Dahl Ole-Johan: Verifiable Programming, Prentice Hall (1992)Google Scholar
  7. [D76]
    Dijkstra, E. W.: A discipline of programming, Prentice-Hall (1976)Google Scholar
  8. [G94]
    Gibbs, W. W.: Software's Chronic Crisis Scientific American 9 (1994)Google Scholar
  9. [GM93]
    Gordon, M. J. C., and Melham, T. F.: Introduction to HOL — A theorem proving environment for higher order logic, Cambridge University Press (1993)Google Scholar
  10. [G75]
    Gorelick, G. A.: A complete axiomatic system for proving assertions about recursive programs and non-recursive programs, TR 75, University of Toronto (1975)Google Scholar
  11. [H69]
    Hoare, C. A. R.: The axiomatic basis of programming, Communications of the ACM (1969)Google Scholar
  12. [H71]
    Hoare, C. A. R.: Procedures and parameters: An axiomatic approach, Lecture Notes in Mathematics (1971) 102–116Google Scholar
  13. [HHS87]
    Hoare, C. A. R., He Jifeng, and Sanders, J. W.: Prespecification in Data Refinement, Information Processing Letters 25 (1987)Google Scholar
  14. [He84]
    Hehner, E. C. R.: Predicative Programming, part I and II, Communications of the ACM 27 (1984)Google Scholar
  15. [Ha94]
    Hannemann, U.: Modular complete proof systems for distributed processes, M. Sc. thesis, University of Kiel (1994)Google Scholar
  16. [J81]
    Jones, Cliff B.: Development methods for computer programs including a notion of interference, Oxford (1981)Google Scholar
  17. [J86]
    Jones, Cliff B.: Systematic software development using VDM, Prentice-Hall (1986)Google Scholar
  18. [L83]
    Lamport, L.: Specifying concurrent program modules, ACM Transactions on Programming Languages and Systems 6(2) (1983)Google Scholar
  19. [L91]
    Lamport, L.: The Temporal Logic of Actions, DEC Systems Research Center (1991)Google Scholar
  20. [MP91]
    Manna, Z., and Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems, Springer Verlag (1991)Google Scholar
  21. [M88]
    Meyer, B.: Object-Oriented Software Construction, Prentice-Hall (1988)Google Scholar
  22. [MC81]
    Misra, J., and Chandy, K. M.: Proofs of networks of processes, IEEE Transactions on Software Engineering 7:4 (1981)Google Scholar
  23. [M94]
    Moszkowski, B.: Some very compositional temporal properties, IFIP TC 2 Working Conference on programming concepts, methods and calculi (1994)Google Scholar
  24. [O83]
    Olderog, E. R.: On the Notion of Expressiveness and the Rule of Adaptation, Theoretical Computer Science 24 (1983) 337–347Google Scholar
  25. [P88]
    Pandya, P.: Compositional Verification of Distributed Programs, Ph. D. thesis, Tata Institute of Fundamental Research, Bombay (1988)Google Scholar
  26. [PJ91]
    P. Pandya, and M. Joseph: P-A logic — a compositional proof system for distributed programs Distributed Computing 5 (1991)Google Scholar
  27. [R90]
    Ramesh, S.: On the Completeness of Modular Proof Systems, Information Processing Letters 36 (1990) 195–201Google Scholar
  28. [S92]
    Spivey, Mike: The Z notation: A reference manual, Prentice-Hall (1992)Google Scholar
  29. [Q92]
    Xu Qiwen: A theory of state-based parallel programming, Oxford (1992)Google Scholar
  30. [Z89]
    Zwiers, J.: Compositionality, Concurrency and Partial Correctness, Lecture Notes in Computer Science 321 (1989)Google Scholar
  31. [ZBR83]
    Zwiers, J., de Bruin, A., and de Roever, W.-P.: A proof system for partial correctness of Dynamic Networks of Processes, Lecture Notes in Computer Science 164 (1984)Google Scholar
  32. [ZRE84]
    Zwiers, J., de Roever W.-P., and van Emde Boas, P.: Compositionality and concurrent networks: soundness and completeness of a proof system. TR 57, Nijmegen (1984)Google Scholar
  33. [ZRE85]
    Zwiers, J., de Roever, W.-P., and van Emde Boas, P.: Compositionality and concurrent networks: soundness and completeness of a proof system, Lecture Notes in Computer Science 194 (1985)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Job Zwiers
    • 1
  • Ulrich Hannemann
    • 2
  • Yassine Lakhneche
    • 2
  • Willem -Paul de Roever
    • 2
  • Frank Stomp
    • 3
  1. 1.Twente UniversityAE EnschedeThe Netherlands
  2. 2.Institut für Informatik und praktische MathematikChristian-Albrechts-Universität zu KielKielGermany
  3. 3.AT&T Bell LaboratoriesMurray HillUSA

Personalised recommendations