Case-Analysis for Rippling and Inductive Proof

  • Moa Johansson
  • Lucas Dixon
  • Alan Bundy
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6172)


Rippling is a heuristic used to guide rewriting and is typically used for inductive theorem proving. We introduce a method to support case-analysis within rippling. Like earlier work, this allows goals containing if-statements to be proved automatically. The new contribution is that our method also supports case-analysis on datatypes. By locating the case-analysis as a step within rippling we also maintain the termination. The work has been implemented in IsaPlanner and used to extend the existing inductive proof method. We evaluate this extended prover on a large set of examples from Isabelle’s theory library and from the inductive theorem proving literature. We find that this leads to a significant improvement in the coverage of inductive theorem proving. The main limitations of the extended prover are identified, highlight the need for advances in the treatment of assumptions during rippling and when conjecturing lemmas.


Induction Scheme Inductive Proof Interactive Proof Proof Search Recursion Analysis 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aderhold, M.: Improvements in formula generalization. In: Pfenning, F. (ed.) CADE 2007. LNCS (LNAI), vol. 4603, pp. 231–246. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  2. 2.
    Armando, A., Smaill, A., Green, I.: Automatic synthesis of recursive programs: The proof-planning paradigm. Automated Software Engineering 6(4), 329–356 (1999)CrossRefGoogle Scholar
  3. 3.
    Boyer, R.S., Moore, J.S.: A Computational Logic. ACM monograph series. Academic Press, London (1979)zbMATHGoogle Scholar
  4. 4.
    Bundy, A.: The automation of proof by mathematical induction. In: Handbook of Automated Reasoning, vol. 1. Elsevier, Amsterdam (2001)CrossRefGoogle Scholar
  5. 5.
    Bundy, A., Basin, D., Hutter, D., Ireland, A.: Rippling: Meta-level Guidance for Mathematical Reasoning. Cambridge Tracts in Theoretical Computer Science, vol. 56. Cambridge University Press, Cambridge (2005)zbMATHGoogle Scholar
  6. 6.
    Bundy, A., Dixon, L., Gow, J., Fleuriot, J.: Constructing induction rules for deductive synthesis proofs. In: CLASE at ETAPS-8. ENTCS, vol. 153, pp. 3–21 (2006)Google Scholar
  7. 7.
    Bundy, A., Stevens, A., van Harmelen, F., Ireland, A., Smaill, A.: Rippling: A heuristic for guiding inductive proofs. Artificial Intelligence 62(2), 185–253 (1993)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Bundy, A., van Harmelen, F., Horn, C., Smaill, A.: The Oyster-Clam system. In: Stickel, M.E. (ed.) CADE 1990. LNCS (LNAI), vol. 449, pp. 647–648. Springer, Heidelberg (1990)Google Scholar
  9. 9.
    Dixon, L.: A Proof Planning Framework for Isabelle. PhD thesis, University of Edinburgh (2006)Google Scholar
  10. 10.
    Dixon, L., Fleuriot, J.D.: IsaPlanner: A prototype proof planner in Isabelle. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 279–283. Springer, Heidelberg (2003)Google Scholar
  11. 11.
    Dixon, L., Fleuriot, J.D.: Higher order rippling in IsaPlanner. In: Slind, K., Bunker, A., Gopalakrishnan, G.C. (eds.) TPHOLs 2004. LNCS, vol. 3223, pp. 83–98. Springer, Heidelberg (2004)Google Scholar
  12. 12.
    Huet, G.: The zipper. Journal of Functional Programming 7(5), 549–554 (1997)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Ireland, A., Bundy, A.: Productive use of failure in inductive proof. JAR 16(1-2), 79–111 (1996)zbMATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Kaufmann, M., Moore, J.S.: An industrial strength theorem prover for a logic based on common Lisp. IEEE Transactions on Software Engineering 23(4), 203–213 (1997)CrossRefGoogle Scholar
  15. 15.
    Nipkow, T., Paulson, L.C., Wenzel, M.T. (eds.): Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  16. 16.
    Paulson, L.C.: Isabelle: A generic theorem prover. Springer, Heidelberg (1994)zbMATHGoogle Scholar
  17. 17.
    Richardson, J.D.C., Smaill, A., Green, I.: System description: proof planning in higher-order logic with Lambda-Clam. In: Kirchner, C., Kirchner, H. (eds.) CADE 1998. LNCS (LNAI), vol. 1421, pp. 129–133. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  18. 18.
    Smaill, A., Green, I.: Higher-order annotated terms for proof search. In: von Wright, J., Harrison, J., Grundy, J. (eds.) TPHOLs 1996. LNCS, vol. 1125, pp. 399–413. Springer, Heidelberg (1996)Google Scholar
  19. 19.
    Walther, C., Schweitzer, S.: About VeriFun. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 322–327. Springer, Heidelberg (2003)Google Scholar
  20. 20.
    Wilson, S., Fleuriot, J., Smaill, A.: Automation for dependently typed functional programming. Special Issue on Dependently Typed Programming of Fundamental Informaticae (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Moa Johansson
    • 1
  • Lucas Dixon
    • 2
  • Alan Bundy
    • 2
  1. 1.Dipartimento di InformaticaUniversità degli Studi di Verona 
  2. 2.School of InformaticsUniversity of Edinburgh 

Personalised recommendations