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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.REFERENCES
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.
Hoare, C.A.R., An Axiomatic Basis of Computer Programming, Comm. ACM, 1969, vol. 12, no. 10, pp. 576-580.
Mills, H.D., Structured Programming: Retrospect and Prospect, IEEE Software, 1986, vol. 3, no. 6, pp. 58-67.
Stark, J. and Ireland, A. Invariant Discovery via Failed Proof Attempts, Proc. LOPSTR'98, Lect. Notes Comput. Sci., 1999, vol. 1559, pp. 271-288.
Basu, S.K. and Misra, J. Some Classes of Naturally Provable Programs, Proc. 2nd Int. Conf. Software Engineering, IEEE Press, 1976, pp. 400-406.
Gries, D. and Gehani, N., Some Ideas on Data Types in High-Level Languages, Comm. ACM, 1977, vol. 20, no. 6, pp. 414-420.
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.
Hoare, C.A.R., A Note on the For Statement, BIT, 1972, vol. 12, no. 3, pp. 334-341.
Stavely, A.M., Verifying Definite Iteration over Data Structures, IEEE Trans. Software Eng., 1995, vol. 21, no. 6, pp. 506-514.
Nepomniaschy, V.A., Elimination of Loop Invariants in Program Verification, Programmirovanie, 1985, no. 3, pp. 3-13.
Nepomniaschy, V.A., On Problem-Oriented Verification of Programs, Programmirovanie, 1986, no. 1, pp. 3-12.
Nepomniaschy, V.A., Verification of Finite Iterations over Data Structures, Kibernetika i Sistemnyi Analiz, 1999, no. 3, pp. 25-37.
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.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1023/A:1013775931594