Skip to main content

Swinging data types

Syntax, semantics, and theory

  • Contributions
  • Conference paper
  • First Online:
Recent Trends in Data Type Specification (ADT 1995, COMPASS 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1130))

  • 163 Accesses

Abstract

Initial structures are appropriate for modelling constructor-based data types because they fit the intuition and admit inductive theorem proving. In practice, the latter requires a distinction between constructors and defined functions and an axiomatization that complies with the constructor discipline. This badly suits non- free or permutative types such as sets, bags and maps and is yet less reasonable when infinite structures like streams or processes come into play. Instead, non-free as well as infinite structures should be regarded as dynamic objects and identified through observable reactions (observers, inquiries, attributes) upon received messages (transitions, actions, methods) rather than by constructors they are built of. The intended model is based on an extensional, contextual, behavioural, observational or bisimilarity relation and given by the final object in a category of conservative structures. This enforces a hierarchical approach because the nature of attributes is to map higher-level to lower-level objects. Data types with both constructor and action sorts are split into swinging chains of specifications each of which extends its predecessor by either a constructor type or an action type. Constructor types are characterized by visible domains, inductively defined total functions, structural equality and safety conditions expressed as Horn clauses. Action types are given by hidden, but — via predecessors in the chain of specifications — observable domains, partial functions and coinductively defined behavioural equality and liveness conditions. The canonical model of a swinging specification is a chain of initial and final models. For proof-theoretical purposes action types are transformed into their Horn clause completions whereby the semantics of the whole specification reduces to a chain of initial models captured by uniform proof rules and induction principles.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. S. Abramsky, C.-H. Luke Ong, Full Abstraction in the Lazy λ-Calculus, Information and Computation 105 (1993) 159–267

    Google Scholar 

  2. K.R. Apt, Logic Programming, in: J. van Leeuwen, ed., Handbook of Theoretical Computer Science, Elsevier (1990) 493–574

    Google Scholar 

  3. J.C.M. Baeten, W.P. Weijland, Process Algebra Cambridge University Press 1990

    Google Scholar 

  4. M. Barr, Terminal Coalgebras in Well-founded Set Theory, Theoretical Computer Science 114 (1993) 299–315

    Google Scholar 

  5. J.A. Bergstra, J.V. Tucker, Top-down Design and the Algebra of Communicating Processes, Science of Computer Programming 5 (1985) 171–199

    Google Scholar 

  6. M. Bidoit, R. Hennicker, Behavioural Theories and the Proof of Behavioural Properties, Report LIENS-95-5, DMI, LIENS Paris 1995

    Google Scholar 

  7. M. Bidoit, R. Hennicker, M. Wirsing, Behavioural and Abstractor Specifications, Science of Computer Programming 25 (1995) 149–186

    Google Scholar 

  8. R. Bird, Ph. Wadler, Introduction to Functional Programming, Prentice Hall 1988

    Google Scholar 

  9. S.L. Bloom, Varieties of Ordered Algebras, J. Computer and System Sciences 13 (1976) 200–212

    Google Scholar 

  10. Y. Chen, M.J. O'Donnell, Infinite Terms and Infinite Rewritings, Proc. CTRS '90, Springer LNCS 516 (1990) 115–126

    Google Scholar 

  11. R. Cockett, T. Fukushima, About Charity, Report, University of Calgary 1992

    Google Scholar 

  12. H. Ehrig, B. Mahr, Fundamentals of Algebraic Specification 1, Springer 1985

    Google Scholar 

  13. H. Ehrig, F. Parisi-Presicce, P. Boehm, C. Riekhoff, C. Dimitrovici, M. Grosse-Rhode, Combining Data Type and Recursive Process Specifications Using Projection Algebras, Theoretical Computer Science 71 (1990) 347–380

    Google Scholar 

  14. V. Giarratana, F. Gimona, U. Montanari, Observability Concepts in Abstract Data Type Specifications, Proc. MFCS '76, Springer LNCS 45 (1976) 576–587

    Google Scholar 

  15. J.A. Goguen, R. Diaconescu, Towards an Algebraic Semantics for the Object Paradigm, Proc. 9th ADT Workshop, Springer LNCS 785 (1994) 1–29

    Google Scholar 

  16. J.A. Goguen, J. Meseguer, Eqlog: Equality, Types, and Generic Modules for Logic Programming, in: D. DeGroot, G. Lindstrom, Logic Programming: Functions, Relations, and Equations, Prentice-Hall (1986) 295–363

    Google Scholar 

  17. J.A. Goguen, J.W. Thatcher, E.G. Wagner, An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types, in: R. Yeh, ed., Current Trends in Programming Methodology 4, Prentice-Hall (1978) 80–149

    Google Scholar 

  18. J.A. Goguen, J.W. Thatcher, E.G. Wagner, J.B. Wright, Initial Algebra Semantics and Continuous Algebras, J. ACM 24 (1977) 68–95

    Google Scholar 

  19. A.D. Gordon, A Tutorial on Co-induction and Functional Programming, Proc. Functional Programming Glasgow 1994, Springer (1995) 78–95

    Google Scholar 

  20. J.V. Guttag, J.J. Horning, Larch: Languages and Tools for Formal Specification, Springer 1993

    Google Scholar 

  21. T. Hagino, Codatatypes in ML, J. Symbolic Computation 8 (1989) 629–650

    Google Scholar 

  22. R. Hennicker, Context Induction: A Proof Principle for Behavioural Abstractions, Formal Aspects of Computing (1991) 326–345

    Google Scholar 

  23. S. Hölldobler, Foundations of Equational Logic Programming, Springer (1989)

    Google Scholar 

  24. J. Jaffar, J.-L. Lassez, M.J. Maher, A Theory of Complete Logic Programs with Equality, J. Logic Programming 3 (1984) 211–223

    Google Scholar 

  25. J. Jaffar, J.-L. Lassez, Constraint Logic Programming, Proc. POPL '87 (1987) 111–119

    Google Scholar 

  26. J.-P. Jouannaud, H. Kirchner, Completion of a Set of Rules Modulo a Set of Equations, SIAM J. Computing 15 (1986) 1155–1194

    Google Scholar 

  27. S. Kamin, Final Data Type Specifications: A New Data Type Specification Method, ACM TOPLAS 5 (1983) 97–123

    Google Scholar 

  28. J.-L. Lassez, V.L. Nguyen, E.A. Sonenberg, Fixed Point Theorems and Semantics: A Folk Tale, Information Processing Letters 14 (1982) 112–116

    Google Scholar 

  29. D.J. Lehmann, M.B. Smyth, Algebraic Specification of Data Types: A Synthetic Approach, Mathematical Systems Theory 14 (1981) 97–139

    Google Scholar 

  30. M.R. Levy, T.S.E. Maibaum, Continuous Data Types, SIAM J. Computing 11 (1982) 201–216

    Google Scholar 

  31. J. Loeckx, K. Sieber, The Foundations of Program Verification, 2nd ed., Teubner 1987

    Google Scholar 

  32. Z. Manna, Mathematical Theory of Computation, McGraw-Hill 1974

    Google Scholar 

  33. J. Meseguer, J.A. Goguen, Initiality, Induction and Computability, in: M. Nivat, J. Reynolds, eds., Algebraic Methods in Semantics, Cambridge University Press (1985) 459–541

    Google Scholar 

  34. R. Milner, Communication and Concurrency, Prentice-Hall (1989)

    Google Scholar 

  35. B. Möller, On the Algebraic Specification of Infinite Objects: Ordered and Continuous Models of Algebraic Types, Acta Informatics 22 (1984) 537–578

    Google Scholar 

  36. J.H. Morris, Another Recursion Induction Principle, Communications ACM 14 (1971) 351–354

    Google Scholar 

  37. P. Nivela, F. Orejas, Initial Behaviour Semantics for Algebraic Specifications, Proc. 5th ADT Workshop, Springer LNCS 332 (1988) 184–207

    Google Scholar 

  38. M. Nivat, On the Interpretation of Recursive Polyadic Program Schemes, Symposia Mathematica 15 (1975) 255–281

    Google Scholar 

  39. P. Padawitz, Equational Data Type Specifications and Recursive Program Schemes, Proc. Formal Description of Programming Concepts II, North-Holland (1983) 305–328

    Google Scholar 

  40. P. Padawitz, Computing in Horn Clause Theories, Springer 1988

    Google Scholar 

  41. P. Padawitz, Deduction and Declarative Programming, Cambridge University Press 1992

    Google Scholar 

  42. P. Padawitz, Expander: A System for Testing and Verifying Functional-Logic Programs, Report No. 522/1994, FB Informatik, Universität Dortmund 1994

    Google Scholar 

  43. P. Padawitz, Inductive Theorem Proving for Design Specifications, Report No. 533/1994, FB Informatik, Universität Dortmund 1994, to appear in J. Symbolic Computation

    Google Scholar 

  44. P. Padawitz, Swinging Data Types: The Dielectic between Actions and Constructors, Report FB Informatik, Universität Dortmund 1995, available from http://ls5-www.Informatik.uni-dortmund.de/user/peter

    Google Scholar 

  45. H. Reichel, An Approach to Object Semantics based on Terminal Coalgebras, Report, Fakultät Informatik, TU Dresden 1994

    Google Scholar 

  46. R. Reiter, On Closed World Data Bases, Proc. Logic and Data Bases, Plenum Press (1978)

    Google Scholar 

  47. J. Rutten, A Structural Coinduction Theorem, Proc. MFPS '93, Springer LNCS 802 (1993) 83–102

    Google Scholar 

  48. D. Sannella, A. Tarlecki, On Observational Equivalence and Algebraic Specification, J. Computer and System Sciences 34 (1987) 150–178

    Google Scholar 

  49. D. Scott, Outline of a Mathematical Theory of Computation, Proc. Information Sciences and Systems, Princeton (1970) 169–176

    Google Scholar 

  50. M. Stickel, Automated Deduction by Theory Resolution, J. Automated Reasoning 1 (1985) 333–356

    Google Scholar 

  51. A. Tarlecki, M. Wirsing, Continuous Abstract Data Types, Fundamenta Informaticae 9 (1986) 95–126

    Google Scholar 

  52. M. Wand, Final Algebra Semantics and Data Type Extensions, J. Computer and System Sciences 19 (1979) 27–44

    Google Scholar 

  53. M. Wirsing, P. Pepper, H. Partsch, W. Dosch, M. Broy, On Hierarchies of Abstract Data Types, Acta Informatica 20 (1983) 1–33

    Google Scholar 

  54. M. Wirsing, Algebraic Specification, in: J. van Leeuwen, ed., Handbook of Theoretical Computer Science, Elsevier (1990) 675–788

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Magne Haveraaen Olaf Owe Ole-Johan Dahl

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Padawitz, P. (1996). Swinging data types. In: Haveraaen, M., Owe, O., Dahl, OJ. (eds) Recent Trends in Data Type Specification. ADT COMPASS 1995 1995. Lecture Notes in Computer Science, vol 1130. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61629-2_56

Download citation

  • DOI: https://doi.org/10.1007/3-540-61629-2_56

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61629-0

  • Online ISBN: 978-3-540-70642-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics