A system for reasoning within and about algebraic specifications

  • Jaoek Leszczylowski
  • Martin Wirsing
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 137)


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.


Priority Queue Domain Type Structural Induction Domain Equation Abstract Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. /ADJ 78/.
    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, 1978Google Scholar
  2. /Bauer, Broy 79/.
    F.L. Bauer, M. Broy (eds.): Program Construction. LNCS 69Google Scholar
  3. /Bauer, Wössner 81/.
    F.L. Bauer, H. Wössner: Algorithmic language and program development. Berlin: Springer 1981Google Scholar
  4. /Bergman, Deransart 81/.
    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 112Google Scholar
  5. /Bergstra et al. 81/
    J.A. Bergstra, M. Broy, J.V. Tucker, M. Wirsing: On the power of algebraic specifications. 10th MFCS, 1981, LNCS 118Google Scholar
  6. /Broy et al. 80/
    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 LNCSGoogle Scholar
  7. /Broy, Pepper 81/.
    M. Broy, P. Pepper: Program development as a formal activity. IEEE Transactions of Software Engineering 7:1 (1981)Google Scholar
  8. /Broy, Wirsing 80a/.
    M. Broy, M. Wirsing: Partial abstract types. To appear in Acta Informatica. Preliminary version: TUM-I8018, 1980Google Scholar
  9. /Broy, Wirsing 80b/.
    M. Broy, M. Wirsing: Partial recursive functions and abstract data types. Bull. EATCS 11, June 1980Google Scholar
  10. /Broy, Wirsing 81a/.
    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–251Google Scholar
  11. /Broy, Wirsing 81b/.
    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.Google Scholar
  12. /Burstall, Goguen 77/.
    R.M. Burstall, J.A. Goguen: Putting theories together to make specifications. Proc. IJCAI, MIT, Cambridge, Mass. 1045–1058, 1977Google Scholar
  13. /Burstall, Goguen 80/.
    R.M. Burstall, J.A. Goguen: The semantics of CLEAR: a specification language. Proc. Copenhagen Winter School on Abstract Software Specifications, 1980Google Scholar
  14. /CIP 81/.
    Report on a wide spectrum language for program specification and development. TUM-I8104, May 1981Google Scholar
  15. /Cohn 80/.
    A. Cohn: Abstract types in LCF. Unpublished manuscriptGoogle Scholar
  16. /Dosch et al. 80/
    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)Google Scholar
  17. /Ehrig 81/.
    H.P. Ehrig: On realization and implementation. 10th MFCS. LNCS 118Google Scholar
  18. /Ehrig et al 81/.
    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, 1980Google Scholar
  19. /Gerhart et al. 80/
    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 80Google Scholar
  20. /Goguen, Tardo 79/.
    J.A. Goguen, J. Tardo: An introduction to reliable software. In: Specification of relaible software, IEEE 1979Google Scholar
  21. /Goguen, Burstall 80/.
    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. 1980Google Scholar
  22. /Guttag 75/.
    J.V. Guttag: The specification and application to programming of abstract data types. Ph. D. thesis, Univ. of Toronto, 1975Google Scholar
  23. /LCF 79/.
    M. Gordon, R. Milner, C. Wadsworth: Edinburgh LCF, LNCS 78 (1979)Google Scholar
  24. /Leszczylowski 81a/.
    J. Leszczylowski: An experiment with Edinburgh LCF. 5th Conf. on Automated Deduction, France, 1980Google Scholar
  25. /Leszczylowski 81b/.
    J. Leszczylowski: The MATE-system. In preparationGoogle Scholar
  26. /Liskov, Zilles 74/.
    B. Liskov, S. Zilles: Programming with abstract data types. Proc. ACM Sigplan Conference on Very High Level Languages, Sigplan Notices 9:4, 55–59, 1974Google Scholar
  27. /Loeckx 80/.
    J. Loeckx: Proving properties of algorithmic specifications of abstract data types in AFFIRM. ISI, AFFIRM Memo, July 1980Google Scholar
  28. /Mosses 81/.
    P. Mosses: A semantic algebra for binding constructs. Proc. Formalization of Programming Concepts, LNCS 107, 408–419, 1981Google Scholar
  29. /Nakajima et al. 80/
    R. Nakajima, T. Yusa, K. Kojima: the IOTA programming system — a support system for hierarchical and modular programming. IFIP 80Google Scholar
  30. /Reichel 79/.
    H. Reichel: Theorie der Aequoide. Dissertation B. Humboldt Universität Berlin, 1979Google Scholar
  31. /Sannella 81/.
    D. Sannella: Proving theorems in CLEAR theories. In preparationGoogle Scholar
  32. /Sannella, Wirsing 81/.
    D. Sannella, M. Wirsing: Implementations of parameterised algebraic specifications. 9th ICALP, Aarhus (1982). To appear.Google Scholar
  33. /SEKI 81/.
    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)Google Scholar
  34. /Wand 78/.
    M. Wand: Final algebra semantics and data type extensions. Indiana University TR65, 1978Google Scholar
  35. /Wirsing et al. 80/
    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, 1980Google Scholar
  36. /Wirsing, Broy 81/.
    M. Wirsing, M. Broy: An analysis of semantic models for algebraic specifications. Int. Summer School on Theoretical Foundations of Programming Methodology, August 1981Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1982

Authors and Affiliations

  • Jaoek Leszczylowski
    • 1
  • Martin Wirsing
    • 2
  1. 1.Institute of Computer SciencePolish Academy of SciencesWarszawa, PKiNPoland
  2. 2.Institut für InformatikTechnische Universität MünchenMünchen 2FRG

Personalised recommendations