On the Practical Need for Abstraction Relations to Verify Abstract Data Type Representations

The typical correspondence between a concrete representation and an abstract conceptual value of an abstract data type (ADT) variable (object) is a many-to-one function. For example, many different pointer aggregates give rise to exactly the same binary tree. The theoretical possibility that this correspondence generally should be relational has long been recognized. By using a nontrivial ADT for handling an optimization problem, the authors show why the need for generalizing from functions to relations arises naturally in practice. Making this generalization is among the steps essential for enhancing the practical applicability of formal reasoning methods to industrial-strength software systems.

[1]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[2]  Stephen H. Edwards,et al.  Characterizing observability and controllability of software components , 1996, Proceedings of Fourth IEEE International Conference on Software Reuse.

[3]  Tobias Nipkow Are Homomorphisms Sufficient for Behavioural Implementations of Deterministic and Nondeterministic Data Types? , 1987, STACS.

[4]  Murali Sitaraman,et al.  Recasting algorithms to encourage reuse , 1994, IEEE Software.

[5]  Lonnie R. Welch,et al.  On Specification of Reusable Software Components , 1993, Int. J. Softw. Eng. Knowl. Eng..

[6]  Jeannette M. Wing,et al.  A New Definition of the Subtype Relation , 1993, ECOOP.

[7]  Bruce W. Weide,et al.  Copying and Swapping: Influences on the Design of Reusable Software Components , 1991, IEEE Trans. Software Eng..

[8]  Bruce Weide,et al.  Component-based software using RESOLVE , 1994, SOEN.

[9]  Murali Sitaraman,et al.  Special feature: component-based software using resolve , 1994 .

[10]  Amílcar Sernadas,et al.  Algebraic Implementation of Objects over Objects , 1989, REX Workshop.

[11]  Mandayam K. Srivas,et al.  Expressiveness of the operation set of a data abstraction , 1980, POPL '80.

[12]  C. A. R. Hoare,et al.  Data Refinement Refined , 1986, ESOP.

[13]  Greg Nelson,et al.  A generalization of Dijkstra's calculus , 1989, ACM Trans. Program. Lang. Syst..

[14]  Edmund Kazmierczak,et al.  Cogito: a Methodology and System for Formal Software Development , 1995, Int. J. Softw. Eng. Knowl. Eng..

[15]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[16]  Stephen A. Cook,et al.  Soundness and Completeness of an Axiom System for Program Verification , 1978, SIAM J. Comput..

[17]  Oliver Schoett,et al.  Behavioural Correctness of Data Representations , 1990, Sci. Comput. Program..

[18]  Nancy A. Lynch Multivalued Possibilities Mappings , 1989, REX Workshop.

[19]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[20]  William F. Ogden,et al.  Modular Verification of Ada Generics , 1991, Comput. Lang..

[21]  William F. Ogden,et al.  Modular Verification of Data Abstractions with Shared Realizations , 1994, IEEE Trans. Software Eng..