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 verification. A swinging specification separates from each other visible sorts that denote domains of data identified by their structure; hidden sorts that denote domains of data identified by their behavior in response to observers; \(\mu\)-predicates, i.e., least relations representing inductive(ly provable) properties of a system; and \(\nu\)-predicates, i.e., greatest relations representing complementary ``coinductive'' properties, which often describe behavioral aspects ``in the infinity''. Programming paradigms, such as functional, relational or state-oriented ones, and specification 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 specified in terms of conditional equations (=functional programs), least relations in terms of Horn clauses (=logic programs or transition system specifications) 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 flexible design guidelines, tailored to particular objectives or application fields. Suitable design methods may be based upon this and the companion paper [the author, Sample swinging types, Report, University of Dortmund, 1998, http://ls5.cs.uni-dortmund.de/\(\sim\)peter/BehExa.ps.gz] that explores various application areas and illustrates how swinging types may realize different programming or specification styles. As to structuring concepts for swinging types, parameterization and genericity are involved in this paper, while the authors, Modular swinging types [Report, University of Dortmund, 1999, \url{http://ls5.cs.uni-dortmund.de/~peter/MST.ps.gz}] deals with extensions and refinements.
scientific article; zbMATH DE number 1493433
scientific article