Integrating observations and computations in the specification of state-based, dynamical systems
The overall goal of this work is to combine the complementary contributions of algebra and coalgebra to specification, in order to provide a formal framework for the specification of state-based, dynamical systems. Algebraic specification methods benefit from the availability of inductive techniques for defining and reasoning about structures that involve computation; coalgebraic specification methods complement algebraic ones both in their objectives and in their means of achieving them, by employing coinductive techniques for defining and reasoning about structures that involve observation. State-based, dynamical systems comprise a computational aspect, concerned with the construction of (new) system states, and an observational aspect, concerned with the observation of (existing) system states, with the two aspects overlapping on features concerned with the evolution of system states. Existing formalisms for the specification of such systems typically exploit the overlap between computational and observational features to employ either algebraic or coalgebraic techniques for specification and reasoning. However, such a choice limits the expressiveness of these formalisms w.r.t. either observational or computational features. Furthermore, the accounts given by such approaches to the concepts of indistinguishability by observations and respectively of reachability under computations are somewhat artificial, due to the failure to distinguish between computational and observational features. The approach taken here is to clearly separate the two categories of features (by shifting the features concerned with the evolution of system states to the computational component), and to use algebra and respectively coalgebra in formalising them. In particular, such an approach yields a coalgebraically-defined notion of indistinguishability by observations, and an algebraically-defined notion of reachability under computations. The relationship between computing new states and observing the resulting states is specified by suitably lifting the coalgebraic structure of the semantic domains induced by the observational component to computations over these semantic domains. Such an approach automatically results in a compatibility between computational and observational features, with the observational indistinguishability of states being preserved by computations, and with the reachability of states under computations being preserved by observations. Correctness properties of system behaviour are formalised using equational sentences. This is a standard technique in algebraic specification. A similar technique is used here for coalgebraic specification, with the resulting notion of sentence capturing system invariants quantified over state spaces. Moreover, a sound and complete calculus for reasoning about the specified behaviours is formulated in a concrete setting obtained by syntactically dualising the setting of many-sorted algebra. Equational sentences are then used to formalise the equivalence of computations as well as various system invariants, with the associated notions of satisfaction abstracting away observationally indistinguishable and respectively unreachable states, and with the associated proof techniques employing coinduction and respectively induction. Suitably instantiating the resulting approach yields a formalism for the specification and verification of objects.