Invariant Discovery via Failed Proof Attempts

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.

[1]  Anne Kaldewaij,et al.  Programming - the derivation of algorithms , 1990, Prentice Hall international series in computer science.

[2]  Frank van Harmelen,et al.  The Oyster-Clam System , 1990, CADE.

[3]  Dale A. Miller,et al.  AN OVERVIEW OF PROLOG , 1988 .

[4]  Alan Bundy,et al.  The Use of Explicit Plans to Guide Inductive Proofs , 1988, CADE.

[5]  Alan Bundy,et al.  Logic Program Synthesis via Proof Planning , 1992, LOPSTR.

[6]  David Gries,et al.  A Note on a Standard Strategy for Developing Loop Invariants and Loops , 1982, Sci. Comput. Program..

[7]  Ritu Chadha,et al.  On the Mechanical Derivation of Loop Invariants , 1993, J. Symb. Comput..

[8]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[9]  Frank van Harmelen,et al.  Rippling: A Heuristic for Guiding Inductive Proofs , 1993, Artif. Intell..

[10]  Marc Frappier,et al.  Computer Program Construction , 1994 .

[11]  Andrew Ireland,et al.  On the Automatic Discovery of Loop Invariants , 1997 .

[12]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[13]  Alan Bundy,et al.  Relational Rippling: A General Approach , 1995, IJCAI.

[14]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[15]  Zohar Manna,et al.  A Heuristic Approach to Program Verification , 1973, IJCAI.

[16]  Alan Bundy,et al.  Extensions to a Generalization Critic for Inductive Proof , 1996, CADE.

[17]  Ian Green,et al.  Higher-Order Annotated Terms for Proof Search , 1996, TPHOLs.

[18]  Roland Carl Backhouse,et al.  Program construction and verification , 1986, PHI Series in computer science.

[19]  Ben Wegbreit,et al.  Heuristic Methods for Mechanically Deriving Inductive Assertions , 1973, IJCAI.

[20]  Ben Hegbreitt Heuristic methods for mechanically deriving inductive assertio , 1973, IJCAI 1973.

[21]  Andrew Ireland,et al.  The Use of Planning Critics in Mechanizing Inductive Proofs , 1992, LPAR.

[22]  Jane Thurmann Hesketh,et al.  Using middle-out reasoning to guide inductive theorem proving , 1992 .