About the Correctness and Adequacy of PLUSS Specifications

In the context of algebraic specifications written in Pluss, this paper investigates various issues raised by the question: “Is my specification correct?”. Up to now the only ways to check the adequacy of a specification with respect to the problem to be solved are through running a prototype on appropriate examples, or through the use of the specification to prove consequent (expected) properties. Before this problem may be fully addressed, issues regarding the specification consistency and the correctness of the prototype w.r.t. the specification must be studied. In this paper, various issues concerning checking consistency and proving properties of PLUSS specifications are presented. It is investigated how general properties can be proved using an appropriate presentation of the specification that may be understood by a prototyping tool. While this study is done in the framework of the pluss specification language, it should be clear that most of the issues considered here arise in a similar way with other specification languages.

[1]  Stephen J. Garland,et al.  An Overview of LP, The Larch Power , 1989, RTA.

[2]  Michel Bidoit Pluss, un langage pour le développement de spécifications algébriques modulaires , 1989 .

[3]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1: Equations and Initial Semantics , 1985 .

[4]  Martin Wirsing,et al.  Structured Algebraic Specifications: A Kernel Language , 1986, Theor. Comput. Sci..

[5]  Stephen J. Garland,et al.  A Guide to LP, The Larch Prover , 1991 .

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

[7]  Harald Ganzinger,et al.  System support for modular order-sorted Horn clause specifications , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[8]  Hantao Zhang,et al.  REVEUR 4: A System for Validating Conditional Algebraic Specifications of Abstract Data Types , 1984, ECAI.

[9]  Hartmut Ehrig,et al.  ACT ONE - An Algebraic Specification Language with two Levels of Semantics , 1983, ADT.

[10]  Gilles Bernot,et al.  Good Functors... are Those Preserving Philosophy , 1987, Category Theory and Computer Science.

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

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

[13]  Stephen J. Garland,et al.  Debugging Larch Shared Language Specifications , 1990, IEEE Trans. Software Eng..

[14]  Donald Sannella,et al.  Building Specifications in an Arbitrary Institution , 1984, Semantics of Data Types.

[15]  Michel Bidoit,et al.  The Stratified Loose Approach: A Generalization of Initial and Loose Semantics , 1988, ADT.

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

[17]  Stéphane Kaplan,et al.  Simplifying Conditional Term Rewriting Systems: Unification, Termination and Confluence , 1987, J. Symb. Comput..

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

[19]  Marie-Claude Gaudel,et al.  Structuring and Modularizing Algebraic Specifications: The PLUSS Specification Language, Evolutions and Perspectives , 1992, STACS.

[20]  Stéphane Kaplan Positive/Negative Conditional Rewriting , 1988, MFCS.

[21]  Michel Bidoit,et al.  How to Make Algebraic Specifications More Understandable: An Experiment with the PLUSS Specification Language , 1989, Sci. Comput. Program..

[22]  Thierry Moineau Reutilisation de logiciel : une approche algebrique, son application a ada et les outils associes , 1991 .

[23]  Michel Bidoit,et al.  Proving the Correctness of Algebraically Specified Software: Modularity and Observability Issues , 1991, AMAST.

[24]  T. Lehmann The specification language of Obscure , 1988 .