Results 1 
8 of
8
A Tutorial on (Co)Algebras and (Co)Induction
 EATCS Bulletin
, 1997
"... . Algebraic structures which are generated by a collection of constructors like natural numbers (generated by a zero and a successor) or finite lists and trees are of wellestablished importance in computer science. Formally, they are initial algebras. Induction is used both as a definition pr ..."
Abstract

Cited by 228 (34 self)
 Add to MetaCart
. Algebraic structures which are generated by a collection of constructors like natural numbers (generated by a zero and a successor) or finite lists and trees are of wellestablished importance in computer science. Formally, they are initial algebras. Induction is used both as a definition principle, and as a proof principle for such structures. But there are also important dual "coalgebraic" structures, which do not come equipped with constructor operations but with what are sometimes called "destructor" operations (also called observers, accessors, transition maps, or mutators). Spaces of infinite data (including, for example, infinite lists, and nonwellfounded sets) are generally of this kind. In general, dynamical systems with a hidden, blackbox state space, to which a user only has limited access via specified (observer or mutator) operations, are coalgebras of various kinds. Such coalgebraic systems are common in computer science. And "coinduction" is the appropriate te...
Abstract behavior types: A foundation model for components and their composition
 SCIENCE OF COMPUTER PROGRAMMING
, 2003
"... ..."
Objects and Classes, Coalgebraically
 ObjectOrientation with Parallelism and Persistence
, 1995
"... The coalgebraic perspective on objects and classes in objectoriented programming is elaborated: objects consist of a (unique) identifier, a local state, and a collection of methods described as a coalgebra; classes are coalgebraic (behavioural) specifications of objects. The creation of a "new" o ..."
Abstract

Cited by 68 (17 self)
 Add to MetaCart
The coalgebraic perspective on objects and classes in objectoriented programming is elaborated: objects consist of a (unique) identifier, a local state, and a collection of methods described as a coalgebra; classes are coalgebraic (behavioural) specifications of objects. The creation of a "new" object of a class is described in terms of the terminal coalgebra satisfying the specification. We present a notion of "totally specified" class, which leads to particularly simple terminal coalgebras. We further describe local and global operational semantics for objects. Associated with the local operational semantics is a notion of bisimulation (for objects belonging to the same class), expressing observational indistinguishability. AMS Subject Classification (1991): 18C10, 03G30 CR Subject Classification (1991): D.1.5, D.2.1, E.1, F.1.1, F.3.0 Keywords & Phrases: object, class, (terminal) coalgebra, coalgebraic specification, bisimulation 1. Introduction Within the objectoriente...
Inheritance and Cofree Constructions
 European Conference on ObjectOriented Programming, number 1098 in Lect. Notes Comp. Sci
, 1995
"... The coalgebraic view on classes and objects is elaborated to include inheritance. Inheritance in coalgebraic specification (of classes) will be understood dually to parametrization in algebraic specification. That is, inheritance involves restriction (specialization), where parametrization involves ..."
Abstract

Cited by 26 (7 self)
 Add to MetaCart
The coalgebraic view on classes and objects is elaborated to include inheritance. Inheritance in coalgebraic specification (of classes) will be understood dually to parametrization in algebraic specification. That is, inheritance involves restriction (specialization), where parametrization involves extension. And cofree constructions are "best" restrictions, like free constructions are "best" extensions. To make this view on inheritance precise we need a suitable notion of behaviour preserving morphism between classes, which will be defined as a "coalgebra map uptobisimulation". AMS Subject Classification (1991): 18C10, 03G30 CR Subject Classification (1991): D.1.5, D.2.1, E.1, F.1.1, F.3.0 Keywords & Phrases: object, class, inheritance, coalgebraic specification, bisimulation 1. Introduction Two basic relations in objectoriented languages are: object o belongs to class C, and: class C inherits from class C 0 (see e.g. [20]). Class membership yields what is sometimes called a...
Invariants, Bisimulations and the Correctness of Coalgebraic Refinements
 Techn. Rep. CSIR9704, Comput. Sci. Inst., Univ. of Nijmegen
, 1997
"... . Coalgebraic specifications are used to formally describe the behaviour of classes in objectoriented languages. In this paper, a general notion of refinement between two such coalgebraic specifications is defined, capturing the idea that one "concrete" class specification realises the behaviour of ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
. Coalgebraic specifications are used to formally describe the behaviour of classes in objectoriented languages. In this paper, a general notion of refinement between two such coalgebraic specifications is defined, capturing the idea that one "concrete" class specification realises the behaviour of the other, "abstract" class specification. Two (complete) prooftechniques are given to establish such refinements: one involving an invariant (a predicate that is closed under transitions) on the concrete class, and one involving a bisimulation (a relation that is closed under transitions) between the concrete and the abstract class. The latter can only be used if the abstract class is what we call totally specified. Parts of the underlying theory of invariants and bisimulations in a coalgebraic setting are included, involving least and greatest invariants and connections between invariants and bisimulations. Also, the proofprinciples are illustrated in examples (which are fully formalise...
BehaviourRefinement of Coalgebraic Specifications with Coinductive Correctness Proofs
 Proofs, Proc. TAPSOFT '97, Springer LNCS 1214
, 1997
"... . A notion of refinement is defined in the context of coalgebraic specification of classes in objectoriented languages. It tells us when objects in a "concrete" class behave exactly like (or: simulate) objects in an "abstract" class. The definition of refinement involves certain selection functions ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
. A notion of refinement is defined in the context of coalgebraic specification of classes in objectoriented languages. It tells us when objects in a "concrete" class behave exactly like (or: simulate) objects in an "abstract" class. The definition of refinement involves certain selection functions between procedureinputs and attributeoutputs, which gives this notion considerable flexibility. The coalgebraic approach allows us to use coinductive proof methods in establishing refinements (via (bi)simulations). This is illustrated in several examples. 1 Introduction Refinement is an important notion in the stepwise construction of reliable software. It is used to express that an abstract description is realised by a concrete one, typically by fillingin some implementation details. This paper concentrates on refinement in an objectoriented setting. What is typical there is reuse of classes 1 : one tries to refine towards existing classes (available in some library). There are two ...
ObjectOriented Hybrid Systems of Coalgebras plus Monoid Actions
 Algebraic Methodology and Software Technology (AMAST
, 1996
"... . Hybrid systems combine discrete and continuous dynamics. We introduce a semantics for such systems consisting of a coalgebra together with a monoid action. The coalgebra captures the (discrete) operations on a state space that can be used by a client (like in the semantics of ordinary (nontempora ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
. Hybrid systems combine discrete and continuous dynamics. We introduce a semantics for such systems consisting of a coalgebra together with a monoid action. The coalgebra captures the (discrete) operations on a state space that can be used by a client (like in the semantics of ordinary (nontemporal) objectoriented systems). The monoid action captures the influence of time on the state space, where the monoids that we consider are the natural numbers monoid (N; 0; +) of discrete time, and the positive reals monoid (R0 ; 0; +) of real time. Based on this semantics we develop a hybrid specification formalism with timed method applications: it involves expressions like s:meth@ff, with the following meaning: in state s let the state evolve for ff units of time (according to the monoid action), and then apply the (coalgebraic) method meth. In this formalism we specify various (elementary) hybrid systems, investigate their correctness, and display their behaviour in simulations. We furthe...
Automata and Behaviours in Categories of Processes
, 1996
"... An early result of Goguen [4, 5] describes the fundamental adjunction between categories of deterministic automata and their behaviours. Our first step is to redefine (morphisms in) these categories of automata and behaviours so that a restriction in Goguen's approach can be avoided. Subsequently we ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
An early result of Goguen [4, 5] describes the fundamental adjunction between categories of deterministic automata and their behaviours. Our first step is to redefine (morphisms in) these categories of automata and behaviours so that a restriction in Goguen's approach can be avoided. Subsequently we give a coalgebraic analysis of this behaviourrealization adjunction; it yields a second generalization to other types of (not only deterministic) automata (and their behaviours). We further show that our (redefined) categories of automata and behaviours support elementary process combinators like renaming, restriction, parallel composition, replication and feedback (some of which also occur, for example, in the calculus). One of the main contributions is that replication !P is defined for an automaton P such that !P is the terminal coalgebra !P = ! Pk!P of the functor Pk(\Gamma) "compose with P ". The behaviour functor from automata to their behaviours preserves these process combinato...