Abstract
Rippling is a proof search guidance technique with particular application to proof by mathematical induction. It is based on a concept of annotating the differences between two terms. In its original formulation this annotation was only appropriate to first-order formulae. We use a notion of embedding to adapt these annotations appropriately for higher-order syntax. This representation simplifies the theory of annotated terms, no longer requiring special substitution and unification theorems. A key feature of the representation is that it provides a clean separation of the term and the annotation. We illustrate this with selected examples using our implementation of these ideas in λClam.
References
Basin, D., Walsh, T.: A calculus for and termination of rippling. J. Autom. Reason. 16(1–2), 147–180 (1996)
Boudet, A., Comon, H.: About the theory of tree embedding. In: Gaudek, M.-C., Jouannaud, J.-P. (eds.) TAPSOFT ’93: Theory and Practice of Software Development. Lecture Notes in Computer Science, vol. 668, pp. 376–390. Springer, Berlin (1993)
Bundy, A.: A science of reasoning. In: Lassez, J.-L., Plotkin, G. (eds.) Computational Logic: Essays in Honor of Alan Robinson, pp. 178–198. MIT, Cambridge (1991)
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)
Bundy, A., Stevens, A., van Harmelen, F., Ireland, A., Smaill, A.: Rippling: a heuristic for guiding inductive proofs. Artif. Intell. 62, 185–253 (1993, Also available from Edinburgh as DAI Research Paper No. 567)
Dennis, L.A.: Program slicing and middle-out reasoning for error location and repair. In: Disproving: Non-Theorems, Non-Validity and Non-Provability (2006)
Dennis, L.A., Brotherston, J.: λclam v4: User/Developer’s Manual. Mathematical Reasoning Group, Division of Informatics, University of Edinburgh, Edinburgh (2002)
Dennis, L.A., Smaill, A.: Ordinal arithmetic: a case study for rippling in a higher order domain. In: Boulton, R.J., Jackson, P.B. (eds.) Theorem Proving in Higher Order Logics: 14th International Conference, TPHOLs 2001. Lecture Notes in Computer Science, vol. 2152, pp. 185–200. Springer, Berlin (2001)
Dixon, L., Fleuriot, J.D.: Higher order rippling in IsaPlanner. In: Theorem Proving in Higher Order Logics. Lecture Notes in Computer Science, vol. 3223, pp. 83–98 (2004)
Felty, A.: A logic programming approach to implementing higher-order term rewriting. In: Eriksson, L.-H., et al. (eds.) Second International Workshop on Extensions to Logic Programming. Lecture Notes in Computer Science, vol. 596, pp. 135–61. Springer, Berlin (1992)
Gallagher, J.K.: The use of proof plans in tactic synthesis. Ph.D. thesis, University of Edinburgh (1993)
Gardent, C., Kohlhase, M.: Higher-order coloured unification and natural language semantics. In: Joshi, A., Palmer, M. (eds.) Proceedings of the Thirty-Fourth Annual Meeting of the Association for Computational Linguistics, pp. 1–9. Morgan Kaufmann, San Francisco (1996)
Hutter, D.: Guiding inductive proofs. In: Stickel, M.E. (ed.) 10th International Conference on Automated Deduction. Lecture Notes in Artificial Intelligence, vol. 449, pp. 147–161. Springer, Berlin (1990)
Hutter, D.: Pattern-direct guidance of equational proofs. Ph.D. thesis, University of Karlsruhe (1991)
Hutter, D.: Using rippling for equational reasoning. In: Hölldobler, S. (ed.) Proceedings 20th German Annual Conference on Artificial Intelligence KI-96. Lecture Notes in Artificial Intelligence, vol. 1137. Springer, Berlin (1996)
Hutter, D., Kohlhase, M.: Managing structural information by higher-order colored unification. J. Autom. Reason. 25(2), 123–164 (2000)
Ireland, A., Bundy, A.: Productive use of failure in inductive proof. J. Autom. Reason. 16(1–2), 79–111 (1996, Also available from Edinburgh as DAI Research Paper No. 716)
Jouannaud, J.-P., Okada, M.: Satisfiability of systems of ordinal notations with the subterm property is decidable. In: Proceedings of the Eighteenth EATCS Colloquium on Automata, Languages and Programming. Madrid, Spain (1991)
Klop, J.W.: Term rewriting systems. In: Abramsky, S., Gabbay, D., Maibaum, T.S. (eds.) Handbook of Logic in Computer Science, vol. 2, pp. 1–116. Clarendon, Oxford (1992)
Lacey, D., Richardson, J., Smaill, A.: Logic program synthesis in a higher-order setting. In: Lloyd, J., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Palamidessi, C., Pereira, L.M., Sagiv, Y., Stuckey, P.J. (eds.) Computational Logic—CL2000. Lecture Notes in Computer Science, vol. 1861. Springer, Berlin (2000)
Liang, C.: λProlog implementation of ripple-rewriting. In: Proceedings of the 1992 Workshop on the λProlog Programming Language. University of Pennsylvania, Philadelphia (1992)
Luo, Z., Pollack, R.: LEGO Proof Development System: User’s Manual. Report ECS-LFCS-92-211, Department of Computer Science, University of Edinburgh, Edinburgh (1992)
Miller, D.: Abstract syntax for variable binders: an overview. In: Lloyd, J., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Palamidessi, C., Pereira, L.M., Sagiv, Y., Stuckey, P.J. (eds.) Computation Logic (CL’2000). Lecture Notes in Computer Science, vol. 1861. Springer, Berlin (2000)
Negrete, S., Smaill, A.: Guiding proof search in logical frameworks with rippling. Technical Report, Dept. of Artificial Intelligence, University of Edinburgh, Edinburgh (1995)
Paulson, L.: Isabelle: A Generic Theorem Prover. Lecture Notes in Computer Science, vol. 823. Springer, Berlin (1994)
Richardson, J., Smaill, A., Green, I.: System description: proof planning in higher-order logic with Lambda-Clam. In: Kirchner, C., Kirchner, H. (eds.) Conference on Automated Deduction (CADE’98). Lecture Notes in Computer Science, vol. 1421, pp. 129–133. Springer, Berlin (1998)
Smaill, A., Green, I.: Automating the Synthesis of Functional Programs. Research paper 777, Dept. of Artificial Intelligence, University of Edinburgh, Edinburgh (1995)
Smaill, A., Green, I.: Higher-order annotated terms for proof search. In: von Wright, J., Grundy, J., Harrison, J. (eds.) Theorem Proving in Higher Order Logics: 9th International Conference, TPHOLs’96. Lecture Notes in Computer Science, vol. 1275, pp. 399–414. Springer, Berlin (1996, Also available as DAI Research Paper 799)
Walsh, T., Nunes, A., Bundy, A.: The use of proof plans to sum series. In: Kapur, D. (ed.) CADE11. Lecture Notes in Computer Science, vol. 607, pp. 325–339. Springer, Berlin (1992)
Yoshida, T., Bundy, A., Green, I., Walsh, T., Basin, D.: Coloured rippling: an extension of a theorem proving heuristic. In: Cohn, A.G. (ed.) Proceedings of ECAI-94, pp. 85–89. Wiley, New York (1994)
Author information
Authors and Affiliations
Corresponding author
Additional information
Research funded by EPSRC grants Gr/M45030 and Gr/SO1771/01. We thank members of the Mathematical Reasoning Group in Edinburgh and especially Alan Bundy and Lucas Dixon for input to this work. Some earlier ideas related to this work are due to Jason Gallagher. The anonymous referees of an earlier draft of this paper also contributed many helpful comments and suggestions.
Rights and permissions
About this article
Cite this article
Dennis, L.A., Green, I. & Smaill, A. The Use of Embeddings to Provide a Clean Separation of Term and Annotation for Higher Order Rippling. J Autom Reasoning 47, 57–105 (2011). https://doi.org/10.1007/s10817-010-9177-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-010-9177-y