Abstract
A machine-implemented system to support the reasoning about algebraic specifications is presented. The PAT-system is an attempt to ease design, analysis, and implementation of partial abstract data types. More precisely, the PAT-system
-
allows to write "axiomatic abstract types", i.e. parameterised hierarchical algebraic specifications, as well as "domain types", i.e. abstract types defined by domain equations,
-
introduces automatically the semantic conventions for the theory of partial abstract types including axioms for strictness (of partial functions) and for the validity of data type induction,
-
facilitates proofs of derived properties: PAT provides (semiautomatic) strategies for using derived rules of inference as well as for simplifying conditional equations. It allows to use a metalanguage — Edinburgh-ML /LCF 79/ — for generating and performing proofs interactively;
-
makes first attempts for analysing algebraic specifications by checking sufficient conditions for the existence of initial algebras (of hierachical specifications and/or parameterised specifications — for nonhierarchical and nonparameterised specifications initial algebras always exist) and for the existence of weakly terminal algebras,
-
supports development and proof of correctness of implementations; in particular it is possible to verify implementations of "axiomatic types" by "domain types".
The PAT-system is implemented in Edinburgh-ML being part of an interactive verification system, Edinburgh-LCF, which seems particularly appropriate to support proofs with algebraic specifications.
The system PAT tries to use as much as possible the facilities and properties of the underlying Edinburgh-LCF system. Only necessary changes — such as "smash" product instead of "cartesian" product — and extensions — such as the introduction of certain induction schemata — are made.
A short characterisation of LCF and a description of the PAT-system is given. The PAT-system is shortly compared with other systems manipulating algebraic specifications. Finally, as an example for the reasoning with and about algebraic specifications priority queues over linearly ordered data types are described as a parameterised abstract type, PQ.
This research was partially sponsored by the Sonderforschungsbereich 49, Programmiertechnik, Munich
Preview
Unable to display preview. Download preview PDF.
References
J.A. Goguen, J.W. Thatcher, E.W. Wagner: An initial algebra approach to the specification, correctness and Implementation of abstract data types. In: Current Trends in Programming Methodology IV. Prentice Hall, 80–144, 1978
F.L. Bauer, M. Broy (eds.): Program Construction. LNCS 69
F.L. Bauer, H. Wössner: Algorithmic language and program development. Berlin: Springer 1981
M. Bergman, P. Deransart: Abstract data types and rewriting systems: application to the programming of algebraic abstract data types in Prolog. 6th CAAP, Genova, March 1981. LNCS 112
J.A. Bergstra, M. Broy, J.V. Tucker, M. Wirsing: On the power of algebraic specifications. 10th MFCS, 1981, LNCS 118
M. Broy, B. Möller, P. Pepper, M. Wirsing: A model-independent approach to implementations of abstract data types. In: A. Salwicki (ed.): Algorithmic logic and the programming language LOGLAN. August 80. To appear in LNCS
M. Broy, P. Pepper: Program development as a formal activity. IEEE Transactions of Software Engineering 7:1 (1981)
M. Broy, M. Wirsing: Partial abstract types. To appear in Acta Informatica. Preliminary version: TUM-I8018, 1980
M. Broy, M. Wirsing: Partial recursive functions and abstract data types. Bull. EATCS 11, June 1980
M. Broy, M. Wirsing: On the algebraic extensions of abstract data types. In J. Diaz, I. Ramos (eds.): Formalization of programming concepts. LNCS 107, 244–251
M. Broy, M. Wirsing: On the algebraic specification of nondeterministic programming languages. In: E. Astesiano, C. Böhm (eds.): 6th CAAP, Genova, 1981. LNCS 112, 162–179.
R.M. Burstall, J.A. Goguen: Putting theories together to make specifications. Proc. IJCAI, MIT, Cambridge, Mass. 1045–1058, 1977
R.M. Burstall, J.A. Goguen: The semantics of CLEAR: a specification language. Proc. Copenhagen Winter School on Abstract Software Specifications, 1980
Report on a wide spectrum language for program specification and development. TUM-I8104, May 1981
A. Cohn: Abstract types in LCF. Unpublished manuscript
W. Dosch, M. Wirsing, G. Ausiello, G.T. Mascari: Polynomials — the specification, analysis and development of an abstract data type. 10. GI-Jahrestagung, Saarbrükken, Oktober 1980, Informatik-Fachberichte 33, 306–320 (1980)
H.P. Ehrig: On realization and implementation. 10th MFCS. LNCS 118
H. Ehrig, H.J. Kreowski, J.W. Thatcher, E.G. Wagner, J.B. Wright: Parameterized data types in algebraic specification languages. 7th ICALP, LNCS 85, 157–168, 1980
S.L. Gerhart, D.R. Musser, D.H. Thompson, D.A. Baker, R.L. Bates, R.W. Erickson, R.L. London, D.G. Taylor, D.S. Wile: An overview of AFFIRM: A specification and and verification system. IFIP 80
J.A. Goguen, J. Tardo: An introduction to reliable software. In: Specification of relaible software, IEEE 1979
J.A. Goguen, R.M. Burstall: CAT, a system for the structured elaboration of correct programs from structured specifications. SRI, Techn. Rep. CSL-118, Oct. 1980
J.V. Guttag: The specification and application to programming of abstract data types. Ph. D. thesis, Univ. of Toronto, 1975
M. Gordon, R. Milner, C. Wadsworth: Edinburgh LCF, LNCS 78 (1979)
J. Leszczylowski: An experiment with Edinburgh LCF. 5th Conf. on Automated Deduction, France, 1980
J. Leszczylowski: The MATE-system. In preparation
B. Liskov, S. Zilles: Programming with abstract data types. Proc. ACM Sigplan Conference on Very High Level Languages, Sigplan Notices 9:4, 55–59, 1974
J. Loeckx: Proving properties of algorithmic specifications of abstract data types in AFFIRM. ISI, AFFIRM Memo, July 1980
P. Mosses: A semantic algebra for binding constructs. Proc. Formalization of Programming Concepts, LNCS 107, 408–419, 1981
R. Nakajima, T. Yusa, K. Kojima: the IOTA programming system — a support system for hierarchical and modular programming. IFIP 80
H. Reichel: Theorie der Aequoide. Dissertation B. Humboldt Universität Berlin, 1979
D. Sannella: Proving theorems in CLEAR theories. In preparation
D. Sannella, M. Wirsing: Implementations of parameterised algebraic specifications. 9th ICALP, Aarhus (1982). To appear.
U. Bartels, W. Althoff, P. Raulefs: APE: An expert system for automatic programming from abstract specifications of data types and algorithms. Universität Bonn, Institut für Informatik III, Memo SEKI-BN-81-01 (1981)
M. Wand: Final algebra semantics and data type extensions. Indiana University TR65, 1978
M. Wirsing, P. Pepper, H. Partsch, W. Dosch, M. Broy: On hierarchies of abstract data types. Institut für Informatik, TU München, TUM-I8007, 1980
M. Wirsing, M. Broy: An analysis of semantic models for algebraic specifications. Int. Summer School on Theoretical Foundations of Programming Methodology, August 1981
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1982 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Leszczylowski, J., Wirsing, M. (1982). A system for reasoning within and about algebraic specifications. In: Dezani-Ciancaglini, M., Montanari, U. (eds) International Symposium on Programming. Programming 1982. Lecture Notes in Computer Science, vol 137. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-11494-7_18
Download citation
DOI: https://doi.org/10.1007/3-540-11494-7_18
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-11494-9
Online ISBN: 978-3-540-39184-5
eBook Packages: Springer Book Archive