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.
Similar content being viewed by others
References
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.
Bjerner, B.: Time Complexity of Programs in Type Theory, Ph.D. thesis, University of Göteborg, 1989.
Boyer, R. S. and Moore, J S.: A Computational Logic, Academic Press, 1979, ACMmonograph series.
Boyer, R. S. and Moore, J S.: A Computational Logic Handbook, Academic Press, 1988. Perspectives in Computing, Vol. 23.
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.
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.
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.
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.
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.
Chin, W. N.: Automatic Methods for Program Transformation, Ph.D. thesis, Imperial College, 1990.
Cohen, N. H.: Eliminating redundant recursive calls, ACM Transactions on Database Systems 5(3) (1983), 265–299.
Curry, H. B. and Feys, R.: Combinatory Logic, North-Holland, 1958.
Darlington, J.: A Semantic Approach to Automatic Program Improvement, Ph.D. thesis, Dept. of Artificial Intelligence, Edinburgh, 1972.
Darlington, J.: An experimental program transformation and synthesis system, Artificial Intelligence 16(3) (1981), 1–46.
Darlington, J.: A functional programming environment supporting execution, partial evaluation and transformation, in PARLE 1989, Eindhoven, Netherlands, 1989, pp. 286–305.
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.
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.
Madden, P.: A NuPRL synthesis of several sorting algorithms: Towards an automatic program transformation system, Research Paper 356, Dept. of Artificial Intelligence, Edinburgh, 1987.
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.
Madden, P.: Automated Program Transformation through Proof Transformation, Ph.D. thesis, University of Edinburgh, 1991.
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.
Madden, P.: Linear to logarithmic optimization via proof transformation, Research paper MPII–94–240, Max-Planck-Institute für Informatik, 1994.
Manna, Z. and Waldinger, R.: A deductive approach to program synthesis, ACM Transactions on Programming Languages and Systems 2(1) (1980), 90–121.
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.
Michie, D.: Memo functions and machine learning, Nature 218 (1968), 19–22.
Pettorossi, A.: A powerful strategy for deriving programs by transformation, in ACM Lisp and Functional Programming Conference, ACM, 1984, pp. 405–426.
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.
Tamaki, H. and Sato, T.: A transformation system for logic programs that preserves equivalence, Technical Report TR-018, ICOT, 1984.
Tamaki, H. and Sato, T.: A transformation system for logic programs which preserves equivalence, Technical Report, ICOT, 1983.
Wainer, S. S.: Logical and recursive complexity, Technical Report 31/90 (Preprint Series), Center for Theoretical Computer Science, University of Leeds, 1990.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1023/A:1005969312327