Proof of correctness of data representations


A powerful method of simplifying the proofs of program correctness is suggested; and some new light is shed on the problem of functions with side-effects.

This is a preview of subscription content, log in to check access.


  1. 1.

    Wirth, N.: The development of programs by stepwise refinement. Comm. ACM. 14, 221–227 (1971).

    Google Scholar 

  2. 2.

    Dijkstra, E. W.: Notes on structured programming. In Structured Programming. Academic Press (1972).

  3. 3.

    Hoare, C. A. R.: Notes on data structuring. Ibid.

  4. 4.

    Dahl, O.-J.: Hierachical program structures. Ibid.

  5. 5.

    Milner, R.: An algebraic definition of simulation between programs. CS 205 Stanford University, February 1971.

  6. 6.

    Dijkstra, E. W.: A constructive approach to the problem of program correctness. BIT. 8, 174–186 (1968).

    Google Scholar 

  7. 7.

    Dahl, O.-J., Myhrhaug, B., Nygaard, K.: The Simula 67 common base language. Norwegian Computing Center, Oslo, Publication No. S-22, 1970.

    Google Scholar 

  8. 8.

    Hoare, C. A. R.: An axiomatic approach to computer programming. Comm. ACM. 12, 576–580, 583 (1969).

    Google Scholar 

Download references

Author information



Additional information

I am deeply indebted to Doug Ross and to all authors of referenced works. Indeed, the material of this paper represents little more than my belated understanding and formalisation of their original work.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

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

Download citation


  • Information System
  • Operating System
  • Data Structure
  • Communication Network
  • Information Theory