A Note on Synthesis of Inductive Assertions
- 1 January 1980
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. SE-6 (1) , 32-39
- https://doi.org/10.1109/tse.1980.230460
Abstract
One of the principal impediments to widespread use of automated program verification methodology is due to the user burden of creating appropriate inductive assertions. In this paper, we investigate a class of programs for which such inductive assertions can be mechanically generated from Input-output specifications. This class of programs, called accumulating programs, are iterative realizations of problems in which the required output information is accumulated during successive passes over the input data structures. Obtaining invariant assertions for such programs is shown to be equivalent to the problem of generalizations of specifications to that over an extended closed data domain. For this purpose, a set of basis data elements are to be conceived of as generating the extended domain. An arbitary data element would thus be considered as uniquely decomposable into a sequence of basis elements. The structural relations between the components of a data element are used to extend program behavior and thus obtain the desired invariant.Keywords
This publication has 13 references indexed in Scilit:
- A New Incompleteness Result for Hoare's SystemJournal of the ACM, 1978
- Complexity of Synthesizing Inductive AssertionsJournal of the ACM, 1977
- Subgoal inductionCommunications of the ACM, 1977
- The automatic synthesis of recursive programsPublished by Association for Computing Machinery (ACM) ,1977
- A Transformation System for Developing Recursive ProgramsJournal of the ACM, 1977
- Symbolic execution and program testingCommunications of the ACM, 1976
- Strong verification of programsIEEE Transactions on Software Engineering, 1975
- A synthesizer of inductive assertionsIEEE Transactions on Software Engineering, 1975
- The synthesis of loop predicatesCommunications of the ACM, 1974
- An axiomatic basis for computer programmingCommunications of the ACM, 1969