Skip to main content
Log in

Verification of Finite Iterations over Tuples of Data Structures

  • Published:
Programming and Computer Software Aims and scope Submit manuscript

Abstract

In order to eliminate loop invariants in the process of program verification, a new language construct called finite iteration over tuples of data structures is introduced. Simulation of such iterations by means of iterations over hierarchical data structures is described. This enables one to apply the symbolic verification method, which was developed earlier, to such iterations. The simulation also applies to the case of iterations over tuples of data structures that include a loop exit statement. A technique for deriving and proving correctness conditions based on the induction principles is described. For finite iterations over files, a problem-oriented technique for proving correctness conditions is proposed. By way of example, the verification of two programs designed for file processing is described.

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.

Institutional subscriptions

Similar content being viewed by others

REFERENCES

  1. Linger, R., Mills, H., and Witt, B., Structured Programming, Reading: Addison-Wesley, 1979. Translated under the title Teoriya i praktika strukturnogo programmirovaniya, Moscow: Mir, 1982.

    Google Scholar 

  2. Hoare, C.A.R., An Axiomatic Basis of Computer Programming, Comm. ACM, 1969, vol. 12, no. 10, pp. 576-580.

    Google Scholar 

  3. Mills, H.D., Structured Programming: Retrospect and Prospect, IEEE Software, 1986, vol. 3, no. 6, pp. 58-67.

    Google Scholar 

  4. Stark, J. and Ireland, A. Invariant Discovery via Failed Proof Attempts, Proc. LOPSTR'98, Lect. Notes Comput. Sci., 1999, vol. 1559, pp. 271-288.

    Google Scholar 

  5. Basu, S.K. and Misra, J. Some Classes of Naturally Provable Programs, Proc. 2nd Int. Conf. Software Engineering, IEEE Press, 1976, pp. 400-406.

  6. Gries, D. and Gehani, N., Some Ideas on Data Types in High-Level Languages, Comm. ACM, 1977, vol. 20, no. 6, pp. 414-420.

    Google Scholar 

  7. Hehner, E.C.R. and Gravel, A.M., Refinement Semantics and Loop Rules, Proc. FM'99, Lect. Notes Comput. Sci., 1999, vol. 1709, pp. 1497-1510.

    Google Scholar 

  8. Hoare, C.A.R., A Note on the For Statement, BIT, 1972, vol. 12, no. 3, pp. 334-341.

    Google Scholar 

  9. Stavely, A.M., Verifying Definite Iteration over Data Structures, IEEE Trans. Software Eng., 1995, vol. 21, no. 6, pp. 506-514.

    Google Scholar 

  10. Nepomniaschy, V.A., Elimination of Loop Invariants in Program Verification, Programmirovanie, 1985, no. 3, pp. 3-13.

    Google Scholar 

  11. Nepomniaschy, V.A., On Problem-Oriented Verification of Programs, Programmirovanie, 1986, no. 1, pp. 3-12.

    Google Scholar 

  12. Nepomniaschy, V.A., Verification of Finite Iterations over Data Structures, Kibernetika i Sistemnyi Analiz, 1999, no. 3, pp. 25-37.

    Google Scholar 

  13. Nepomniaschy, V.A., Verification of Definite Iteration over Hierarchical Data Structures, Proc. FASE/ETAPS'99, Lect. Notes Comput. Sci., 1999, vol. 1577, pp. 176-187.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Nepomniaschy, V.A. Verification of Finite Iterations over Tuples of Data Structures. Programming and Computer Software 28, 1–8 (2002). https://doi.org/10.1023/A:1013775931594

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1013775931594

Keywords

Navigation