Skip to main content
Log in

Recursive Program Optimization through Inductive Synthesis Proof Transformation

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

The research described in this paper involved developing transformation techniques that increase the efficiency of the original program, the source, by transforming its synthesis proof into one, the target, which yields a computationally more efficient algorithm. We describe a working proof transformation system that, by exploiting the duality between mathematical induction and recursion, employs the novel strategy of optimizing recursive programs by transforming inductive proofs. We compare and contrast this approach with the more traditional approaches to program transformation and highlight the benefits of proof transformation with regards to search, correctness, automatability, and generality.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Basin, David A.: Extracting circuits from constructive proofs, Research Paper 533, Dept. of Artificial Intelligence, Edinburgh, 1991. Also appeared in Proceedings of the IFIP-IEEE International Workshop on Formal Methods in VLSI Design, Miami, USA, 1991.

  2. Bjerner, B.: Time Complexity of Programs in Type Theory, Ph.D. thesis, University of Göteborg, 1989.

  3. Boyer, R. S. and Moore, J S.: A Computational Logic, Academic Press, 1979, ACMmonograph series.

  4. Boyer, R. S. and Moore, J S.: A Computational Logic Handbook, Academic Press, 1988. Perspectives in Computing, Vol. 23.

  5. Bundy, A., Stevens, A., van Harmelen, F. Ireland, A. and Smaill, A.: Rippling: A heuristic for guiding inductive proofs, Artificial Intelligence 62 (1993), 185–253. Also available from Edinburgh as DAI Research Paper 567.

    Google Scholar 

  6. Bundy, A., van Harmelen, F., Hesketh, J. and Smaill, A.: Experiments with proof plans for induction, Journal of Automated Reasoning 7 (1991), 303–324. Earlier version available from Edinburgh as DAI Research Paper 413.

    Google Scholar 

  7. Bundy, A., van Harmelen, F., Hesketh, J., Smaill, A. and Stevens, A.: A rational reconstruction and extension of recursion analysis, in N. S. Sridharan (ed.), Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, Morgan Kaufmann, 1989, pp. 359–365. Also available from Edinburgh as DAI Research Paper 419.

  8. Bundy, A., van Harmelen, F., Horn, C. and Smaill, A.: The Oyster-Clam system, in: M. E. Stickel (ed.), 10th International Conference on Automated Deduction, Lecture Notes in Artificial Intelligence 449, Springer-Verlag, 1990, pp. 647–648. Also available from Edinburgh as DAI Research Paper 507.

  9. Burstall, R. M. and Darlington, J.: A transformation system for developing recursive programs, Journal of the Association for Computing Machinery 24(1) (1977), 44–67.

    Google Scholar 

  10. Chin, W. N.: Automatic Methods for Program Transformation, Ph.D. thesis, Imperial College, 1990.

  11. Cohen, N. H.: Eliminating redundant recursive calls, ACM Transactions on Database Systems 5(3) (1983), 265–299.

    Google Scholar 

  12. Curry, H. B. and Feys, R.: Combinatory Logic, North-Holland, 1958.

  13. Darlington, J.: A Semantic Approach to Automatic Program Improvement, Ph.D. thesis, Dept. of Artificial Intelligence, Edinburgh, 1972.

  14. Darlington, J.: An experimental program transformation and synthesis system, Artificial Intelligence 16(3) (1981), 1–46.

    Google Scholar 

  15. Darlington, J.: A functional programming environment supporting execution, partial evaluation and transformation, in PARLE 1989, Eindhoven, Netherlands, 1989, pp. 286–305.

  16. Howard, W. A.: The formulae-as-type notion of construction, in J. P. Seldin and J. R. Hindley (eds), To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, Academic Press, 1980, pp. 479–490.

  17. Lowe, H.: The use of theorem proving techniques in expert systems for configuration, in J.-C. Rault (ed.), Proceedings of the Eleventh International Workshop on Expert Systems and Their Applications, Avignon, EC2, May 1991. Also available from Edinburgh as DAI Research Paper 536.

  18. Madden, P.: A NuPRL synthesis of several sorting algorithms: Towards an automatic program transformation system, Research Paper 356, Dept. of Artificial Intelligence, Edinburgh, 1987.

  19. Madden, P.: The specialization and transformation of constructive existence proofs, in N. S. Sridharan (ed.), Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, Morgan Kaufmann, 1989. Also available as DAI Research Paper 416, Dept. of Artificial Intelligence, Edinburgh.

  20. Madden, P.: Automated Program Transformation through Proof Transformation, Ph.D. thesis, University of Edinburgh, 1991.

  21. Madden, P.: Formal methods for automated program improvement, in B. Nebel and L. Dreschler-Fischer (ed.), KI-94: Advances in Artificial Intelligence. Proceedings of 18th German Annual Conference on Artificial Intelligence, Saarbrueken, Germany, September 1994, Springer-Verlag. A longer version is available from the Max-Planck-Institut as MPI-I–94–38.

  22. Madden, P.: Linear to logarithmic optimization via proof transformation, Research paper MPII–94–240, Max-Planck-Institute für Informatik, 1994.

  23. Manna, Z. and Waldinger, R.: A deductive approach to program synthesis, ACM Transactions on Programming Languages and Systems 2(1) (1980), 90–121.

    Google Scholar 

  24. Martin-Löf, Per: Constructive mathematics and computer programming, in 6th International Congress for Logic, Methodology and Philosophy of Science, Hanover, August 1979, pp. 153–175. Republished by North-Holland, Amsterdam, 1982.

    Google Scholar 

  25. Michie, D.: Memo functions and machine learning, Nature 218 (1968), 19–22.

    Google Scholar 

  26. Pettorossi, A.: A powerful strategy for deriving programs by transformation, in ACM Lisp and Functional Programming Conference, ACM, 1984, pp. 405–426.

  27. Stevens, A.: A rational reconstruction of Boyer and Moore' technique for constructing induction formulas, in Y. Kodratoff (ed.), The Proceedings of ECAI-88, European Conference on Artificial Intelligence, 1988, pp. 565–570. Also available from Edinburgh as DAI Research Paper 360.

  28. Tamaki, H. and Sato, T.: A transformation system for logic programs that preserves equivalence, Technical Report TR-018, ICOT, 1984.

  29. Tamaki, H. and Sato, T.: A transformation system for logic programs which preserves equivalence, Technical Report, ICOT, 1983.

  30. Wainer, S. S.: Logical and recursive complexity, Technical Report 31/90 (Preprint Series), Center for Theoretical Computer Science, University of Leeds, 1990.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Madden, P., Bundy, A. & Smaill, A. Recursive Program Optimization through Inductive Synthesis Proof Transformation. Journal of Automated Reasoning 22, 65–115 (1999). https://doi.org/10.1023/A:1005969312327

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1005969312327

Navigation