As an adlunct to mechamcal program verification, it is desirable to partmlly mechamze mductwe assertion synthesis. It is generally beheved that mechanical synthesis must be confined to simple assertions or simple extensions to programmer supphed assertions since the general problem of synthesis reqmres deep insight into the program's operation This paper confirms and quantifies this behef A class {R} of programs Is described for which the inductive assertions can be produced directly Then, by extending this class, a new class is obtained for which assertion synthesis reqmres at least nondetermlnlSUC polynomial t~me In fact a specific subset is shown to be NP-complete This yields two results, First, since nondetermimstlc polynomial ume ~s strongly conlectured to require determlmstlc exponenual time, it appears that the general problem of asserUon synthesis Is at least exponentml. Second, the extension from the class {R} is thus shown to be a cause of this time complexity The result is a better understanding of the difficulty of assertion synthesis and its cause
[1]
Journal of the Association for Computing Machinery
,
1961,
Nature.
[2]
Ben Wegbreit,et al.
The synthesis of loop predicates
,
1974,
CACM.
[3]
Richard J. Waldinger,et al.
A more mechanical approach to program verification
,
1974,
Symposium on Programming.
[4]
Bernard Elspas,et al.
The Semiautomatic Generation of Inductive Assertions for Proving Program Correctness.
,
1978
.
[5]
Jayadev Misra,et al.
Proving loop programs
,
1975,
IEEE Transactions on Software Engineering.
[6]
Stephen A. Cook,et al.
The complexity of theorem-proving procedures
,
1971,
STOC.
[7]
Steven M. German,et al.
A Synthesizer of Inductive Assertions
,
1975,
IEEE Trans. Software Eng..
[8]
ZOHAR MANNA,et al.
The Correctness of Programs
,
1969,
J. Comput. Syst. Sci..