Complexity of Synthesizing Inductive Assertions
Journal of the ACM (JACM)
A Comparative Analysis of Functional Correctness
ACM Computing Surveys (CSUR)
Is Sometimes Ever Better Than Always?
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
The new math of computer programming
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Some classes of naturally provable programs
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Semi-proving: an integrated method based on global symbolic evaluation and metamorphic testing
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Verifying Definite Iteration Over Data Structures
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
The problem of generalizing functional specifications for while loops is considered. This problem occurs frequently when trying to verify that an initialized loop satisfies some functional specification, i.e., produces outputs which are some function of the program inputs.The notion of a valid generalization of a loop specification is defined. A particularly simple valid generalization, a base generalization, is discussed. A property of many commonly occurring while loops, that of being uniformly implemented, is defined. A technique is presented which exploits this property in order to systematically achieve a valid generalization of the loop specification. Two classes of uniformly implemented loops that are particularly susceptible to this form of analysis are defined and discussed. The use of the proposed technique is illustrated with a number of applications. Finally, an implication of the concept of uniform loop implementation for the validation of the obtained generalization is explained.