Abstract
We present a framework for automating the discovery of loop invariants based upon failed proof attempts. The discovery of suitable loop invariants represents a bottleneck for automatic verification of imperative programs. Using the proof planning framework we reconstruct standard heuristics for developing invariants. We relate these heuristics to the analysis of failed proof attempts allowing us to discover invariants through a process of refinement.
The contribution of the first author is supported by an EPSRC student ship award 96307451, and the contribution of the second author is supported by EPSRC grant GR/L11724
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
R.C. Backhouse. Program Construction and Verification. Prentice Hall, 1986.
David Basin and Toby Walsh. Annotated rewriting in inductive theorem proving. Journal of Automated Reasoning, 16(1-2):147–180, 1996.
A. Bundy. The use of explicit plans to guide inductive proofs. Research Paper 349, Dept. of Artificial Intelligence, University of Edinburgh, 1988. Short version published in the proceedings of CADE-9.
A. Bundy and V. Lombart. Relational rippling: a general approach. In C. Mellish, editor, Proceedings of IJCAI-95, pages 175–181. IJCAI, 1995. Longer version to appear as a DAI research paper.
A. Bundy, A. Stevens, F. van Harmelen, A. Ireland, and A. Smaill. Rippling: A heuristic for guiding inductive proofs. Artificial Intelligence, 62:185–253, 1993. Also available from Edinburgh as DAI Research Paper No. 567.
A. Bundy, F. van Harmelen, C. Horn, and A. Smaill. The Oyster-Clam system. Research Paper 507, Dept. of Artificial Intelligence, University of Edinburgh, 1990. Appeared in the proceedings of CADE-10.
Chadha and Plaisted. On the mechanical derivation of loop invariants. JSL, 15:705–744, 1993.
E. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.
D. Gries. A note on a standard strategy for developing loop invariants and loops. Science of Computer Programming, 2:207–214, 1982.
David Gries. The Science of Programming. Springer-Verlag, New York, 1981.
J.T. Hesketh. Using Middle-Out Reasoning to Guide Inductive Theorem Proving. PhD thesis, University of Edinburgh, 1991.
C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12:576–583, 1969.
A. Ireland. The Use of Planning Critics in Mechanizing Inductive Proofs. In A. Voronkov, editor, International Conference on Logic Programming and Automated Reasoning-LPAR 92, St. Petersburg, Lecture Notes in Artificial Intelligence No. s624, pages 178–189. Springer-Verlag, 1992. Also available from Edinburgh as DAI Research Paper 592.
A. Ireland and A. Bundy. Extensions to a Generalization Critic for Inductive Proof. In M.A. McRobbie and J.K. Slaney, editors, 13th Conference on Automated Deduction, pages 47–61. Springer-Verlag, 1996. Springer Lecture Notes in Artificial Intelligence No. 1104. Also available from Edinburgh as DAI Research Paper 786.
A. Ireland and A. Bundy. Productive use of failure in inductive proof. Journal of Automated Reasoning, 16(1-2):79–111, 1996. Also available as DAI Research Paper No 716, Dept. of Artificial Intelligence,Edinburgh.
A. Ireland and J. Stark. On the Automatic Discovery of Loop Invariants. In Fourth NASA Langley Formal Methods Workshop, number 3356 in NASA Conference Publications, 1997.Also available from Dept. of Computing and Electrical Engineering, Heriot-Watt University, Research Memo RM/97/1.
A. KaldewaiJ. Programming: The Derivation of Algorithms. Prentice Hall, 1990.
S.M. Katz and Z. Manna. A heuristic approach to program verification. In Proceedings of IJCAI-73. International Joint Conference on Artificial Intelligence, 1973.
I. Kraan, D. Basin, and A. Bundy. Logic program synthesis via proof planning. In K.K. Lau and T. Clement, editors, Logic Program Synthesis and Transformation, pages 1–14. Springer-Verlag, 1993. Also available as Max-Planck-Institut für Informatik Report MPI-I-92-244 and Edinburgh DAI Research Report 603.
A. Mili, J. Desharhais, and J. Gagne. Strongest invariant functions: Their use in the systematic analysis of while statements. Acta Informatica, 22:47–66, 1985.
A. Mili, J. Desharhais, and F. Mili. Computer Program Construction. Oxford University Press, 1994.
D. Miller and G. Nadathur. An overview of λProlog. In R. Bowen, K. & Kowalski, editor, Proceedings of the Fifth International Logic Programming Conference/ Fifth Symposium on Logic Programming. MIT Press, 1988.
A. Smaill and I. Green. Higher-order annotated terms for proof search. Technical report, Dept. of Artificial Intelligence, University of Edinburgh, 1996. To appear in proceedings of TPHOLs’96.
Wegbreit. Heuristic methods for mechanically deriving inductive assertions. In Proceedings of IJCAI-73. International Joint Conference on Artificial Intelligence, 1973.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stark, J., Ireland, A. (1999). Invariant Discovery via Failed Proof Attempts. In: Flener, P. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 1998. Lecture Notes in Computer Science, vol 1559. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48958-4_15
Download citation
DOI: https://doi.org/10.1007/3-540-48958-4_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65765-1
Online ISBN: 978-3-540-48958-0
eBook Packages: Springer Book Archive