Skip to main content

Invariant Discovery via Failed Proof Attempts

  • Conference paper
  • First Online:
Logic-Based Program Synthesis and Transformation (LOPSTR 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1559))

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R.C. Backhouse. Program Construction and Verification. Prentice Hall, 1986.

    Google Scholar 

  2. David Basin and Toby Walsh. Annotated rewriting in inductive theorem proving. Journal of Automated Reasoning, 16(1-2):147–180, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Article  MATH  MathSciNet  Google Scholar 

  6. 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.

    Google Scholar 

  7. Chadha and Plaisted. On the mechanical derivation of loop invariants. JSL, 15:705–744, 1993.

    MATH  MathSciNet  Google Scholar 

  8. E. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.

    Google Scholar 

  9. D. Gries. A note on a standard strategy for developing loop invariants and loops. Science of Computer Programming, 2:207–214, 1982.

    Article  MATH  MathSciNet  Google Scholar 

  10. David Gries. The Science of Programming. Springer-Verlag, New York, 1981.

    MATH  Google Scholar 

  11. J.T. Hesketh. Using Middle-Out Reasoning to Guide Inductive Theorem Proving. PhD thesis, University of Edinburgh, 1991.

    Google Scholar 

  12. C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12:576–583, 1969.

    Article  MATH  Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Article  MATH  MathSciNet  Google Scholar 

  16. 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.

    Google Scholar 

  17. A. KaldewaiJ. Programming: The Derivation of Algorithms. Prentice Hall, 1990.

    Google Scholar 

  18. S.M. Katz and Z. Manna. A heuristic approach to program verification. In Proceedings of IJCAI-73. International Joint Conference on Artificial Intelligence, 1973.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. 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.

    Article  MathSciNet  Google Scholar 

  21. A. Mili, J. Desharhais, and F. Mili. Computer Program Construction. Oxford University Press, 1994.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. Wegbreit. Heuristic methods for mechanically deriving inductive assertions. In Proceedings of IJCAI-73. International Joint Conference on Artificial Intelligence, 1973.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics