Hidden coinduction: behavioural correctness proofs for objects

This paper unveils and motivates an ambitious programme of hidden algebraic research in software engineering. We begin with an outline of our general goals, continue with an overview of results, and conclude with a discussion of some future plans. The main contribution is powerful hidden coinduction techniques for proving behavioural correctness of concurrent systems, and several mechanical proofs are given using OBJ3. We also show how modularization, bisimulation, transition systems, concurrency and combinations of the functional, constraint, logic and object paradigms fit into hidden algebra.

[1]  José Meseguer,et al.  Universal Realization, Persistent Interconnection and Implementation of Abstract Modules , 1982, ICALP.

[2]  Michael Barr,et al.  Terminal Coalgebras in Well-Founded Set Theory , 1993, Theor. Comput. Sci..

[3]  Hartmut Ehrig,et al.  Algebraic Implementation of Abstract Data Types , 1982, Theor. Comput. Sci..

[4]  Joseph A. Goguen,et al.  Towards an Algebraic Semantics for the Object Paradigm , 1992, COMPASS/ADT.

[5]  Joseph A. Goguen,et al.  Proving and Rewriting , 1990, ALP.

[6]  Razvan Diaconescu,et al.  A Category-Based Equational Logic Semantics to Constraint Programming , 1995, COMPASS/ADT.

[7]  Bart Jacobs,et al.  Mongruences and Cofree Coalgebras , 1995, AMAST.

[8]  Martin Wirsing,et al.  Behavioural and Abstractor Specifications , 1995, Sci. Comput. Program..

[9]  Fernando Orejas,et al.  Algebraic implementation of abstract data types: a survey of concepts and new compositionality results , 1996, Mathematical Structures in Computer Science.

[10]  G. Malcolm,et al.  Data Structures and Program Transformation , 1990, Sci. Comput. Program..

[11]  Corina Cîrstea,et al.  Coalgebra semantics for hidden algebra: Parameterised objects an inheritance , 1997, WADT.

[12]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1977, CACM.

[13]  Joseph A. Goguen,et al.  A Hidden Herbrand Theorem , 1998, PLILP/ALP.

[14]  John V. Guttag,et al.  The specification and application to programming of abstract data types. , 1975 .

[15]  Grigore Rosu,et al.  Hidden Congruent Deduction , 1998, FTP.

[16]  Gordon D. Plotkin,et al.  Towards a mathematical operational semantics , 1997, Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science.

[17]  C. A. R. Hoare,et al.  Proof of correctness of data representation , 1975, Language Hierarchies and Interfaces.

[18]  Jan J. M. M. Rutten,et al.  Universal coalgebra: a theory of systems , 2000, Theor. Comput. Sci..

[19]  Peter Aczel,et al.  A Final Coalgebra Theorem , 1989, Category Theory and Computer Science.

[20]  José Meseguer,et al.  Order-Sorted Algebra I: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations , 1992, Theor. Comput. Sci..

[21]  Joseph A. Goguen,et al.  Requirements engineering as the reconciliation of social and technical issues , 1994 .

[22]  Robin Milner,et al.  Co-Induction in Relational Semantics , 1991, Theor. Comput. Sci..

[23]  Andrew D. Gordon Bisimilarity as a theory of functional programming , 1995, MFPS.

[24]  Bart Jacobs,et al.  Invariants, Bisimulations and the Correctness of Coalgebraic Refinements , 1997, AMAST.

[25]  Joseph A. Goguen,et al.  Institutions: abstract model theory for specification and programming , 1992, JACM.

[26]  Mitchell Wand,et al.  Final Algebra Semantics and Data Type Extensions , 1979, J. Comput. Syst. Sci..

[27]  Horst Reichel,et al.  An approach to object semantics based on terminal co-algebras , 1995, Mathematical Structures in Computer Science.

[28]  Joseph A. Goguen,et al.  Algebraic semantics of imperative programs , 1996, Foundations of computing series.

[29]  J. Meseguer,et al.  Order-Sorted Algebra Solves the Constructor-Selector, Multiple Representation, and Coercion Problems , 1993, Inf. Comput..

[30]  Joseph A. Goguen,et al.  Towards a Provably Correct Compiler for OBJ3 , 1994, PLILP.

[31]  Glynn Winskel,et al.  Seminar on Concurrency: Carnegie-Mellon University Pittsburgh, PA, July 9-11, 1984 , 1985 .

[32]  Joseph A. Goguen,et al.  An Object-Oriented Tool for Tracing Requirements , 1996, IEEE Softw..

[33]  Joseph A. Goguen,et al.  An Oxford survey of order sorted algebra , 1994, Mathematical Structures in Computer Science.

[34]  Grant Malcolm,et al.  Behavioural Equivalence, Bisimulation, and Minimal Realisation , 1995, COMPASS/ADT.

[35]  Grigore Rosu,et al.  Distributed cooperative formal methods tools , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[36]  Rolf Hennicker,et al.  Context Induction: a Proof Principle for Behavioural Abstractions , 1990, DISCO.

[37]  Tatsuya Hagino,et al.  A Typed Lambda Calculus with Categorical Type Constructors , 1987, Category Theory and Computer Science.

[38]  Hartmut Ehrig,et al.  Abstract and behaviour module specifications , 1999, Mathematical Structures in Computer Science.