Abstract
When proving invariance properties of programs one is faced with two problems. The first problem is related to the necessity of proving tautologies of the considered assertion language, whereas the second manifests in the need of finding sufficiently strong invariants. This paper focuses on the second problem and describes techniques for the automatic generation of invariants. The first set of these techniques is applicable on sequential transition systems and allows to derive so-called local invariants, i.e. predicates which are invariant at some control location. The second is applicable on networks of transition systems and allows to combine local invariants of the sequential components to obtain local invariants of the global systems. Furthermore, a refined strengthening technique is presented that allows to avoid the problem of size-increase of the considered predicates which is the main drawback of the usual strengthening technique. The proposed techniques are illustrated by examples.
Chapter PDF
Similar content being viewed by others
References
K.R. Apt. Ten years of Hoare's logic: a survey, part I. ACM Trans. on Prog. Lang. and Sys., 3(2):431–483, 1981.
N. Bjøner, A. Browne; and Z. Manna. Automatic generation of invariants and intermediate assertions. In U. Montanari, editor, 1st Int. Conf. on Principles and Practice of Constraint Programming, 1995.
M. Caplain. Finding invariant assertions for proving programs. In Proc. Int. Conf. on Reliable Software, Los Angeles, CA, 1975.
E.M. Clarke, E.A. Emerson, and E. Sistla. Automatic verification of finite state concurrent systems using temporal logic specifications: A practical approach. In POPL'83. ACM, 1983.
P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In 4th ACM symp. of Prog. Lang., pages 238–252. ACM Press, 1977.
E. W. Dijkstra. Guarded commands, nondeterminacy, and formal derivation. Comm. ACM, 18(8):453–457, 1975.
B. Elspas. The semiautomatic generation of inductive assertions for proving program correctness. Research report, SRI, Menlo Park, CA, 1974.
R. W. Floyd. Assigning meanings to programs. In In. Proc. Symp. on Appl. Math. 19, pages 19–32. American Mathematical Society, 1967.
S. M. German and B. Wegbreit. A synthesizer of inductive assertions. IEEE Trans. On Software Engineering, 1:68–75, March 1975.
S. Graf and H. Saidi. Verifying invariants using theorem proving. In In this volume, 1996.
S. Katz and Z. Manna. A heuristic approach to program verification. In Proc. 3rd Int. Joint Conf. on Artificial Intelligence, Stanford, CA, 1976.
L. Lamport. A new solution of Dijkstra's concurrent programming problem. Comm. ACM, 17(8):453–455, 1974.
O. Lichtenstein and A. Pnueli. Checking that finite state concurrent programs satisfy their linear specification. In POPL, pages 97–107, 1985.
Z. Manna, A. Anuchitanukul, N. Bjøner, A. Browne, E. Chang, M. Colon, L. De Alfaro, H. Devarajan, H. Sipma, and T. Uribe. STeP: The Stanford Temporal Prover. Technical report, Stanford Univ., Stanford, CA, 1995.
Z. Manna and A. Pnueli. Temporal Verification of Reactive Systems: Safety. Springer-Verlag, 1995.
S. Owre, J. Rushby, N. Shankar, and F. von Henke. Formal verification for faulttolerant architectures: Prolegomena to the design of PVS. IEEE Transactions on Software Engineering, 1995.
J. P. Queille and J. Sifakis. Specification and verification of concurrent systems in CESAR. In Proc. 5th Int. Sym. on Programming, volume 137 of Lecture Notes in Computer Science, pages 337–351. Springer-Verlag, 1982.
B. K. Szymanski. A simple solution to Lamport's concurrent programming problem verification. In Proc. Intern. Conf. on Supercomputing Sys., pages 621–626, 1988.
B. K. Szymanski and J. M. Vidal. Automatic verfication of a class of symmetric parallel programs. In Proc. 13th IFIP World Computer Congress, 1994.
M.Y. Vardi and P. Wolper. An automata-theoretic approach to automatic program verification. In LICS'86. IEEE, 1986.
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bensalem, S., Lakhnech, Y., Saidi, H. (1996). Powerful techniques for the automatic generation of invariants. In: Alur, R., Henzinger, T.A. (eds) Computer Aided Verification. CAV 1996. Lecture Notes in Computer Science, vol 1102. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61474-5_80
Download citation
DOI: https://doi.org/10.1007/3-540-61474-5_80
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61474-6
Online ISBN: 978-3-540-68599-9
eBook Packages: Springer Book Archive