Skip to main content

Rewriting techniques for program synthesis

  • Regular Papers
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 355))

Abstract

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.

This research was supported in part by NASA grant NAG-1-613 and NSF grant CCR-87-00988..

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. L. Bachmair. Proof Methods for Equational Theories. PhD thesis, Univ. Illinois at Urbana-Champaign, 1987.

    Google Scholar 

  2. 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. 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. G. Birkhoff. On the structure of abstract algebras. Proc. of the Cambridge Philosophical Society, 31:433–454, 1935.

    Google Scholar 

  5. 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. N. Dershowitz. Orderings for term-rewriting systems. Theoretical Computer Science, 17(3):279–301, 1982.

    Google Scholar 

  7. 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. N. Dershowitz. Synthesis by completion. In IJCAI, pages 208–214, Los Angeles, 1985.

    Google Scholar 

  9. N. Dershowitz. Completion and its applications. In 1987 MCC Colloq. on Resolution of Equations in Algebraic Structures, Austin, Texas, 1988.

    Google Scholar 

  10. N. Dershowitz and Z. Manna. Proving termination with multiset orderings. Communications of the ACM, 22(8):465–476, August 1979.

    Google Scholar 

  11. 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. D. Hammerslag. Treemacs Manual. Technical Report UIUCDCS-R-88-1427, Univ. Illinois at Urbana-Champaign, May 1988.

    Google Scholar 

  13. C. J. Hogger. Derivation of logic programs. Journal of the ACM, 23(4), 1976.

    Google Scholar 

  14. 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. 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. 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. 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. 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. 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. 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. V. F. Turchin. The concept of a supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, 1986.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Nachum Dershowitz

Rights and permissions

Reprints and permissions

Copyright information

© 1989 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Reddy, U.S. (1989). Rewriting techniques for program synthesis. In: Dershowitz, N. (eds) Rewriting Techniques and Applications. RTA 1989. Lecture Notes in Computer Science, vol 355. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51081-8_121

Download citation

  • DOI: https://doi.org/10.1007/3-540-51081-8_121

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-51081-9

  • Online ISBN: 978-3-540-46149-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics