Results 1 - 10
of
51
Universal coalgebra: a theory of systems
, 2000
"... In the semantics of programming, nite data types such as finite lists, have traditionally been modelled by initial algebras. Later final coalgebras were used in order to deal with in finite data types. Coalgebras, which are the dual of algebras, turned out to be suited, moreover, as models for certa ..."
Abstract
-
Cited by 279 (29 self)
- Add to MetaCart
In the semantics of programming, nite data types such as finite lists, have traditionally been modelled by initial algebras. Later final coalgebras were used in order to deal with in finite data types. Coalgebras, which are the dual of algebras, turned out to be suited, moreover, as models for certain types of automata and more generally, for (transition and dynamical) systems. An important property of initial algebras is that they satisfy the familiar principle of induction. Such a principle was missing for coalgebras until the work of Aczel (Non-Well-Founded sets, CSLI Leethre Notes, Vol. 14, center for the study of Languages and information, Stanford, 1988) on a theory of non-wellfounded sets, in which he introduced a proof principle nowadays called coinduction. It was formulated in terms of bisimulation, a notion originally stemming from the world of concurrent programming languages. Using the notion of coalgebra homomorphism, the definition of bisimulation on coalgebras can be shown to be formally dual to that of congruence on algebras. Thus, the three basic notions of universal algebra: algebra, homomorphism of algebras, and congruence, turn out to correspond to coalgebra, homomorphism of coalgebras, and bisimulation, respectively. In this paper, the latter are taken
Verification of Object-Oriented Programs with Invariants
- JOURNAL OF OBJECT TECHNOLOGY
, 2004
"... ... This paper defines a programming methodology for using object invariants. The methodology, which enriches a program's state space to express when each object invariant holds, deals with owned object components, ownership transfer, and subclassing, and is expressive enough to allow many interesti ..."
Abstract
-
Cited by 173 (36 self)
- Add to MetaCart
... This paper defines a programming methodology for using object invariants. The methodology, which enriches a program's state space to express when each object invariant holds, deals with owned object components, ownership transfer, and subclassing, and is expressive enough to allow many interesting object-oriented programs to be specified and verified. Lending itself to sound modular verification, the methodology also provides a solution to the problem of determining what state a method is allowed to modify.
Bisimulation for Probabilistic Transition Systems: A Coalgebraic Approach
, 1998
"... . The notion of bisimulation as proposed by Larsen and Skou for discrete probabilistic transition systems is shown to coincide with a coalgebraic definition in the sense of Aczel and Mendler in terms of a set functor. This coalgebraic formulation makes it possible to generalize the concepts to a ..."
Abstract
-
Cited by 69 (15 self)
- Add to MetaCart
. The notion of bisimulation as proposed by Larsen and Skou for discrete probabilistic transition systems is shown to coincide with a coalgebraic definition in the sense of Aczel and Mendler in terms of a set functor. This coalgebraic formulation makes it possible to generalize the concepts to a continuous setting involving Borel probability measures. Under reasonable conditions, generalized probabilistic bisimilarity can be characterized categorically. Application of the final coalgebra paradigm then yields an internally fully abstract semantical domain with respect to probabilistic bisimulation. Keywords. Bisimulation, probabilistic transition system, coalgebra, ultrametric space, Borel measure, final coalgebra. 1 Introduction For discrete probabilistic transition systems the notion of probabilistic bisimilarity of Larsen and Skou [LS91] is regarded as the basic process equivalence. The definition was given for reactive systems. However, Van Glabbeek, Smolka and Steffen s...
Many-Sorted Coalgebraic Modal Logic: a Model-theoretic Study
- Theoretical Informatics and Applications
, 2001
"... This paper gives a semantical underpinning for a many-sorted modal logic associated with certain dynamical systems, like transition systems, automata or classes in object-oriented languages. These systems will be described as coalgebras of so-called polynomial functors, built up from constants an ..."
Abstract
-
Cited by 51 (3 self)
- Add to MetaCart
This paper gives a semantical underpinning for a many-sorted modal logic associated with certain dynamical systems, like transition systems, automata or classes in object-oriented languages. These systems will be described as coalgebras of so-called polynomial functors, built up from constants and identities, using products, coproducts and powersets. The semantical account involves Boolean algebras with operators indexed by polynomial functors, called MBAOs, for Many-sorted Boolean Algebras with Operators, combining standard (categorical) models of modal logic and of many-sorted predicate logic.
Java Program Verification at Nijmegen: Developments and Perspective
- Nijmegen Institute of Computing and Information Sciences
, 2003
"... This paper presents a historical overview of the work on Java program verification at the University of Nijmegen (the Netherlands) over the past six years (1997--2003). It describes the development and use of the LOOP tool that is central in this work. Also, it gives a perspective on the field. ..."
Abstract
-
Cited by 44 (5 self)
- Add to MetaCart
This paper presents a historical overview of the work on Java program verification at the University of Nijmegen (the Netherlands) over the past six years (1997--2003). It describes the development and use of the LOOP tool that is central in this work. Also, it gives a perspective on the field.
Reasoning about Classes in Object-Oriented Languages: Logical Models and Tools
, 1998
"... A formal language ccsl is introduced for describing specifications of classes in object-oriented languages. We show how class specifications in ccsl can be translated into higher order logic. This allows us to reason about these specifications. In particular, it allows us (1) to describe (various) i ..."
Abstract
-
Cited by 34 (15 self)
- Add to MetaCart
A formal language ccsl is introduced for describing specifications of classes in object-oriented languages. We show how class specifications in ccsl can be translated into higher order logic. This allows us to reason about these specifications. In particular, it allows us (1) to describe (various) implementations of a particular class specification, (2) to develop the logical theory of a specific class specification, and (3) to establish refinements between two class specifications. We use the (dependently typed) higher order logic of the proof-assistant pvs, so that we have extensive tool support for reasoning about class specifications. Moreover, we describe our own front-end tool to pvs, which generates from ccsl class specifications appropriate pvs theories and proofs of some elementary results.
The Temporal Logic of Coalgebras via Galois Algebras
, 1999
"... This paper introduces a temporal logic for coalgebras. Nexttime and lasttime operators are dened for a coalgebra, acting on predicates on the state space. They give rise to what is called a Galois algebra. Galois algebras form models of temporal logics like Linear Temporal Logic (LTL) and Computatio ..."
Abstract
-
Cited by 33 (7 self)
- Add to MetaCart
This paper introduces a temporal logic for coalgebras. Nexttime and lasttime operators are dened for a coalgebra, acting on predicates on the state space. They give rise to what is called a Galois algebra. Galois algebras form models of temporal logics like Linear Temporal Logic (LTL) and Computation Tree Logic (CTL). The mapping from coalgebras to Galois algebras turns out to be functorial, yielding indexed categorical structures. This gives many examples, for coalgebras of polynomial functors on sets. Additionally, it will be shown how \fuzzy" predicates on metric spaces, and predicates on presheaves, yield indexed Galois algebras, in basically the same coalgebraic manner. Keywords: Temporal logic, coalgebra, Galois connection, fuzzy predicate, presheaf Classication: 68Q60, 03G05, 03G25, 03G30 (AMS'91); D.2.4, F.3.1, F.4.1 (CR'98). 1 Introduction This paper combines the areas of coalgebra and of temporal logic. Coalgebras are simple mathematical structures (similar, but dual, to...
Coalgebras and Modal Logic
- Coalgebraic Methods in Computer Science, Volume 33 in Electronic Notes in Theoretical Computer Science
, 2000
"... Coalgebras are of growing importance in theoretical computer science. To develop languages for them is significant for the specification and verification of systems modelled with them. Modal logic has proved to be suitable for this purpose. So far, most approaches have presented a language to descri ..."
Abstract
-
Cited by 32 (0 self)
- Add to MetaCart
Coalgebras are of growing importance in theoretical computer science. To develop languages for them is significant for the specification and verification of systems modelled with them. Modal logic has proved to be suitable for this purpose. So far, most approaches have presented a language to describe only deterministic coalgebras. The present paper introduces a generalization that also covers non-deterministic systems. As a special case, we obtain the "usual" modal logic for Kripke-structures. Models for our modal language L F are F-coalgebras where the functor F is inductively constructed from constant sets and the identity functor using product, coproduct, exponentiation, and the power set functor. We define a language L F and show that it embeds into L F . We prove that, for image-finite coalgebras, L F is expressive enough to distinguish elements up to bisimilarity and therefore L F does so, too. Moreover, we also give a complete calculus for L F in case the constants...
Hidden Coinduction: Behavioral Correctness Proofs for Objects
- Mathematical Structures in Computer Science
, 1999
"... This paper unveils and motivates an ambitious programme of hidden algebraic research in software engineering, beginning with our general goals, continuing with an overview of results, and including some future plans. The main contribution is powerful hidden coinduction techniques for proving behavio ..."
Abstract
-
Cited by 24 (8 self)
- Add to MetaCart
This paper unveils and motivates an ambitious programme of hidden algebraic research in software engineering, beginning with our general goals, continuing with an overview of results, and including some future plans. The main contribution is powerful hidden coinduction techniques for proving behavioral correctness of concurrent systems; several mechanical proofs are given using OBJ3. We also show how modularization, bisimulation, transition systems, concurrency and combinations of the functional, constraint, logic and object paradigms fit into hidden algebra. 1. Introduction
A Case Study in Class Library Verification: Java's Vector Class
, 1999
"... One of the reasons for the popularity of object-oriented programming is the possibility it offers for reuse of code. Usually, the distribution of an object-oriented programming language comes together with a collection of ready-to-use classes, in a class library. Typically, these classes contain gen ..."
Abstract
-
Cited by 20 (6 self)
- Add to MetaCart
One of the reasons for the popularity of object-oriented programming is the possibility it offers for reuse of code. Usually, the distribution of an object-oriented programming language comes together with a collection of ready-to-use classes, in a class library. Typically, these classes contain general purpose code, which can be used in many applications. Before using such classes, a programmer usually wants to know how they behave and when their methods throw exceptions. One way to do this, is to study the actual code, but since this is time-consuming and requires understanding all particular ins and outs of the implementation, this is often not the most efficient way. Another approach is to study the documentation provided. As long as the documentation is clear and concise, this works well, but otherwise one still is forced to look at the actual code.

