Abstract
Term rewriting systems employed for the specification of abstract data types and for very high level programming languages based on rewrite rules are often required to have properties, such as confluence, termination, and sufficient-completeness, which are undecidable. Rather than attempting, as it is usually done, to check these properties in a system a posteriori, i.e. after the rules have been designed, we propose two strategies for addressing this problem a priori, i.e. during the design phase of rules. We propose the concepts of under- and over-specification, determine sufficient and/or necessary conditions to avoid them, show how to obtain these conditions in a constructive way, and relate them to a number of desirable properties which have appeared in the literature. Our approach is based on the completeness and parsimony properties of sets of tuples of terms and on a recursive mechanism which extends primitive recursion from natural numbers to abstract data types. We prove a number of results, illustrate their application to the design of rewriting systems by means of examples, and discuss the power and the limitations of our approach.
This material is based upon work supported by the National Science Foundation Grant No. CCR-8908565.
Preview
Unable to display preview. Download preview PDF.
References
Antoy S., P. Forcheri, and M.T. Molfino, “Specification-based Code Generation”, 23rd Hawaii Int'l Conf. on System Sciences, Kona, Hawaii, Jan. 3–5, 1990, 165–173.
Bergstra J.A., J. Heering, and P. Klint, (eds.) Algebraic Specifications, Addison-Wesley, Wokingham, England, 1989.
Burstall L., “Proving Properties of Programs by Structural Induction”, Computer Journal, 21-1, 1969, 41–48.
Dershowitz N., “Termination”, Proc. Rewriting Techniques and Applications, Dijon, France, Springer-Verlag, May 1985, 180–223.
Ehrig M. and B. Mahr, Fundamentals of Algebraic Specification 1, Springer-Verlag, Berlin, 1985.
van Emden M. and K. Yukawa, “Logic Programming with Equations”, The Journal of Logic Prog., 4, 265–288, 1987.
Futatsugi K., J.A. Goguen, J. P. Jouannaud, and J. Meseguer, “Principles of OBJ2”, in 12th Annual Symp. on Principles of Prog. Languages, 52–66, SIGPLAN and SIGACT, 1984.
Garland S.J. and J.V. Guttag, “Inductive Methods for Reasoning about Abstract Data Types” Proc. of the 15th ACM Conf. on Principle of Prog. Lang., 219–228, 1988.
Goguen J.A., J.W. Thatcher, and E.G. Wagner, “An Initial Algebra Approach to the Specification, Correctness, and Implementation of Abstract Data Types”, in Current Trends in Programming Methodology 4, 80–149 (Ed. R.T. Yeh), Prentice-Hall, Englewood Cliff, NJ, 1978.
Goguen J.A. and T. Winkler, “Introducing OBJ3”, SRI-CSL-88-9, SRI International, Menlo Park, CA, 1988
Guttag J.V., E. Horowitz, and D. Musser, “The Design of Data Type Specifications”, in Current Trends in Programming Methodology 4, 60–79 (Ed. R.T. Yeh), Prentice-Hall, Englewood Cliff, NJ, 1978.
Guttag J.V., E. Horowitz, and D. Musser, “Abstract Data Types and Software Validation”, CACM, 21, 1978, 1048–1064.
Guttag J.V. and J.J. Horning, “The Algebraic Specifications of Abstract Data Types”, Acta Informatica, 10, 1978, 27–52.
Guttag J.V., J.J. Horning, and J.M. Wing, “The Larch Family of Specification Languages”, IEEE Software, Sept 1985, 24–36.
Guttag J.V. and Horning J.J., “A Larch Shared Language Handbook” Science of Computer Programming 6–2, 135–157, 1985.
Halme H. and J. Heilanen, “GNU Emacs as a Dynamically Extensible Programming Environment”, Software—Practice and Experience, 18–10, 1988, 999–1009.
Hopcroft J.E. and J.D. Ullman, Introduction to Automata Theory, Languages, and Computations, Addison-Wesley, Reading, MA, 1979.
Huet G. and D. Oppen, “Equations and rewrite rules: A survey”, in Formal Language Theory (R. Book, ed.), Academic Press, 1980, 349–405.
Huet G., “Confluent Reductions: Abstract Properties and Applications to Term-Rewriting Systems”, JACM, 27, 1980, 797–821.
Huet G. and J.-M. Hullot, “Proofs by Induction in Equational Theories with Constructors”, JCSS 25, 1982, 239–266.
Kapur D., P. Narendran, and H. Zhang, “On Sufficient-Completeness and Related Properties of Term Rewriting Systems”, Acta Informatica, 24, 1987, 395–415.
Kfoury A., R. Moll, and M. Arbib, A Programming Approach to Computability, Springer-Verlag, New York, NY, 1982.
Knuth D.E. and P.B. Bendix, “Simple Word Problems in Universal Algebras”, in Computational Problems in Abstract Algebras, (J. Leech, ed.), Pergamon Press, New York, 1970, 263–297.
Kounalis E., “Completeness in Data Type Specifications”, EUROCAL '85, LNCS 204, 1985, 348–362.
Manna Z. and R. Waldinger, The Logical Basis for Computer Programming, Addison-Wesley, Reading, MA, 1985.
Minsky M. L., Computation: Finite and Infinite Machines, Prentice-Hall, Englewood Cliffs, NJ, 1967.
Stallman R., “Emacs: the Extensible, Customizable, Self-documenting Display Editor”, Proc. ACM SIGPLA/SIGOA Symp. on Text Manipulation, Portland, OR, 1981.
Stallman R., GNU Emacs Manual, Sixth ed., Version 18, Free Software Foundation, Cambridge, MA, 1987.
Thiel J.J., “Stop Losing Sleep over Incomplete Data Type Specifications”, in 11th Annual Symp. on Principles of Prog. Languages, 76–82, ACM, 1984.
Togashi A. and S Noguchi, “A Program Transformation from Equational Programs into Logic Programs”, The Journal of Logic Prog., 4, 85–103, 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Antoy, S. (1991). Design strategies for rewrite rules. In: Kaplan, S., Okada, M. (eds) Conditional and Typed Rewriting Systems. CTRS 1990. Lecture Notes in Computer Science, vol 516. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54317-1_102
Download citation
DOI: https://doi.org/10.1007/3-540-54317-1_102
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54317-6
Online ISBN: 978-3-540-47558-3
eBook Packages: Springer Book Archive