Skip to main content
Log in

Hierarchical program specification and verification — a many-sorted logical approach

  • Published:
Acta Informatica Aims and scope Submit manuscript

Summary

The notion of abstractions in programming is characterized by the distinction between specification and implementation. As far as the specification structures are concerned, hierarchical program development with abstraction mechanisms is naturally regarded as a process of theory extensions in a many-sorted logic. To support such program development, a language called t is proposed with which one can structuredly build up theories and write their program implementation. There, the implementation is regarded as another level of theory extension, and the relation between the specification and the implementation of an abstraction is characterized in terms of a homomorphism between the two theories. On this formalism, a mechanizable proof method is introduced for validation of implementations of both data and procedural abstraction. Finally, a new data type concept is introduced to generalize the so-called type-parametrization mechanism. A justification of this concept within the first order logic is provided as well as its applications to program structuring and verification.

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. Ashcroft, E.A., Clint, M., Hoare, C.A.R.: Remarks on ‘Program proving: jumps and functions’ by M. Clint and C.A.R. Hoare. Acta Informat. 6, 317–318 (1976)

    Google Scholar 

  2. Burstall, R., Goguen, J.: Putting theories together to make specifications. Int. Joint Conf. Artificial Intelligence, Boston 1977

    Google Scholar 

  3. Clint, M., Hoare, C.A.R.: Program proving: jumps and functions, Acta Informat. 1, 214–224 (1972)

    Google Scholar 

  4. Constable, R.L.: A constructive programming logic. Proc. of IFIP Congress 77. pp. 733–738, 1977

    Google Scholar 

  5. Goguen, J.A.: Abstract errors for abstract data types. Formal Description of Programming Concepts. (Neuhold, ed.) Amsterdam: North-Holland 1977

    Google Scholar 

  6. Goguen, J.A., Thatcher, J.W., Wagner, E.G.: An initial algebra approach to the specification, correctness, and implementation of abstract data types. Current trends in programming methodology. Vol.4 (R.T. Yeh., ed.) New York: Prentice Hall 1978

    Google Scholar 

  7. Guttag, J.: The specification and application to programming of abstract data types. Ph.D. Thesis, Univ. of Toronto 1975

  8. Guttag, J.V., Horowitz, E., Musser, D.R.: Abstract data types and software validation. CACM 21, 1048–1064 (1978)

    Google Scholar 

  9. Hoare, C.A.R.: Proof of correctness of data representations. Acta Informat. 1, 271–281 (1972)

    Google Scholar 

  10. Honda, M., Nakajima, R.: Interactive theorem proving on hierarchically and modularly structured sets of very many axioms. Int. Joint Conf. Artificial Intelligence, Tokyo 1979

  11. Igarashi. S., London, R.L., Luckham, D.C.: Automatic program verification 1: a logical basis and its implemantation. Acta Informat. 4, 145–182 (1975)

    Google Scholar 

  12. Liskov, B., Zilles, S.: Specification techniques for data abstraction. IEEE. Trans, on Software Engrg. 1, 7–19 (1975)

    Google Scholar 

  13. Liskov, B., Berzin, V.: An appraisal of program specification. Computation Structure Group Memo. 131, MIT 1977

  14. Liskov, B. et al.: Abstraction mechanisms in CLU. Comm. ACM 8, 567–576 (1977)

    Google Scholar 

  15. Nakahara, H.: A logical basis for data abstraction. Master thesis, Kyoto University 1977 (in Japanese)

  16. Nakajima, R., Honda, M., Nakahara, H.: Describing and verifying programs with abstract data types. Formal Description of Programming Concepts. (Neuhold, ed.) Amsterdam: North-Holland 1977

    Google Scholar 

  17. Nakajima, R., Yuasa, T., Kojima, K.: The l programming system — a support system for hierarchical and modular programming —. Proc. IFIP Congress 1980 (to appear)

  18. Shoenfield, J.: Mathematical logic. New York: Addison Wesley 1969

    Google Scholar 

  19. Sokolowski, S.: Axioms for total correctness. Acta Informat. 9, 61–71 (1977)

    Google Scholar 

  20. Wulf, W., London, R., Shaw, M.: An introduction to the construction and verification of Alphard programs. IEEE Trans. Software Engrg. 2, 253–264 (1976)

    Google Scholar 

  21. Yuasa, T.: Separate complication for type-parameterized modules. RIMS-preprint, Research Institute for Mathematical Sciences, Kyoto University. 1979

  22. Yuasa, T.: Supports for hierarchical program development. Master Thesis, Kyoto University, 1979

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Nakajima, R., Honda, M. & Nakahara, H. Hierarchical program specification and verification — a many-sorted logical approach. Acta Informatica 14, 135–155 (1980). https://doi.org/10.1007/BF00288541

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Keywords

Navigation