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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
S. Abramsky, C.-H. Luke Ong, Full Abstraction in the Lazy λ-Calculus, Information and Computation 105 (1993) 159–267
K.R. Apt, Logic Programming, in: J. van Leeuwen, ed., Handbook of Theoretical Computer Science, Elsevier (1990) 493–574
J.C.M. Baeten, W.P. Weijland, Process Algebra Cambridge University Press 1990
M. Barr, Terminal Coalgebras in Well-founded Set Theory, Theoretical Computer Science 114 (1993) 299–315
J.A. Bergstra, J.V. Tucker, Top-down Design and the Algebra of Communicating Processes, Science of Computer Programming 5 (1985) 171–199
M. Bidoit, R. Hennicker, Behavioural Theories and the Proof of Behavioural Properties, Report LIENS-95-5, DMI, LIENS Paris 1995
M. Bidoit, R. Hennicker, M. Wirsing, Behavioural and Abstractor Specifications, Science of Computer Programming 25 (1995) 149–186
R. Bird, Ph. Wadler, Introduction to Functional Programming, Prentice Hall 1988
S.L. Bloom, Varieties of Ordered Algebras, J. Computer and System Sciences 13 (1976) 200–212
Y. Chen, M.J. O'Donnell, Infinite Terms and Infinite Rewritings, Proc. CTRS '90, Springer LNCS 516 (1990) 115–126
R. Cockett, T. Fukushima, About Charity, Report, University of Calgary 1992
H. Ehrig, B. Mahr, Fundamentals of Algebraic Specification 1, Springer 1985
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
V. Giarratana, F. Gimona, U. Montanari, Observability Concepts in Abstract Data Type Specifications, Proc. MFCS '76, Springer LNCS 45 (1976) 576–587
J.A. Goguen, R. Diaconescu, Towards an Algebraic Semantics for the Object Paradigm, Proc. 9th ADT Workshop, Springer LNCS 785 (1994) 1–29
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
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
J.A. Goguen, J.W. Thatcher, E.G. Wagner, J.B. Wright, Initial Algebra Semantics and Continuous Algebras, J. ACM 24 (1977) 68–95
A.D. Gordon, A Tutorial on Co-induction and Functional Programming, Proc. Functional Programming Glasgow 1994, Springer (1995) 78–95
J.V. Guttag, J.J. Horning, Larch: Languages and Tools for Formal Specification, Springer 1993
T. Hagino, Codatatypes in ML, J. Symbolic Computation 8 (1989) 629–650
R. Hennicker, Context Induction: A Proof Principle for Behavioural Abstractions, Formal Aspects of Computing (1991) 326–345
S. Hölldobler, Foundations of Equational Logic Programming, Springer (1989)
J. Jaffar, J.-L. Lassez, M.J. Maher, A Theory of Complete Logic Programs with Equality, J. Logic Programming 3 (1984) 211–223
J. Jaffar, J.-L. Lassez, Constraint Logic Programming, Proc. POPL '87 (1987) 111–119
J.-P. Jouannaud, H. Kirchner, Completion of a Set of Rules Modulo a Set of Equations, SIAM J. Computing 15 (1986) 1155–1194
S. Kamin, Final Data Type Specifications: A New Data Type Specification Method, ACM TOPLAS 5 (1983) 97–123
J.-L. Lassez, V.L. Nguyen, E.A. Sonenberg, Fixed Point Theorems and Semantics: A Folk Tale, Information Processing Letters 14 (1982) 112–116
D.J. Lehmann, M.B. Smyth, Algebraic Specification of Data Types: A Synthetic Approach, Mathematical Systems Theory 14 (1981) 97–139
M.R. Levy, T.S.E. Maibaum, Continuous Data Types, SIAM J. Computing 11 (1982) 201–216
J. Loeckx, K. Sieber, The Foundations of Program Verification, 2nd ed., Teubner 1987
Z. Manna, Mathematical Theory of Computation, McGraw-Hill 1974
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
R. Milner, Communication and Concurrency, Prentice-Hall (1989)
B. Möller, On the Algebraic Specification of Infinite Objects: Ordered and Continuous Models of Algebraic Types, Acta Informatics 22 (1984) 537–578
J.H. Morris, Another Recursion Induction Principle, Communications ACM 14 (1971) 351–354
P. Nivela, F. Orejas, Initial Behaviour Semantics for Algebraic Specifications, Proc. 5th ADT Workshop, Springer LNCS 332 (1988) 184–207
M. Nivat, On the Interpretation of Recursive Polyadic Program Schemes, Symposia Mathematica 15 (1975) 255–281
P. Padawitz, Equational Data Type Specifications and Recursive Program Schemes, Proc. Formal Description of Programming Concepts II, North-Holland (1983) 305–328
P. Padawitz, Computing in Horn Clause Theories, Springer 1988
P. Padawitz, Deduction and Declarative Programming, Cambridge University Press 1992
P. Padawitz, Expander: A System for Testing and Verifying Functional-Logic Programs, Report No. 522/1994, FB Informatik, Universität Dortmund 1994
P. Padawitz, Inductive Theorem Proving for Design Specifications, Report No. 533/1994, FB Informatik, Universität Dortmund 1994, to appear in J. Symbolic Computation
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
H. Reichel, An Approach to Object Semantics based on Terminal Coalgebras, Report, Fakultät Informatik, TU Dresden 1994
R. Reiter, On Closed World Data Bases, Proc. Logic and Data Bases, Plenum Press (1978)
J. Rutten, A Structural Coinduction Theorem, Proc. MFPS '93, Springer LNCS 802 (1993) 83–102
D. Sannella, A. Tarlecki, On Observational Equivalence and Algebraic Specification, J. Computer and System Sciences 34 (1987) 150–178
D. Scott, Outline of a Mathematical Theory of Computation, Proc. Information Sciences and Systems, Princeton (1970) 169–176
M. Stickel, Automated Deduction by Theory Resolution, J. Automated Reasoning 1 (1985) 333–356
A. Tarlecki, M. Wirsing, Continuous Abstract Data Types, Fundamenta Informaticae 9 (1986) 95–126
M. Wand, Final Algebra Semantics and Data Type Extensions, J. Computer and System Sciences 19 (1979) 27–44
M. Wirsing, P. Pepper, H. Partsch, W. Dosch, M. Broy, On Hierarchies of Abstract Data Types, Acta Informatica 20 (1983) 1–33
M. Wirsing, Algebraic Specification, in: J. van Leeuwen, ed., Handbook of Theoretical Computer Science, Elsevier (1990) 675–788
Author information
Authors and Affiliations
Editor information
Rights 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