Swinging types=functions+relations+transition systems

Swinging types provide an integrated framework for specifying software on the basis of many-sorted logic in terms of \static" functions and relations as well as \dynamic" transition systems. Swinging types combine equational, Horn and modal logic for the purpose of using evaluation and proof rules from all three logics for rapid prototyping and verication. A swinging specication separates from each other visible sorts that denote domains of data identied by their structure; hidden sorts that denote domains of data identied by their behavior in response to observers; -predicates, i.e., least relations representing inductive(ly provable) properties of a system; and -predicates, i.e., greatest relations representing complementary \coinductive" properties, which often describe behavioral aspects \in the innity". Programming paradigms, such as functional, relational or state-oriented ones, and specication formalisms, such as algebraic, set-theoretic, rule-based, net-based, coalgebraic, order-theoretic ones, usually handle either static or dynamic components, either structural or behavioral aspects of a system. Swinging types admit the integrated design and analysis of these components and aspects. An integrated model is obtained naturally if all entities (objects, states, etc.) of the system are presented as terms built up of constructors for visible or hidden sorts, functions are specied in terms of conditional equations (=functional programs), least relations in terms of Horn clauses (= logic programs or transition system specications) and greatest relations in terms of co-Horn clauses. Data equalities are either structural or behavioral, the former being least, the latter being greatest solutions of axioms that are determined by (components of) the type’s signature. This paper mainly presents the theoretical foundations of swinging types, such as standard (term) models, criteria for structural and behavioral consistency, and proof rules. Swinging types admit exible design guidelines, tailored to particular objectives or application elds. Suitable design methods may be based upon this and the companion paper [61] that explores various application areas and illustrates how swinging types may realize dierent programming or specication styles. As to structuring concepts for swinging types, parameterization and genericity are involved in this paper, while [64] deals with extensions and renements. c 2000 Elsevier Science B.V. All rights reserved.

[1]  Elliott Mendelson,et al.  Introduction to Mathematical Logic , 1979 .

[2]  Peter Padawitz Proof in Flat Specifications , 1999, Algebraic Foundations of Systems Specification.

[3]  Bart Jacobs,et al.  Behaviour-Refinement of Coalgebraic Specifications with Coinductive Correctness Proofs , 1997, TAPSOFT.

[4]  Lawrence S. Moss,et al.  Vicious circles - on the mathematics of non-wellfounded phenomena , 1996, CSLI lecture notes series.

[5]  Adrian Walker,et al.  Towards a Theory of Declarative Knowledge , 1988, Foundations of Deductive Databases and Logic Programming..

[6]  Liz Sonenberg,et al.  Fixed Point Theorems and Semantics: A Folk Tale , 1982, Inf. Process. Lett..

[7]  John L. Bell,et al.  Models and Ultraproducts: An Introduction. , 1969 .

[8]  Gianna Reggio,et al.  Algebraic Specification of Concurrency , 1991, COMPASS/ADT.

[9]  Jan J. M. M. Rutten,et al.  Universal coalgebra: a theory of systems , 2000, Theor. Comput. Sci..

[10]  Michel Bidoit,et al.  Observational Logic , 1998, AMAST.

[11]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[12]  J. Goguen Stretching First Order Equational Logic: Proofs with Partiality, Subtypes and Retracts , 1998 .

[13]  Claus-Peter Wirth,et al.  Conditional Equational Specifications of Data Types with Partial Operations for Inductive Theorem Proving , 1997, RTA.

[14]  Peter Padawitz,et al.  Computing in Horn Clause Theories , 1988, EATCS Monographs on Theoretical Computer Science.

[15]  Ugo Montanari,et al.  Observability Concepts in Abstract Data Type Specifications , 1976, MFCS.

[16]  Hartmut Ehrig,et al.  Algebraic Implementation of Abstract Data Types , 1982, Theor. Comput. Sci..

[17]  Joseph A. Goguen,et al.  Towards an Algebraic Semantics for the Object Paradigm , 1992, COMPASS/ADT.

[18]  Peter Padawitz Inductive Theorem Proving for Design Specification , 1996, J. Symb. Comput..

[19]  John C. Reynolds,et al.  Algebraic Methods in Semantics , 1985 .

[20]  Michel Bidoit,et al.  Proving the Correctness of Behavioural Implementations , 1995, AMAST.

[21]  Tatsuya Hagino,et al.  Codatatypes in ML , 1989, J. Symb. Comput..

[22]  Egidio Astesiano,et al.  Algebraic Foundations of Systems Specification , 1999, IFIP State-of-the-Art Reports.

[23]  H. Keisler,et al.  Handbook of mathematical logic , 1977 .

[24]  Johan van Benthem,et al.  Exploring logical dynamics , 1996, Studies in logic, language and information.

[25]  Gianna Reggio,et al.  Observational Structures and Their Logics , 1992, Theor. Comput. Sci..

[26]  Martin Wirsing,et al.  Bisimulation in Algebraic Specifications , 1989 .

[27]  Michael A. Arbib,et al.  Parametrized Data Types Do Not Need Highly Constrained Parameters , 1982, Inf. Control..

[28]  Joseph A. Goguen,et al.  Hidden coinduction: behavioural correctness proofs for objects , 1999, Mathematical Structures in Computer Science.

[29]  Jan Friso Groote,et al.  Structured Operational Semantics and Bisimulation as a Congruence , 1992, Inf. Comput..

[30]  B. Jacobs,et al.  A tutorial on (co)algebras and (co)induction , 1997 .

[31]  Samuel N. Kamin Final data type specifications: a new data type specification method , 1980, POPL '80.

[32]  Gianna Reggio,et al.  Abstract Dynamic Data Types: A Temporal Logic Approach , 1991, MFCS.

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

[34]  José Meseguer,et al.  Initiality, induction, and computability , 1986 .

[35]  Hélène Kirchner,et al.  Completion of a Set of Rules Modulo a Set of Equations , 1986, SIAM J. Comput..

[36]  Manfred Broy,et al.  Algebraic Specification of Concurrent Systems , 1999, Algebraic Foundations of Systems Specification.

[37]  Joseph A. Goguen,et al.  A hidden agenda , 2000, Theor. Comput. Sci..

[38]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.

[39]  Peter Padawitz Towards the one-tiered design of data types and transition systems , 1997, WADT.

[40]  Martin Wirsing,et al.  Behavioural and Abstractor Specifications , 1995, Sci. Comput. Program..

[41]  Maurice Nivat,et al.  Resolution of Equations in Algebraic Structures , 1989 .

[42]  Samuel N. Kamin Final Data Types and Their Specification , 1983, TOPL.

[43]  K. Mani Chandy,et al.  Current trends in programming methodology , 1977 .

[44]  Joseph A. Goguen,et al.  An Oxford survey of order sorted algebra , 1994, Mathematical Structures in Computer Science.

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

[46]  Kim G. Larsen,et al.  Proof System for Hennessy-Milner Logic with Recursion , 1988, CAAP.

[47]  Subrata Kumar Das,et al.  Deductive Databases and Logic Programming , 1992 .

[48]  Peter Padawitz Deduction and declarative programming , 1992, Cambridge tracts in theoretical computer science.

[49]  José Meseguer,et al.  Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics , 1987, Research Directions in Object-Oriented Programming.

[50]  Bruce D. Shriver,et al.  Research Directions in Object-Oriented Programming , 1987 .

[51]  Donald W. Barnes,et al.  An Algebraic Introduction to Mathematical Logic , 1975 .

[52]  Colin Stirling,et al.  The Joys of Bisimulation , 1998, MFCS.

[53]  Horst Reichel,et al.  An approach to object semantics based on terminal co-algebras , 1995, Mathematical Structures in Computer Science.

[54]  Colin Stirling,et al.  Modal and temporal logics , 1993, LICS 1993.

[55]  José Meseguer,et al.  Membership algebra as a logical framework for equational specification , 1997, WADT.

[56]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[57]  Hartmut Ehrig,et al.  Dynamic Abstract Data Types: An informal Proposal , 1994, Bull. EATCS.

[58]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[59]  Grigore Rosu,et al.  Hidden Congruent Deduction , 1998, FTP.

[60]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[61]  Michel Bidoit,et al.  Observer Complete Definitions are Behaviourally Coherent , 1999 .

[62]  Reiko Heckel,et al.  From SOS Specifications to Structured Coalgebras: How to Make Bisimulation a Congruence , 1999, CMCS.

[63]  Andrew D. Gordon A Tutorial on Co-induction and Functional Programming , 1994, Functional Programming.

[64]  Peter Padawitz,et al.  Swinging Data Types: Syntax, Semantics, and Theory , 1995, COMPASS/ADT.

[65]  Martin Wirsing,et al.  Algebraic Specifications of Reachable Higher-Order Algebras , 1987, ADT.

[66]  P. Padawitz Modular Swinging Types , 1999 .

[67]  P. Eklof Ultraproducts for Algebraists , 1977 .

[68]  Jan A. Bergstra,et al.  Logic of transition systems , 1994, J. Log. Lang. Inf..

[69]  Hans Jürgen Ohlbach,et al.  Semantics-Based Translation Methods for Modal Logics , 1991, J. Log. Comput..

[70]  Robin Milner,et al.  Algebraic laws for nondeterminism and concurrency , 1985, JACM.

[71]  J. C. M. Baeten,et al.  Process Algebra: Bibliography , 1990 .

[72]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.

[73]  Mitchell Wand,et al.  Specifications, Models, and Implementations of Data Abstractions , 1982, Theor. Comput. Sci..

[74]  Gordon Plotkin,et al.  An Operational Semantics for CSP. , 1982 .