Inductive methods for reasoning about abstract data types

Rewriting techniques have been used to reason about a variety of topics related to programming languages, e.g., abstract data types, Petri Nets, FP programs, and data bases. They have also been used in the implementation and definition of a variety of programming languages. At the 1980 POPL Conference, David Musser proposed a new method of proving inductive properties of abstract data types. Since that time, this method, which came to be called inductionless induction, has attracted considerable attention. Numerous applications and improvements have been proposed and several implementations described. However, little or no work has appeared that questions the basic utility of the idea. The thesis of this paper is that while induction using equational term-rewriting holds great promise, inductionless induction does not. More specifically, we argue that for reasoning about abstract data types traditional inductive methods are usually superior.

[1]  Françoise Bellegarde,et al.  Rewriting Systems on FP Expressions to Reduce the Number of Sequences Yielded , 1986, Science of Computer Programming.

[2]  Leon Henkin,et al.  The Logic of Equality , 1977 .

[3]  David R. Musser,et al.  Abstract Data Type Specification in the Affirm System , 1980, IEEE Transactions on Software Engineering.

[4]  Jean-Pierre Jouannaud,et al.  Proofs by induction in equational theories without constructors , 1985, Bull. EATCS.

[5]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[6]  Gérard P. Huet,et al.  Proofs by Induction in Equational Theories with Constructors , 1980, FOCS.

[7]  E. Paul,et al.  Proofs by Inducting in Equational Theories with Relations Between Constructors , 1984, Colloquium on Trees in Algebra and Programming.

[8]  D. Knuth,et al.  Simple Word Problems in Universal Algebras , 1983 .

[9]  Rod M. Burstall,et al.  Proving Properties of Programs by Structural Induction , 1969, Comput. J..

[10]  Laurent Fribourg Oriented Equational Clauses as a Programming Language , 1984, J. Log. Program..

[11]  Pierre Lescanne,et al.  Computer experiments with the REVE term rewriting system generator , 1983, POPL '83.

[12]  Pierre Lescanne,et al.  Proving inductive equalities algorithms and implementation , 1986 .

[13]  Joseph A. Goguen,et al.  Putting Theories Together to Make Specifications , 1977, IJCAI.

[14]  Christine Choppy,et al.  PETRIREVE: Proving Petri Net Properties with Rewriting Systems , 1985, RTA.

[15]  Joseph A. Goguen,et al.  How to Prove Algebraic Inductive Hypotheses Without Induction , 1980, CADE.

[16]  David R. Musser,et al.  On proving inductive properties of abstract data types , 1980, POPL '80.

[17]  Stavros S. Cosmadakis,et al.  Two Applications of Equational Theories to Database Theory , 1985, RTA.

[18]  Deepak Kapur,et al.  Proof by Consistency , 1987, Artif. Intell..

[19]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[20]  James J. Horning,et al.  Report on the Larch Shared Language , 1986, Sci. Comput. Program..