Rewriting techniques for program synthesis

  • Uday S. Reddy
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 355)


We present here a completion-like procedure for program synthesis from specifications. A specification is expressed as a set of equations and the program is a Noetherian set of rewrite rules that is efficient for computation. We show that the optimizations applicable for proving inductive theorems are useful for program synthesis. This improves on the use of general completion procedure for program synthesis, reported by Dershowitz, in that it generates fewer rules and terminates more often. However, there is a qualitative difference between this procedure and completion, as superposition is used not for eliminating critical overlaps but to find a complete set of cases for an inductive theorem.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Bac87]
    L. Bachmair. Proof Methods for Equational Theories. PhD thesis, Univ. Illinois at Urbana-Champaign, 1987.Google Scholar
  2. [BD77]
    R. M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the ACM, 24(1):44–67, January 1977.Google Scholar
  3. [BDH86]
    L. Bachmair, N. Dershowitz, and J. Hsiang. Orderings for equational proofs. In Symp. on Logic in Computer Science, pages 346–357, IEEE, 1986.Google Scholar
  4. [Bir35]
    G. Birkhoff. On the structure of abstract algebras. Proc. of the Cambridge Philosophical Society, 31:433–454, 1935.Google Scholar
  5. [Der82a]
    N. Dershowitz. Applications of the Knuth-Bendix completion procedure. In Proc. of the Seminaire d'Informatique Theorique, Paris, pages 95–111, December 1982.Google Scholar
  6. [Der82b]
    N. Dershowitz. Orderings for term-rewriting systems. Theoretical Computer Science, 17(3):279–301, 1982.Google Scholar
  7. [Der83]
    N. Dershowitz. Computing with rewrite systems. Technical Report ATR-83(8478)-1, Information Sciences Research Office, The Aerospace Corp., El Segundo, CA., January 1983.Google Scholar
  8. [Der85]
    N. Dershowitz. Synthesis by completion. In IJCAI, pages 208–214, Los Angeles, 1985.Google Scholar
  9. [Der88]
    N. Dershowitz. Completion and its applications. In 1987 MCC Colloq. on Resolution of Equations in Algebraic Structures, Austin, Texas, 1988.Google Scholar
  10. [DM79]
    N. Dershowitz and Z. Manna. Proving termination with multiset orderings. Communications of the ACM, 22(8):465–476, August 1979.Google Scholar
  11. [Fri86]
    L. Fribourg. A strong restriction of the inductive completion procedure. In Intern. Conf. Aut., Lang. and Program., pages 105–115, Rennes, France, July 1986. (Springer Lecture Notes in Computer Science, Vol. 226).Google Scholar
  12. [Ham88]
    D. Hammerslag. Treemacs Manual. Technical Report UIUCDCS-R-88-1427, Univ. Illinois at Urbana-Champaign, May 1988.Google Scholar
  13. [Hog76]
    C. J. Hogger. Derivation of logic programs. Journal of the ACM, 23(4), 1976.Google Scholar
  14. [JK86]
    J.-P. Jouannaud and E. Kounalis. Automatic proofs by induction in equational theories without constructors. In Symp. on Logic in Computer Science, pages 358–366, IEEE, Cambridge, MA., June 1986.Google Scholar
  15. [KNZ86]
    D. Kapur, P. Narendran, and H. Zhang. Proof by induction using test sets. In Conf. on Automated Deduction, Oxford, U.K., 1986.Google Scholar
  16. [KS85]
    D. Kapur and M. Srivas. A rewrite rule based approach for synthesizing data types. In TAPSOFT 85, pages 188–207, Springer-Verlag, 1985.Google Scholar
  17. [Kuc87]
    W. Küchlin. Inductive completion by ground proof transformation. Technical Report 87-08, Department of Computer Science, Univ. of Deleware, Newark, February 1987.Google Scholar
  18. [Kuc88]
    W. Küchlin. Inductive completion by ground proof transformation. In Proc. 1987 MCC Colloquium on Resolution of Equations in Algebraic Structures, MCC, Austin, Texas, 1988.Google Scholar
  19. [Red88]
    U. S. Reddy. Transformational derivation of programs using the FOCUS system. In Symp. Software Development Environments, pages 163–172, ACM, December 1988.Google Scholar
  20. [TS84]
    H. Tamaki and T. Sato. Unfold/fold transformation of logic programs. In Intern. Conf. on Logic Program., pages 127–138, Uppsala, 1984.Google Scholar
  21. [Tur86]
    V. F. Turchin. The concept of a supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Uday S. Reddy
    • 1
  1. 1.Department of Computer ScienceUniversity of Illinois at UrbanaChampaign

Personalised recommendations