How to Kill Epsilons with a Dagger

A Coalgebraic Take on Systems with Algebraic Label Structure
  • Filippo Bonchi
  • Stefan Milius
  • Alexandra Silva
  • Fabio Zanasi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8446)


We propose an abstract framework for modeling state-based systems with internal behavior as e.g. given by silent or \(\epsilon \)-transitions. Our approach employs monads with a parametrized fixpoint operator \(\dagger \) to give a semantics to those systems and implement a sound procedure of abstraction of the internal transitions, whose labels are seen as the unit of a free monoid. More broadly, our approach extends the standard coalgebraic framework for state-based systems by taking into account the algebraic structure of the labels of their transitions. This allows to consider a wide range of other examples, including Mazurkiewicz traces for concurrent systems.


Natural Transformation Internal Transition Denotational Semantic Enrich Category Initial Algebra 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

The theory of coalgebras provides an elegant mathematical framework to express the semantics of computing devices: the operational semantics, which is usually given as a state machine, is modeled as a coalgebra for a functor; the denotational semantics as the unique map into the final coalgebra of that functor. While the denotational semantics is often compositional (as, for instance, ensured by the bialgebraic approach of [24]), it is sometimes not fully-abstract, i.e., it discriminates systems that are equal from the point of view of an external observer. This is due to the presence of internal transitions (also called \(\epsilon \)-transitions) that are not observable but that are not abstracted away by the usual coalgebraic semantics using the unique homomorphism into the final coalgebra.

In this paper, we focus on the problem of giving trace semantics to systems with internal transitions. Our approach stems from an elementary observation (pointed out in previous work, e.g. [23]): the labels of transitions form a monoid and the internal transitions are those labeled by the unit of the monoid. Thus, there is an algebraic structure on the labels that needs to be taken into account when modeling the denotational semantics of those systems. To illustrate this point, consider the following two non-deterministic automata (NDA).

The one on the left (that we call \(\mathbb {A}\)) is an NDA with \(\epsilon \)-transitions: its transitions are labeled either by the symbols of the alphabet \(A=\{a,b,c\}\) or by the empty word \(\epsilon \in A^*\). The one on the right (that we call \(\mathbb {B}\)) has transitions labeled by languages in \(\mathcal {P}(A^*)\), here represented as regular expressions. The monoid structure on the labels is explicit on \(\mathbb {B}\), while it is less evident in \(\mathbb {A}\) since the set of labels \(A\cup \{\epsilon \}\) does not form a monoid. However, this set can be trivially embedded into \(\mathcal {P}(A^*)\) by looking at each symbols as the corresponding singleton language. For this reason each automaton with \(\epsilon \)-transitions, like \(\mathbb {A}\), can be regarded as an automaton with transitions labeled by languages, like \(\mathbb {B}\). Furthermore, we can define the semantics of NDA with \(\epsilon \)-transitions by defining the semantics of NDA with transitions labeled by languages: a word \(w\) is accepted by a state \(q\) if there is a path Open image in new window where \(p\) is a final state, and there exist a decomposition \(w=w_1\cdots w_n\) such that \(w_i \in L_i\). Observe that, with this definition, \(\mathbb {A}\) and \(\mathbb {B}\) accept the same language: all words over \(A\) that end with \(a\) or \(c\). In fact, \(\mathbb {B}\) was obtained from \(\mathbb {A}\) in a well-known process to compute the regular expression denoting the language accepted by a given automaton [14].

We propose to define the semantics of systems with internal transitions following the same idea as in the above example. Given some transition type (i.e. an endofunctor) \(F\), one first defines an embedding of \(F\)-systems with internal transitions into \(F^*\)-system, where \(F^*\) has been derived from \(F\) by making explicit the algebraic structure on the labels. Next one models the semantics of an \(F\)-system as the one of the corresponding \(F^*\)-system \(e\). Naively, one could think of defining the semantics of \(e\) as the unique map \({!_{e}}\) into the final coalgebra for \(F^*\). However, this approach turns out to be too fine grained, essentially because it ignores the underlying algebraic structure on the labels of \(e\). The same problem can be observed in the example above: \(\mathbb {B}\) and the representation of \(\mathbb {A}\) as an automaton with languages as labels have different final semantics—they accept the same language only modulo the equations of monoids.

Thus we need to extend the standard coalgebraic framework by taking into account the algebraic structure on labels. To this end, we develop our theory for systems whose transition type \(F^*\) has a canonical fixpoint, i.e. its initial algebra and final coalgebra coincide. This is the case for many relevant examples, as observed in [12]. Our canonical fixpoint semantics will be given as the composite Open image in new window , where \({!_{e}}\) is a coalgebra morphism given by finality and Open image in new window is an algebra morphism given by initiality. The target of Open image in new window will be an algebra for \(F^*\) encoding the equational theory associated with the labels of \(F^*\)-systems. Intuitively, Open image in new window being an algebra morphism, will take the quotient of the semantics given by \({!_{e}}\) modulo those equations. Therefore the extension provided by Open image in new window is the technical feature allowing us to take into account the algebraic structure on labels.

To study the properties of our canonical fixpoint semantics, it will be convenient to formulate it as an operator \(e \mapsto {e}^\dag \) assigning to systems (seen as sets of equations) a certain solution. Within the same perspective we will implement a different kind of solution \(e \mapsto {e}^\ddag \) turning any system \(e\) with internal transitions into one \({e}^\ddag \) where those have been abstracted away. By comparing the operators \(e \mapsto {e}^\dag \) and \(e \mapsto {e}^\ddag \), we will then be able to show that such a procedure (also called \(\epsilon \textit{-elimination}\)) is sound with respect to the canonical fixpoint semantics.

To conclude, we will explore further the flexibility of our framework. In particular, we will model the case in which the algebraic structure of the labels is quotiented under some equations, resulting in a coarser equivalence than the one given by the canonical fixpoint semantics. As a relevant example of this phenomenon, we give the first coalgebraic account of Mazurkiewicz traces.

Synopsis. After recalling the necessary background in Sect. 2, we discuss our motivating examples—automata with \(\epsilon \)-transitions and automata on words—in Sect. 3. Section 4 is devoted to present the canonical fixpoint semantics and the sound procedure of \(\epsilon \)-elimination. This framework is then instantiated to the examples of Sect. 3. Finally, in Sect. 5 we show how a quotient of the algebra on labels induces a coarser canonical fixpoint semantics. We propose Mazurkiewicz traces as a motivating example for such a construction. A full version of this paper with all proofs and extra material can be found in

2 Preliminaries

In this section we introduce the basic notions we need for our abstract framework. We assume some familiarity with category theory. We will use boldface capitals \(\mathbf {C}\) to denote categories, \(X, Y, \ldots \) for objects and \(f,g,\ldots \) for morphisms. We use Greek letters and double arrows, e.g. \(\eta :F \Rightarrow G\), for natural transformations, monad morphisms and any kind of 2-cells. If \(\mathbf {C}\) has coproducts we will denote them by \(X+Y\) and use \(\mathsf {inl},\mathsf {inr}\) for the coproduct injections.

2.1 Monads

We recall the basics of the theory of monads, as needed here. For more information, see e.g. [18]. A monad is a functor \(T:\mathbf {C} \rightarrow \mathbf {C}\) together with two natural transformations, a unit \(\eta :\mathrm{id }_{\mathbf {C}} \Rightarrow T\) and a multiplication \(\mu :T^{2} \Rightarrow T\), which are required to satisfy the following equations, for every \(X\in \mathbf {C}\): \(\mu _X\mathrel {\circ }\eta _{T X} = \mu _X\mathrel {\circ }T\eta _{X} = \mathrm {id}\) and \(T\mu _{X}\mathrel {\circ }\mu _{T X} = \mu _X\mathrel {\circ }\mu _X\).

A morphism of monads from \((T,\eta ^T, \mu ^T)\) to \((S,\eta ^S, \mu ^S)\) is a natural transformation \(\gamma :T \Rightarrow S\) that preserves unit and multiplication: \(\gamma _X \circ \eta ^T_X=\eta ^S_X\) and \(\gamma _X \circ \mu ^T_X=\mu _X^S \circ \gamma _{SX} \circ T\gamma _X\). A quotient of monads is a morphism of monads with epimorphic components.

Example 2.1

We briefly describe the examples of monads that we use in this paper.
  1. 1.

    Let \(\mathbf {C}=\mathbf {Sets}\). The powerset monad \(\mathcal {P}\) maps a set \(X\) to the set \(\mathcal {P}X\) of subsets of \(X\), and a function \(f:X \rightarrow Y\) to \(\mathcal {P}f:\mathcal {P}X \rightarrow \mathcal {P}Y\) given by direct image. The unit is given by the singleton set map \(\eta _X(x) = \{x\}\) and multiplication by union \(\mu _X(U) = \bigcup _{S \in U} S\).

  2. 2.

    Let \(\mathbf {C}\) be a category with coproducts and \(E\) an object of \(\mathbf {C}\). The exception monad \(\mathcal E\) is defined on objects as \(\mathcal E X = E + X\) and on arrows \(f:X\rightarrow Y\) as \(\mathcal E f = \mathrm {Id}_E + f\). Its unit and multiplication are given on \(X \in \mathbf {C}\) respectively as \(\mathsf {inr}_X:X \rightarrow E + X\) and \(\nabla _{E} + \mathrm {Id}_X : E + E + X\rightarrow E + X\), where \(\nabla _E = [\mathrm {id}_E,\mathrm {id}_E]\) is the codiagonal. When \(\mathbf {C}=\mathbf {Sets}\), \(E\) can be thought as a set of exceptions and this monad is often used to encode computations that might fail throwing an exception chosen from the set \(E\).

  3. 3.

    Let \(H\) be an endofunctor on a category \(\mathbf {C}\) such that for every object \(X\) there exists a free \(H\)-algebra \({H^*}X\) on \(X\) (equivalently, an initial \(H+X\)-algebra) with the structure \(\tau _X: H{H^*} X \rightarrow {H^*}X\) and universal morphism \(\eta _X: X \rightarrow {H^*} X\). Then as proved by Barr [5] (see also Kelly [16]) \({H^*}:\mathbf {C}\rightarrow \mathbf {C}\) is the functor part of a free monad on \(H\) with the unit given by the above \(\eta _X\) and the multiplication given by the freeness of \({H^*}{H^*}X\): \(\mu _X\) is the unique \(H\)-algebra homomorphism from \(({H^*}{H^*}X, \tau _{{H^*}X})\) to \(({H^*}X , \tau _X)\) such that \(\mu _X \cdot \eta _{{H^*}X} = \eta _X\). Also notice that for a complete category every free monad arises in this way. Finally, for later use we fix the notation \(\kappa = \tau \cdot H\eta :H \Rightarrow {H^*}\) for the universal natural transformation of the free monad.


Given a monad \(M:\mathbf {C}\rightarrow \mathbf {C}\), its Kleisli category \(\mathcal {K}{\!\!}\ell (M)\) has the same objects as \(\mathbf {C}\), but morphisms \(X\rightarrow Y\) in \(\mathcal {K}{\!\!}\ell (M)\) are morphisms \(X\rightarrow MY\) in \(\mathbf {C}\). The identity map \(X\rightarrow X\) in \(\mathcal {K}{\!\!}\ell (M)\) is \(M\)’s unit \(\eta _{X}:X\rightarrow M X\); and composition \(g \circ f\) in \(\mathcal {K}{\!\!}\ell (M)\) uses \(M\)’s multiplication: \(g \circ f = \mu \mathrel {\circ }Mg \mathrel {\circ }f\). There is a forgetful functor \(\mathcal {U}:\mathcal {K}{\!\!}\ell (T)\rightarrow \mathbf {C}\), sending \(X\) to \(T X\) and \(f\) to \(\mu \mathrel {\circ }T f\). This functor has a left adjoint \(\mathcal {J}\), given by \(\mathcal {J}X = X\) and \(\mathcal {J}f = \eta \mathrel {\circ }f\). The Kleisli category \(\mathcal {K}{\!\!}\ell (M)\) inherits coproducts from the underlying category \(\mathbf {C}\). More precisely, for every objects \(X\) and \(Y\) their coproduct \(X+Y\) in \(\mathbf {C}\) is also a coproduct in \(\mathcal {K}{\!\!}\ell (M)\) with the injections \(\mathcal {J}\mathsf {inl}\) and \(\mathcal {J}\mathsf {inr}\).

2.2 Distributive Laws and Liftings

The most interesting examples of the theory that we will present in Sect. 4 concern coalgebras for functors \({\widehat{H}}:\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\) that are obtained as liftings of endofunctors \(H\) on \(\mathbf {Sets}\). Formally, given a monad \(M:\mathbf {C}\rightarrow \mathbf {C}\), a lifting of \(H :\mathbf {C}\rightarrow \mathbf {C}\) to \(\mathcal {K}{\!\!}\ell (M)\) is an endofunctor \({\widehat{H}}:\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\) such that \(\mathcal {J}\circ H = {\widehat{H}} \circ \mathcal {J}\). The lifting of a monad \((T,\eta , \mu )\) is a monad \(({\widehat{T}},{\widehat{\eta }}, {\widehat{\mu }})\) such that \({\widehat{T}}\) is a lifting of \(T\) and \({\widehat{\eta }}\), \({\widehat{\mu }}\) are given on \(X \in \mathcal {K}{\!\!}\ell (M)\) (i.e. \(X \in \mathbf {Sets}\)) respectively as \(\mathcal {J}(\eta _{X})\) and \(\mathcal {J}(\mu _{X})\).

A natural way of lifting functors and monads is by mean of distributive laws. A distributive law of a monad \((T,\eta ^T,\mu ^T)\) over a monad \((M,\eta ^M,\mu ^M)\) is a natural transformation \(\lambda :TM\Rightarrow MT\), that commutes appropriately with the unit and multiplication of both monads; more precisely, the diagrams below commute:A distributive law of a functor \(T\) over a monad \((M,\eta ^M,\mu ^M)\) is a natural transformation \(\lambda :TM\Rightarrow MT\) such that only the two topmost squares above commute.

The following “folklore” result gives an alternative description of distributive laws in terms of liftings to Kleisli categories, see also [15, 20] or [4].

Proposition 2.2

([20]). Let \((M,\eta ^M,\mu ^M)\) be a monad on a category \(\mathbf {C}\). Then the following holds:
  1. 1.

    For every endofunctor \(T\) on \(\mathbf {C}\), there is a bijective correspondence between liftings of \(T\) to \(\mathcal {K}{\!\!}\ell (M)\) and distributive laws of \(T\) over \(M\).

  2. 2.

    For every monad \((T,\eta ^T,\mu ^T)\) on \(\mathbf {C}\), there is a bijective correspondence between liftings of \((T,\eta ^T,\mu ^T)\) to \(\mathcal {K}{\!\!}\ell (M)\) and distributive laws of \(T\) over \(M\).


In what follows we shall simply write \({\widehat{H}}\) for the lifting of an endofunctor \(H\).

Proposition 2.3

([12]). Let \(M :\mathbf {C}\rightarrow \mathbf {C}\) be a monad and \(H :\mathbf {C}\rightarrow \mathbf {C}\) be a functor with a lifting \({\widehat{H}} :\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\). If \(H\) has an initial algebra Open image in new window (in \(\mathbf {C}\)), then \(\mathcal {J}\iota :{\widehat{H}}I\rightarrow I\) is an initial algebra for \({\widehat{H}}\) (in \(\mathcal {K}{\!\!}\ell (M)\)).

In our examples, we will often consider the free monad (Example 2.1.3) \({{\widehat{H}}^*}\) generated by a lifted functor \({\widehat{H}}\). The following result will be pivotal.

Proposition 2.4

Let \(H :\mathbf {C}\rightarrow \mathbf {C}\) be a functor and \(M :\mathbf {C}\rightarrow \mathbf {C}\) be a monad such that there is a lifting \({\widehat{H}} :\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\). Then the free monad \({H^*} :\mathbf {C}\rightarrow \mathbf {C}\) lifts to a monad \({\widehat{{H^*}}} :\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\). Moreover, \({\widehat{{H^*}}} = {{\widehat{H}}^*}\).

Recall from [12] that for every polynomial endofunctor \(H\) on \(\mathbf {Sets}\) there exists a canonical distributive law of \(H\) over any commutative monad \(M\) (equivalently, a canonical lifting of \(H\) to \(\mathcal {K}{\!\!}\ell (M)\)); this result was later extended to so-called analytic endofunctors of \(\mathbf {Sets}\) (see [19]). This can be used in our applications since the power-set functor \(\mathcal {P}\) is commutative, and so is the exception monad \(\mathcal E\) iff \(E = 1\).

2.3 \(\mathbf {Cppo}\)-enriched Categories

For our general theory we are going to assume that we work in a category where the hom-sets carry a cpo structure. Recall that a cpo is a partially ordered set in which all \(\omega \)-chains have a join. A cpo with bottom is a cpo with a least element \(\bot \). A function between cpos is called continuous if it preserves joins of \(\omega \)-chains. Cpos with bottom and continuous maps form a category that we denote by \(\mathbf {Cppo}\).

A \(\mathbf {Cppo}\text {-}enriched~category\) \(\mathbf {C}\) is a category where (a) each hom-set \(\mathbf {C}(X,Y)\) is a cpo with a bottom element \(\bot _{X,Y}:X \rightarrow Y\) and (b) composition is continuous, that is:
$$ g \circ \left( \bigsqcup _{n< \omega } f_n\right) = \bigsqcup _{n< \omega } (g \circ f_n) \qquad \text {and}\qquad \left( \bigsqcup _{n < \omega } f_n\right) \circ g = \bigsqcup _{n< \omega } (f_n \circ g)\text {.}$$
The composition is called left strict if \(\bot _{Y,Z} \circ f = \bot _{X,Z}\) for all arrows \(f:X \rightarrow Y\).

In our applications, \(\mathbf {C}\) will mostly be a Kleisli category for a monad on \(\mathbf {Sets}\). Throughout this subsection we assume that \(\mathbf {C}\) is a \(\mathbf {Cppo}\)-enriched category.

An endofunctor \(H:\mathbf {C} \rightarrow \mathbf {C} \) is said to be locally continuous if for any \(\omega \)-chain \(f_n:X \rightarrow Y\), \(n < \omega \) in \(\mathbf {C}(X,Y)\) we have:
$$ H\left( \bigsqcup _{n< \omega } f_n\right) = \bigsqcup _{n< \omega }H(f_n)\text {.} $$
We are going to make use of the fact that a locally continuous endofunctor \(H\) on \(\mathbf {C}\) has a canonical fixpoint, i.e. whenever its initial algebra exists it is also its final coalgebra:

Theorem 2.5

([9]). Let \(H :\mathbf {C} \rightarrow \mathbf {C}\) be a locally continuous endofunctor on the \(\mathbf {Cppo}\)-enriched category \(\mathbf {C}\) whose composition is left-strict. If an initial \(H\)-algebra Open image in new window exists, then Open image in new window is a final \(H\)-coalgebra.

In the sequel, we will be interested in free algebras for a functor \(H\) on \(\mathbf {C}\) and the free monad \({H^*}\) (cf. Example 2.1.3). For this observe that coproducts in \(\mathbf {C}\) are always \(\mathbf {Cppo}\)-enriched, i.e. all copairing maps \([-,-]:\mathbf {C}(X,Y) \times \mathbf {C}(X', Y) \rightarrow \mathbf {C}(X+X',Y)\) are continuous; in fact, it is easy to show that this map is continuous in both of its arguments using that composition with the coproduct injections is continuous.

Proposition 2.6

Let \(\mathbf {C}\) be \(\mathbf {Cppo}\)-enriched with composition left-strict. Furthermore, let \(H: \mathbf {C} \rightarrow \mathbf {C}\) be locally continuous and assume that all free \(H\)-algebras exist. Then the free monad \({H^*}\) is locally continuous.

2.4 Final Coalgebras in Kleisli Categories

In our applications the \(\mathbf {Cppo}\)-enriched category will be the Kleisli category \(\mathbf {C} = \mathcal {K}{\!\!}\ell (M)\) of a monad on \(\mathbf {Sets}\) and the endofunctors of interest are liftings \({\widehat{H}}\) of endofunctors \(H\) on \(\mathbf {Sets}\). It is known that in this setting a final coalgebra for the lifting \({\widehat{H}}\) can be obtained as a lifting of an initial \(H\)-algebra (see Hasuo et al. [12]). The following result is a variation of Theorem 3.3 in [12]:

Theorem 2.7

Let \(M:\mathbf {Sets}\rightarrow \mathbf {Sets}\) be a monad and \(H:\mathbf {Sets}\rightarrow \mathbf {Sets}\) be a functor such that
  1. (a)

    \(\mathcal {K}{\!\!}\ell (M)\) is \(\mathbf {Cppo}\)-enriched with composition left strict;

  2. (b)

    \(H\) is accessible (i.e., \(H\) preserves \(\lambda \)-filtered colimits for some cardinal \(\lambda \)) and has a lifting \({\widehat{H}} :\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\) which is locally continuous.

If Open image in new window is the initial algebra for the functor \(H\), then
  1. 1.

    \(\mathcal {J}\iota :{\widehat{H}}I\rightarrow I\) is the initial algebra for the functor \({\widehat{H}}\);

  2. 2.

    \(\mathcal {J}\iota ^{-1}:I\rightarrow {\widehat{H}}I\) is the final coalgebra for the functor \({\widehat{H}}\).

The first item follows from Proposition 2.3 and the second one follows from Theorem 2.5. There are two differences with Theorem 3.3 in [12]:
  1. (1)

    The functor \(H:\mathbf {Sets}\rightarrow \mathbf {Sets}\) is supposed to preserve \(\omega \)-colimits rather that being accessible. We use the assumption of accessibility because it guarantees the existence of all free algebras for \(H\) and for \({\widehat{H}}\), which implies also that for all \(Y \in \mathcal {K}{\!\!}\ell (M)\) an initial \({{\widehat{H}}^*}(\mathrm {Id}+Y)\)-algebra exists. This property of \({{\widehat{H}}^*}\) will be needed for applying our framework of Sect. 4.

  2. (2)

    We assume that the lifting \({\widehat{H}} :\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\) is locally continuous rather than locally monotone. We will need continuity to ensure the double dagger law in Remark 2.9. This assumption is not really restrictive since, as explained in Sect. 3.3.1 of [12], in all the meaningful examples where \({\widehat{H}}\) is locally monotone, it is also locally continuous.


Example 2.8

(NDA). Consider the powerset monad \(\mathcal {P}\) (Example 2.1.1) and the functor \(HX = A \times X + 1\) on \(\mathbf {Sets}\) (with \(1=\{\checkmark \}\)). The functor \(H\) lifts to \({\widehat{H}}\) on \(\mathcal {K}{\!\!}\ell (\mathcal {P})\) as follows: for any \(f :X \rightarrow Y\) in \(\mathcal {K}{\!\!}\ell (\mathcal {P})\) (that is \(f :X \rightarrow \mathcal {P}(Y)\) in \(\mathbf {Sets}\)), \({\widehat{H}}f :A\times X + 1 \rightarrow A \times Y +1 \) is given by \({\widehat{H}}f( \checkmark ) = \{\checkmark \}\) and \({\widehat{H}}f(\langle a,x\rangle ) = \{\langle a,y\rangle \mid y \in f( x )\}\).

Non-deterministic automata (NDA) over the input alphabet \(A\) can be regarded as coalgebras for the functor \({\widehat{H}}:\mathcal {K}{\!\!}\ell (\mathcal {P}) \rightarrow \mathcal {K}{\!\!}\ell (\mathcal {P})\). Consider, on the left, a 3-state NDA, where the only final state is marked by a double circle.

It can be represented as a coalgebra \(e :X \rightarrow {\widehat{H}}X\), that is a function \(e :X \rightarrow \mathcal {P}( A\times X +1 )\), given above on the right, which assigns to each state \(x\in X\) a set which: contains \(\checkmark \) if \(x\) is final; and \(\langle a,y\rangle \) for all transitions \(x\xrightarrow {a} y\).

It is easy to see that \(M=\mathcal {P}\) and \(H\) above satisfy the conditions of Theorem 2.7 and therefore both the final \({\widehat{H}}\)-coalgebra and the initial \({\widehat{H}}\)-algebra are the lifting of the initial algebra for the functor \(H X=A \times X +1\), given by \(A^*\) with structure \(\iota :A \times A^{*} +1 \rightarrow A^{*}\) which maps \(\langle a,w\rangle \) to \(aw\) and \(\checkmark \) to \(\epsilon \).

For an NDA \((X,e)\), the final coalgebra homomorphism \({!_{e}} :X \rightarrow A^*\) is the function \(X \rightarrow \mathcal {P}A^*\) that maps every state in \(X\) to the language that it accepts. In \(\mathcal {K}{\!\!}\ell (\mathcal {P})\):

2.5 Monads with Fixpoint Operators

In order to develop our theory of systems with internal behavior, we will adopt an equational perspective on coalgebras. In the sequel we recall some preliminaries on this viewpoint.

Let \(T: \mathbf {C}\rightarrow \mathbf {C}\) be a monad on any category \(\mathbf {C}\). Any morphism \(e: X \rightarrow T(X+Y)\) (i.e. a coalgebra for the functor \(T(\mathrm {Id}+Y)\)) may be understood as a system of mutually recursive equations. In our applications we are interested in the case where \(\mathbf {C}= \mathcal {K}{\!\!}\ell (M)\) and \(T = {\widehat{{H^*}}}\) is a (lifted) free monad. As in the example of NDA (Example 2.8) take \(M = \mathcal {P}\) and \(HX = 1 + A \times X\). Now, set \(TX = A^{*} + A^{*} \times X\) and consider the following system of mutually recursive equations
$$ x_0 \approx \{ c, (ab, x_1) \}, \qquad \quad x_1 \approx \{ d, (a, x_0), (\epsilon , y) \}, $$
where \(x_0, x_1 \in X\) are recursion variables, \(y \in Y\) is a parameter and \(a, b, c, d \in A\). A solution assigns to each of the two variables \(x_0, x_1\) an element of \(\mathcal {P}(TY)\) such that the formal equations \(\approx \) become actual identities in \(\mathcal {K}{\!\!}\ell (\mathcal {P})\):
$$ x_0 \mapsto \{ (aba)^*c, (aba)^*abd, ((aba)^*ab, y)\}, \quad x_1 \mapsto \{ (aab)^*d, (aab)^*ac, ((aab)^*, y)\}. $$
Observe that the above system of equations corresponds to an equation morphism \(e :X \rightarrow T(X+Y)\) and the solution to a morphism \({e}^\dag :X \rightarrow TY\), both in \(\mathcal {K}{\!\!}\ell (M)\). The property that \({e}^\dag \) is a solution for \(e\) is expressed by the following equation in \(\mathcal {K}{\!\!}\ell (M)\):So \(e \mapsto {e}^\dag \) is a parametrized fixpoint operator, i.e. a family of fixpoint operators indexed by parameter sets \(Y\).

Remark 2.9

In our applications we shall need a certain equational property of the operator \(e \mapsto {e}^\dag \): for all \(Y \in \mathbf {C}\) and equation morphism \(e: X \rightarrow T(X+X+Y)\), the following equation, called double dagger law, holds:This and other laws of parametrized fixpoint operators have been studied by Bloom and Ésik in the context of iteration theories [6]. A closely related notion is that of Elgot monads [1, 2].

Example 2.10

(Least fixpoint solutions). Let \(T: \mathbf {C}\rightarrow \mathbf {C}\) be a locally continuous monad on the \(\mathbf {Cppo}\)-enriched category \(\mathbf {C}\). Then \(T\) is equipped with a parametrized fixpoint operator obtained by taking least fixpoints: given a morphism \(e: X \rightarrow T(X+Y)\) consider the function \(\varPhi _e\) on \(\mathbf {C}(X,TY)\) given by \(\varPhi _e(s) = \mu ^T_Y \circ T[s,\eta ^T_Y] \circ e\). Then \(\varPhi _e\) is continuous and we take \({e}^\dag \) to be the least fixpoint of \(\varPhi _e\). Since \({e}^\dag = \varPhi _e({e}^\dag )\), Eq. (1) holds, and it follows from the argument in Theorem 8.2.15 and Exercise 8.2.17 in [6] that the operator \(e \mapsto {e}^\dag \) satisfies the axioms of iteration theories (or Elgot monads, respectively). In particular the double dagger law holds for the least fixpoint operator \(e \mapsto {e}^\dag \).

3 Motivating Examples

The work of [12] bridged a gap in the theory of coalgebras: for certain functors, taking the final coalgebra directly in \(\mathbf {Sets}\) does not give the right notion of equivalence. For instance, for NDA, one would obtain bisimilarity instead of language equivalence. The change to Kleisli categories allowed the recovery of the usual language semantics for NDA and, more generally, led to the development of coalgebraic trace semantics.

In the Introduction we argued that there are relevant examples for which this approach still yields the unwanted notion of equivalence, the problem being that it does not consider the extra algebraic structure on the label set. In the sequel, we motivate the reader for the generic theory we will develop by detailing two case studies in which this phenomenon can be observed: NDA with \(\epsilon \)-transitions and NDA with word transitions. Later on, in Example 5.7, we will also consider Mazurkiewicz traces [17].

NDA with \(\epsilon \text {-}transition\). In the world of automata, \(\epsilon \)-transitions are considered in order to enable easy composition of automata and compact representations of languages. These transitions are to be interpreted as the empty word when computing the language accepted by a state. Consider, on the left, the following simple example of an NDA with \(\epsilon \)-transitions, where states \(x\) and \(y\) just make \(\epsilon \) transitions. The intended semantics in this example is that all states accept words in \(a^*\).

Note that, more explicitly, these are just NDA where the alphabet has a distinguished symbol \(\epsilon \). So, they are coalgebras for the functor \({\widehat{H + \mathrm {Id}}}:\mathcal {K}{\!\!}\ell (\mathcal {P}) \rightarrow \mathcal {K}{\!\!}\ell (\mathcal {P})\) (where \(H\) is the functor of Example 2.8), i.e. functions \(e :X \rightarrow \mathcal {P}( (A \times X + 1) +X) \cong \mathcal {P}( (A+1) \times X + 1)\), as made explicit for the above automaton in the middle.

The final coalgebra for \({\widehat{H+\mathrm {Id}}}\) is simply \((A+1)^{*}\) and the final map \({!_{e}} :X \rightarrow (A+1)^{*}\) assigns to each state the language in \((A+1)^{*}\) that it accepts. However, the equivalence induced by \({!_{e}}\) is too fine grained: for the automata above, \({!_{e}}\) maps \(x\), \(y\) and \(z\) to three different languages (on the right), where the number of \(\epsilon \) plays an explicit role, but the intended semantics should disregard \(\epsilon \)’s.

NDA with word transitions. This is a variation on the motivating example of the introduction: instead of languages, transitions are labeled by words1. Formally, consider again the functor \(H\) from Example 2.8. Then NDA with word transitions are coalgebras for the functor \({\widehat{{H^*}}} :\mathcal {K}{\!\!}\ell (\mathcal {P}) \rightarrow \mathcal {K}{\!\!}\ell (\mathcal {P})\), that is, functions \(e :X \rightarrow \mathcal {P}(A^{*} \times X + A^{*})\cong \mathcal {P}(A^{*}\times (X+1))\). We observe that they are like NDA but (1) transitions are labeled by words in \(A^{*}\), rather than just symbols of the alphabet \(A\), and (2) states have associated output languages, rather than just \(\checkmark \). We will draw them as ordinary automata plus an arrow \(\mathop {\Rightarrow }\limits ^{L}\) to denote the output language of a state (no \(\Rightarrow \) stands for the empty language). For an example, consider the following word automaton and associated transition function \(e\).

The semantics of NDA with word transitions is given by languages over \(A\), obtained by concatenating the words in the transitions and ending with a word from the output language. For instance, \(x\) above accepts word \(abc\) but not \(ab\).

However, if we consider the final coalgebra semantics we again have a mismatch. The initial \({H^*}\)-algebra has carrier \((A^{*})^{*} \times A^{*}\) that can be represented as the set of non-empty lists of words over \(A^*\), where \((A^{*})^{*}\) indicates possibly empty lists of words. Its structure \(\iota :A^{*} \times ((A^{*})^{*} \times A^{*}) + A^{*} \rightarrow (A^{*})^{*} \times A^{*}\) maps \(w\) into \((\langle \rangle ,w)\) and \((w',(l,w))\) into \((w'::l,w)\). Here, we use \(\langle \rangle \) to denote the empty list and \(::\) is the append operation. By Theorem 2.7, the final \({\widehat{{H^*}}}\)-coalgebra has the same carrier and structure \(\mathcal {J}\iota ^{-1}\). The final map, as a function \({!_{e}} :X \rightarrow \mathcal {P}((A^{*})^{*} \times A^{*})\), is then defined by commutativity of the following square (in \(\mathcal {K}{\!\!}\ell (\mathcal {P})\)):Once more, the semantics given by \({!_{e}}\) is too fine grained: in the above example, \({!_{e}}(x)=\{([a,b],c)\}\) and \({!_{e}}(u)=\{([\epsilon ,ab],c)\}\) whereas the intended semantics would equate both \(x\) and \(u\), since they both accept the language \(\{abc\}\).
Note that any NDA can be regarded as word automaton. Recall the natural transformation \(\kappa :{\widehat{H}} \Rightarrow {\widehat{{H^*}}}\) defined in Example 2.1.3: for the functor \({\widehat{H}}\) of NDA,
$$\kappa _X :A \times X +1 \rightarrow A^{*}\times X + A^{*}$$
maps any pair \((a,x)\in A\times X\) into \(\{(a,x)\}\in \mathcal {P}(A^{*}\times X + A^{*})\) and \(\checkmark \in 1\) into \(\{ \epsilon \} \in \mathcal {P}(A^{*}\times X + A^{*})\). Composing an NDA \(e :X \rightarrow {\widehat{H}} X\) with \(\kappa _X:{\widehat{H}} X \rightarrow {\widehat{{H^*}}} X\), one obtains the word automaton \(\kappa _X \circ e\).
In the same way, every NDA with \(\epsilon \)-transitions can also be seen as a word automaton by postcomposing with the natural transformation \([\kappa , \eta ] :{\widehat{H+\mathrm {Id}}} \Rightarrow {\widehat{{H^*}}}\). Here, \(\eta :\mathrm {Id}\Rightarrow {\widehat{{H^*}}}\) is the unit of the free monad \({\widehat{{H^*}}}\) defined on a given set \(X\) below (the multiplication \(\mu :{\widehat{{H^*}}}{\widehat{{H^*}}} \Rightarrow {\widehat{{H^*}}}\) is shown on the right).
$$\begin{aligned}&\eta _X :X \rightarrow A^{*} \times X+A^{*}\qquad \; \mu _X :A^{*} \times (( A^{*} \times X + A^{*} ) + A^* \rightarrow A^{*} \times X + A^{*}\\&x \mapsto \{(\epsilon , x)\} \qquad \qquad \qquad (w, (w',x)) \mapsto \{(w \cdot w', x) \}\quad (w, w') \mapsto \{ w\cdot w' \}\\&\qquad \qquad \qquad \qquad \qquad \; w \mapsto \{w\} \end{aligned}$$
In the next section, we propose to define the semantics of \({\widehat{{H^*}}}\)-coalgebras via a canonical fixpoint operator rather than with the final map which as we saw above might yield unwanted semantics. Then, using the observation above, the semantics of \({\widehat{H}}\)-coalgebras and \({\widehat{H+\mathrm {Id}}}\)-coalgebras will be defined by embedding them into \({\widehat{{H^*}}}\)-coalgebras via the natural transformations \(\kappa \) and \([\kappa ,\eta ]\) described above.

4 Canonical Fixpoint Solutions

In this section we lay the foundations of our approach. A construction is introduced assigning canonical solutions to coalgebras seen as equation morphisms (cf. Sect. 2.5) in a \(\mathbf {Cppo}\)-enriched setting. We will be working under the following assumptions.

Assumption 4.1

Let \(\mathbf {C}\) be a \(\mathbf {Cppo}\)-enriched category with coproducts and composition left-strict. Let \(T\) be a locally continuous monad on \(\mathbf {C}\) such that, for all object \(Y\), an initial algebra for \(T(\mathrm {Id}+Y)\) exists.

As seen in Example 2.10, in this setting an equation morphism \(e: X \rightarrow T(X+Y)\) may be given the least solution. Here, we take a different approach, exploiting the initial algebra-final coalgebra coincidence of Theorem 2.5.

For every parameter object \(Y \in \mathbf {C}\), the endofunctor \(T(\mathrm {Id}+Y)\) is a locally continuous monad because it is the composition of \(T\) with the (locally continuous) exception monad \(\mathrm {Id}+Y\). Thus, by Theorem 2.5 applied to \(T(\mathrm {Id}+Y)\), the initial \(T(\mathrm {Id}+Y)\)-algebra \(\iota _Y : T(I_Y + Y)\xrightarrow {\cong } I_Y\) yields a final \(T(\mathrm {Id}+Y)\)-coalgebra \(\iota _Y^{-1} : I_Y \xrightarrow {\cong } T(I_Y + Y)\). This allows us to associate with any equation morphism \(e: X \rightarrow T(X+Y)\) a canonical morphism of type \(X \rightarrow TY\) as in the following diagram.In (3), the map \({!_{e}}: X \rightarrow I_Y\) is the unique morphism of \(T(\mathrm {Id}+Y)\)-coalgebras given by finality of \(\iota _Y^{-1} : I_Y \rightarrow T(I_Y + Y)\), whereas Open image in new window is the unique morphism of \(T(\mathrm {Id}+Y)\)-algebras given by initiality of \(\iota _Y : T(I_Y + Y)\rightarrow I_Y\).

We call the composite Open image in new window the canonical fixpoint solution of \(e\). In the following we check that the canonical fixpoint solution is indeed a solution of \(e\), in fact, it coincides with the least solution.

Proposition 4.2

Given a morphism \(e: X \rightarrow T(X+Y)\), then the least solution of \(e\) as in Example 2.10 is the canonical fixpoint solution: Open image in new window as in (3).

As recalled in Example 2.10, the least fixpoint operator \(e \mapsto {e}^\dag \) satisfies the double dagger law. Thus Proposition 4.2 yields the following result2.

Corollary 4.3

Let \(\mathbf {C}\) and \(T : \mathbf {C}\rightarrow \mathbf {C}\) be as in Assumption 4.1. Then the canonical fixpoint operator \(e \mapsto {e}^\dag \) associated with \(T\) satisfies the double dagger law.

We now introduce a factorisation result on the operator \(e \mapsto {e}^\dag \), which is useful for comparing solutions provided by different monads connected via a monad morphism.

Proposition 4.4

(Factorisation Lemma). Suppose that \(T\) and \(T'\) are monads on \(\mathbf {C}\) satisfying Assumption 4.1 and \(\gamma : T \Rightarrow T'\) is a monad morphism. For any morphism \(e : X \rightarrow T(X+Y)\):
$$\begin{aligned} \gamma _Y \circ {e}^\dag = {(\gamma _{X+Y} \circ e)}^\dag : X \rightarrow T' Y, \end{aligned}$$
where \({e}^\dag \) is provided by the canonical fixpoint solution for \(T\) and \({(\gamma _{X+Y} \circ e)}^\dag \) by the one for \(T'\).

4.1 A Theory of Systems with Internal Behavior

We now use canonical fixpoint solutions to provide an abstract theory of systems with internal behavior, that we will later instantiate to the motivating examples of Sect. 3. Throughout this section, we will develop our framework for the following ingredients.

Assumption 4.5

Let \(\mathbf {C}\) be a \(\mathbf {Cppo}\)-enriched category with coproducts and composition left-strict and let \(F:\mathbf {C}\rightarrow \mathbf {C}\) be a locally continuous functor for which all free \(F\)-algebras exist. Consider the following two monads derived from \(F\):
  • the free monad \({F^*} :\mathbf {C}\rightarrow \mathbf {C}\) (cf. Example 2.1.3), for which we suppose that an initial \({F^*}(\mathrm {Id}+Y)\)-algebra exists for all \(Y\in \mathbf {C}\);

  • for a fixed \(X \in \mathbf {C}\), the exception monad \(FX + \mathrm {Id}:\mathbf {C}\rightarrow \mathbf {C}\) (cf. Example 2.1.2), for which we suppose that an initial \(FX+\mathrm {Id}+Y\)-algebra exists for all \(Y\in \mathbf {C}\).

In the next proposition we verify that the construction introduced in the previous section applies to the two monads of Assumption 4.5.

Proposition 4.6

Let \(\mathbf {C}\), \(F\), \({F^*}\) and \(FX + \mathrm {Id}\) be as in Assumption 4.5. Then \(\mathbf {C}\) and the monads \({F^*}:\mathbf {C}\rightarrow \mathbf {C}\) and \(FX + \mathrm {Id}:\mathbf {C}\rightarrow \mathbf {C}\) satisfy Assumption 4.1. Thus both \({F^*}\) and \(FX + \mathrm {Id}\) are monads with canonical fixpoint solution (which satisfy the double dagger law by Corollary 4.3).

To avoid ambiguity, we denote with \(e \mapsto {e}^\dag \) the canonical fixpoint operator associated with \({F^*}\) and with \(e \mapsto {e}^\ddag \) the one associated with \(FX + \mathrm {Id}\).

We will employ the additional structure of those two monads for the analysis of \(F\) -systems with internal transitions. An \(F\)-system is simply an \(F\)-coalgebra \(e: X \rightarrow FX\), where we take the operational point of view of seeing \(X\) as a space of states and \(F\) as the transition type of \(e\). An \(F\)-system with internal transitions is an \((F+ \mathrm {Id})\)-coalgebra \(e : X \rightarrow FX +X\), where the component \(X\) of the codomain is targeted by those transitions representing the internal (non-interacting) behavior of system \(e\).

A key observation for our analysis is that \(F\)-systems—with or without internal transitions—enjoy a standard representation as \({F^*}\)-systems, that is, coalgebras of the form \(e: X \rightarrow {F^*}X\).

Definition 4.7

\(\mathbf{(}{F}\mathbf{\text {-}}\mathbf{{systems}}\) as \({F^*}\mathbf{\text {-}}\mathbf{{systems}}\mathbf{).}\) Let \(\kappa : F\rightarrow {F^*}\) be as in Example 2.1.3. We introduce the following encoding \(e \mapsto \bar{e}\) of \(F\)-systems and \(F\)-systems with internal transitions as \({F^*}\)-systems.
  • Given an \(F\)-system \(e :X \rightarrow FX\), define \(\bar{e} :X \rightarrow {F^*}X\) as
  • Given an \(F\)-system with internal transitions \(e : X \rightarrow FX + X\), define \(\bar{e} : X \rightarrow {F^*}X\) as Open image in new window .

Thus \(F\)-systems (with or without internal transitions) may be seen as equation morphisms \(X \rightarrow {F^*}(X+0)\) for the monad \({F^*}\) (with the initial object \(Y = 0\) as parameter), with solutions by canonical fixpoint (cf. Sect. 2.5). This will allow us to achieve the following.  

We supply a uniform trace semantics for \(F\)-systems, possibly with internal transitions, and \({F^*}\)-systems, based on the canonical fixpoint solution operator of \({F^*}\).


We use the canonical fixpoint operator of \(FX + \mathrm {Id}\) to transform any \(F\)-system \(e: X \rightarrow FX + X\) with internal transitions into an \(F\)-system \({e}\!\setminus \! \epsilon : X \rightarrow FX\) without internal transitions.


We prove that the transformation of §2 is sound with respect to the semantics of §1.


§1: Uniform trace semantics. The canonical fixpoint semantics of \(F\)-systems, with or without internal transitions, and \({F^*}\)-systems is defined as follows.

Definition 4.8

(Canonical Fixpoint Semantics).
  • For an \({F^*}\)-system \(e:X \rightarrow {F^*}X\), its semantics \([\![ e ]\!] :X \rightarrow {F^*}0\) is defined as \({e}^\dag \) (note that \(e\) can be seen as an equation morphism for \({F^*}\) on parameter \(Y = 0\)).

  • For an \(F\)-system \(e:X \rightarrow FX\), its semantics \([\![ e ]\!] :X \rightarrow F0\) is defined as \({\bar{e}}^\dag = {(\kappa _X \circ e)}^\dag \).

  • For an \(F\)-system with internal transitions \(e:X \rightarrow FX+X\), its semantics \([\![ e ]\!] :X \rightarrow F0\) is defined as \({\bar{e}}^\dag = {([\kappa _X,\eta _X^{{F^*}}] \circ e)}^\dag \).

The underlying intuition of Definition 4.8 is that canonical fixpoint solutions may be given an operational understanding. Given an \({F^*}\)-system \(e: X \rightarrow {F^*}X\), its solution \({e}^\dag : X \rightarrow {F^*}0\) is formally defined as the composite Open image in new window (cf. (3)): we can see the coalgebra morphism \({!_{e}}\) as a map that gives the behavior of system \(e\) without taking into account the structure of labels and the algebra morphism Open image in new window as evaluating this structure, e.g. flattening words of words, using the initial algebra \(\mu _0 : {F^*}{F^*}0 \rightarrow {F^*}0\) for the monad \({F^*}\). In particular, the action of Open image in new window is what makes our semantics suitable for modeling “algebraic” operations on internal transitions such as \(\epsilon \)-elimination, as we will see in concrete instances of our framework.

Remark 4.9

The canonical fixpoint semantics of Definition 4.8 encompasses the framework for traces in [12], where the semantics of an \(F\)-system \(e : X \rightarrow FX\)—without internal transitions—is defined as the unique morphism \({!_{e}}\) from \(X\) into the final \(F\)-coalgebra \({F^*}0\). Indeed, using finality of \({F^*}0\), it can be shown that \({!_{e}} = [\![ e ]\!]\). Theorem 4.10 below guarantees compatibility with Assumption 4.5.

The following result is instrumental in our examples and in comparing our theory with the one developed in [12] for trace semantics in Kleisli categories.

Theorem 4.10

Let \(M : \mathbf {Sets}\rightarrow \mathbf {Sets}\) be a monad and \(H : \mathbf {Sets}\rightarrow \mathbf {Sets}\) be a functor satisfying the assumptions of Theorem 2.7, that is:
  1. (a)

    \(\mathcal {K}{\!\!}\ell (M)\) is \(\mathbf {Cppo}\)-enriched and composition is left strict;

  2. (b)

    \(H\) is accessible and has a locally continuous lifting \({\widehat{H}} :\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\).

Then \(\mathcal {K}{\!\!}\ell (M)\), \({\widehat{H}}\), \({{\widehat{H}}^*}\) and \({\widehat{H}}\mathcal {J}X + \mathrm {Id}\) (for a given set \(X\)) satisfy Assumption 4.5.

Example 4.11

(Semantics of NDA with word transitions). In Sect. 3, we have modeled NDA with word transitions as \({\widehat{{H ^*}}}\)-coalgebras on \(\mathcal {K}{\!\!}\ell (M)\), where \(H\) and \(M\) are defined as for NDA (see Example 2.8). By Proposition 2.4, \({\widehat{{H^*}}} = {{\widehat{H}}^*}\) and thus, by virtue of Theorem 4.10, \({\widehat{{H^*}}}\) satisfies Assumption 4.5. Therefore we can define the semantics of NDA with word transitions \(e :X \rightarrow \mathcal {P}(A^*\times X + A^*)\) via canonical fixpoint solutions as Open image in new window :Observe that the above diagram is just (3) instantiated with \(T={\widehat{{H ^*}}}\) and \(Y=0\). Moreover, this diagram is in \(\mathcal {K}{\!\!}\ell (\mathcal {P})\) and hence the explicit definition of \({e}^\dag \) as a function \(X \rightarrow \mathcal {P}(A^*)\) is given by Open image in new window .

Both \({!_{e}}\) and Open image in new window can be defined uniquely by the commutativity of the above diagram. We have already defined \({!_{e}}\) in diagram (2) and the definition of Open image in new window is given in the right-hand square of the above diagram. The isomorphism in the middle and \(\mu _0\) were defined in Sect. 3.

Using the above formula Open image in new window we now have the semantics of \(e\):
$$\begin{aligned} w \in {e}^\dag (x) \;\Leftrightarrow \;&\; w \in {e}(x)\ \mathbf{ or }\\\nonumber&\;\exists _{y\in X, w_1,w_2\in A^*}\ (w_1, y) \in {e}(x), w_2 \in {e}^\dag (y) \text { and } w=w_1w_2. \end{aligned}$$
This definition is precisely the language semantics: a word \(w\) is accepted by a state \(x\) if there exists a decomposition \(w=w_1\cdots w_n\) such that Open image in new window Take again the automaton of the motivating example. We can calculate the semantics and observe that we now get exactly what was expected: \( {e}^\dag (u)= {e}^\dag (v)\).

The key role played by the monad structure on \(A^*\) can be appreciated by comparing the graphs of \({!_{e}}\) and Open image in new window as in the example above. The algebra morphism Open image in new window maps values from the initial algebra \((A^*)^*\times A^*\) for the endofunctor \({\widehat{{H ^*}}}\) into the initial algebra \(A^*\) for the monad \({\widehat{{H ^*}}}\): its action is precisely to take into account the additional equations encoded by the algebraic theory of the monad \({\widehat{{H ^*}}}\). For instance, we can see the mapping of \( {!_{e}}(u) = \{([\epsilon ,ab],c)\}\) into the word \(abc\) as the result of concatenating the words \(\epsilon \), \(ab\), \(c\) and then quotienting out of the equation \(\epsilon abc = abc\) in the monoid \(A^*\).

Remark 4.12

(Multiple Solutions). The canonical solution \({e}^\dag \) is not the unique solution. Indeed, the uniqueness of \({!_{e}}\) in the left-hand square and of Open image in new window in the right-hand square of the diagram above does not imply the uniqueness of \(e^\dagger \). To see this, take for instance the automaton

Both \(s(x)=\emptyset \) and \(s'(x)=A^{*}\) are solutions. The canonical one is the least one, i.e., \(e^{\dagger }(x)=s(x)=\emptyset \).

Example 4.13

(Semantics of NDA with \({\epsilon }\text {-}transitions\) ). NDA with \(\epsilon \)-transitions are modeled as \({\widehat{H + \mathrm {Id}}}\)-coalgebras on \(\mathcal {K}{\!\!}\ell (M)\), where \(H\) and \(M\) are defined as for NDA (see Example 2.8). We can define the semantics of NDA with \(\epsilon \)-transitions via canonical fixpoint solutions as \([\![ e ]\!] = {\bar{e}}^\dag \), where \(\bar{e}\) is the automaton with word transitions corresponding to \(e\) (see Definition 4.7). The first example in Sect. 3 would be represented as follows,

where \(\eta \) and \(\kappa \) are defined as at the end of Sect. 3. By using (5), it can be easily checked that the semantics \([\![ e ]\!]={\bar{e}}^\dag :X \rightarrow \mathcal {P}A^{*}\) maps \(x\), \(y\) and \(z\) into \(a^{*}\).

§2: Elimination of internal transitions. We view an \(F\)-system \(e : X \rightarrow FX + X\) with internal transitions as an equation morphism for the monad \(FX + \mathrm {Id}\), with parameter \(Y = 0\). Thus we can use the canonical fixpoint solution of \(FX + \mathrm {Id}\) to obtain an \(F\)-system \({e}^\ddag : X \rightarrow FX + 0 = FX\), which we denote by \({e}\!\setminus \! \epsilon \). The construction is depicted below.

Example 4.14

\({ (}{\epsilon }\text {-}elimination{ ).}\) Using the automaton of Example 4.13, we can perform \(\epsilon \)-elimination, as defined in (6), using the canonical solution for the monad \({\widehat{H}}\mathcal {J}X +\mathrm {Id}\):We obtain the following NDA Open image in new window .The semantics \([\![ {e}\!\setminus \! \epsilon ]\!]\) is defined as \({\overline{{e}\!\setminus \! \epsilon }}^\dag \), where \(\overline{{e}\!\setminus \! \epsilon }= \kappa _X \mathrel {\circ }{e}\!\setminus \! \epsilon \) is the representation of the NDA \({e}\!\setminus \! \epsilon \) as an automaton with word transitions (Definition 4.7). It is immediate to see, in this case, that \([\![ {e}\!\setminus \! \epsilon ]\!]=[\![ e ]\!]\). This fact is an instance of Theorem 4.17 below.

Remark 4.15

Note that \(\epsilon \)-elimination was recently defined using a trace operator on a Kleisli category [3, 11, 22]. These works are based on the trace semantics of Hasuo et al. [12] and tailored for \(\epsilon \)-elimination. They do not take into account any algebraic structure of the labels and are hence not applicable to the other examples we consider in this paper.

§3: Soundness of \(\epsilon \mathbf{\text {-}}\mathbf{elimination.}\) We now formally prove that the canonical fixpoint semantics of \(e\) and \({e}\!\setminus \! \epsilon \) coincide. To this end, first we show how the construction \(e \mapsto {e}\!\setminus \! \epsilon \) can be expressed in terms of the canonical fixpoint solution of \({F^*}\). This turns out to be an application of the factorisation lemma (Proposition 4.4), for which we introduce the natural transformation \(\pi : FX + \mathrm {Id}\Rightarrow {F^*}(X+\mathrm {Id})\) defined at \(Y \in \mathbf {C}\) bySince \({F^*}\) is a monad with canonical fixpoint solutions, it can be verified that so is \({F^*}(X+\mathrm {Id})\). Moreover, \(\pi \) is a monad morphism between \(FX + \mathrm {Id}\) and \({F^*}(X+\mathrm {Id}).\) These observations allow us to prove the following.

Proposition 4.16

(Factorisation property of \(e \mapsto {e}\!\setminus \! \epsilon \) ). For any \(F\)-system \(e : X \rightarrow FX + X\) with internal transitions, consider the equation morphism \(\pi _{X} \circ e: X \rightarrow {F^*}(X+X)\). Then:
$$\begin{aligned} \pi _0 \circ {e}\!\setminus \! \epsilon = {(\pi _{X} \circ e)}^\dag : X \rightarrow {F^*}X. \end{aligned}$$


This follows simply by an application of Proposition 4.4 to \({e}\!\setminus \! \epsilon = e^\ddagger \) and \(\gamma = \pi \) with \(Y = 0\).    \(\square \)

We are now in position to show point §3: soundness of \(\epsilon \)-elimination.

Theorem 4.17

(Eliminating internal transitions is sound). For any \(F\)-system \(e : X \rightarrow FX + X\) with internal transitions,
$$ [\![ {e}\!\setminus \! \epsilon ]\!] = [\![ e ]\!].$$


The statement is shown by the following derivation.
$$\begin{aligned}{}[\![ {e}\!\setminus \! \epsilon ]\!]~~=&\; [\![ {e}^\ddag ]\!] \qquad \qquad \qquad \qquad \!\! \text {Definition of}~{e}\!\setminus \! \epsilon \\ =&\; {(\kappa _X \circ {e}^\ddag )}^\dag \qquad \qquad \qquad \! \text {Definition of}~[\![ - ]\!]~\text {(Definition 4.8)}\\ =&\; {(\pi _0 \circ {e}^\ddag )}^\dag \qquad \qquad \qquad \! \text {Definition of}~\pi _0 \\ =&\; (\pi _{X} \circ e)^{\dagger \dagger } \qquad \qquad \qquad \! \text {Proposition 4.16} \\ =&\; {({F^*}(\nabla _X) \circ (\pi _{X} \circ e))}^\dag \qquad \text {double dagger law}\\ =&\; {\bar{e}}^\dag \qquad \qquad \qquad \qquad \; \text {Definition of}~\bar{e}~\text {(Definition 4.7) and}~\pi _X \\ =&\; [\![ e ]\!] \qquad \qquad \qquad \qquad \! \text {Definition of}~[\![ - ]\!]. \end{aligned}$$
   \(\square \)

5 Quotient Semantics

When considering behavior of systems it is common to encounter spectrums of successively coarser equivalences. For instance, in basic process algebra trace equivalence can be obtained by quotienting bisimilarity with an axiom stating the distributivity of action prefixing by non-determinism [21]. There are many more examples of this phenomenon, including Mazurkiewicz traces, which we will describe below.

In this section we develop a variant of the canonical fixpoint semantics, where we can encompass in a uniform manner behaviors which are quotients of the canonical behaviors of the previous section (that is, the object \({F^*}0\)).

Assumption 5.1

Let \(\mathbf {C}\), \(F\), \({F^*}\) and \(FX+\mathrm {Id}\) be as in Assumption 4.5 and \(\gamma :{F^*}\Rightarrow Q\) a monad quotient for some monad \(Q\). Moreover, suppose that for all \(Y \in \mathbf {C}\) an initial \(Q(\mathrm {Id}+Y)\)-algebra exists.

Observe that, as Assumption 5.1 subsumes Assumption 4.5, we are within the framework of previous section, with the canonical fixpoint solution of \({F^*}\) providing semantics for \({F^*}\)- and \(F\)-systems. For our extension, one is interested in \(Q0\) as a semantic domain coarser than \({F^*}0\) and we aim at defining an interpretation for \(F\)-systems in \(Q0\). To this aim, we first check that \(Q\) has canonical fixpoint solutions.

Proposition 5.2

Let \(\mathbf {C}\), \(F\), \(Q\) and \(\gamma : {F^*} \Rightarrow Q\) be as in Assumption 5.1. Then Assumption 4.1 holds for \(\mathbf {C}\) and \(Q\), meaning that \(Q\) is a monad with canonical fixpoint solutions (which satisfy the double dagger law by Corollary 4.3).

We use the notation \(e \mapsto {e}^{\sim }\) for the canonical fixpoint operator of \(Q\). This allows us to define the semantics of \(Q\)-systems, analogously to what we did for \({F^*}\)-systems in Definition 4.8. Moreover, the connecting monad morphism \(\gamma :{F^*} \Rightarrow Q\) yields an extension of this semantics to include also systems of transition type \({F^*}\) and \(F\).

Definition 5.3

(Quotient Semantics). The quotient semantics of \(F\)-systems, with or without internal transitions, \({F^*}\)-systems and \(Q\)-systems is defined as follows.
  • For a \(Q\)-system \(e :X \rightarrow QX\), its semantics \([\![ e ]\!]_{\sim } :X \rightarrow Q0\) is defined as \({e}^{\sim }\) (note that \(e\) can be regarded as an equation morphism for \(Q\) with \(Y=0\)).

  • For an \({F^*}\)-system \(e:X \rightarrow {F^*}X\), its semantics \([\![ e ]\!]_{\sim }:X \rightarrow Q0\) is defined as \({(\gamma _X \circ e)}^{\sim }\).

  • For an \(F\)-system \(e\)—with or without internal transitions—its semantics \([\![ e ]\!]_{\sim }: X \rightarrow Q0 \) is defined as \({(\gamma _X \circ \bar{e})}^{\sim }\), where \(\overline{e}\) is as in Definition 4.7.

The Factorisation Lemma (Proposition 4.4) allows us to establish a link between the canonical fixpoint semantics \([\![ - ]\!]\) and the quotient semantics \([\![ - ]\!]_{\sim }\).

Proposition 5.4

(Factorisation for the quotient semantics). Let \(e\) be either an \({F^*}\)-system or an \(F\)-system (with or without internal transitions). Then:
$$\begin{aligned}{}[\![ e ]\!]_{\sim } = \gamma _0 \circ [\![ e ]\!]. \end{aligned}$$

As a corollary we obtain that eliminating internal transitions is sound also for quotient semantics.

Corollary 5.5

For any \(F\)-system \(e : X \rightarrow FX +X\) with internal transitions,
$$\begin{aligned}{}[\![ e ]\!]_{\sim } =[\![ {e}\!\setminus \! \epsilon ]\!]_{\sim }. \end{aligned}$$

The quotient semantics can be formulated in a Kleisli category \(\mathcal {K}{\!\!}\ell (M)\) by further assuming \((c)\) below. This is needed to lift a quotient of monads from \(\mathbf {Sets}\) to \(\mathcal {K}{\!\!}\ell (M)\).

Theorem 5.6

Let \(M : \mathbf {Sets}\rightarrow \mathbf {Sets}\) be a monad and \(H : \mathbf {Sets}\rightarrow \mathbf {Sets}\) be an accessible functor satisfying the assumptions of Theorem 2.7. By Proposition 2.4 the free monad \({H^*}\) on \(H\) lifts to a monad \({\widehat{{H^*}}}:\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\) via a distributive law \(\lambda : {H^*}M \Rightarrow M{H^*}\) with \({\widehat{{H^*}}} = {{\widehat{H}}^*}\). Let \(R: \mathbf {Sets}\rightarrow \mathbf {Sets}\) be a monad and \(\xi : {H^*} \Rightarrow R\) a monad quotient such that
  1. (c)
    for each set \(X\), there is a map \(\lambda _X':RMX \rightarrow MRX\) making the following commute.
Then the following hold:
  1. 1.

    there is a monad \({\widehat{R}}:\mathcal {K}{\!\!}\ell (M) \rightarrow \mathcal {K}{\!\!}\ell (M)\) lifting \(R\) and a monad morphism \({\widehat{\xi }} :{{\widehat{H}}^*} \Rightarrow {\widehat{R}}\) defined as \({\widehat{{\xi }_X}}=\mathcal {J}({\xi }_X)\);

  2. 2.

    \(\mathcal {K}{\!\!}\ell (M)\), \({\widehat{H}}\), \({{\widehat{H}}^*}\), \({\widehat{H}}\mathcal {J}X + \mathrm {Id}\) (for a given set \(X\)), \({\widehat{R}}\) and \({\widehat{\xi }} :{{\widehat{H}}^*} \Rightarrow {\widehat{R}}\) satisfy Assumption 5.1.


Notice that condition (c) and the first part of statement 1 are related to [7, Theorem 1]; however, that paper treats distributive laws of monads over endofunctors.

Example 5.7

(Mazurkiewicz traces). This example, using a known equivalence in concurrency theory, illustrates the use of the quotient semantics developed in Sect. 5.

The trace semantics proposed by Mazurkiewicz [17] accounts for concurrent actions. Intuitively, let \(A\) be the action alphabet and \(a,b\in A\). We will call \(a\) and \(b\) concurrent, and write \(a\equiv b\), if the order in which these actions occur is not relevant. This means that we equate words that only differ in the order of these two actions, e.g. \(uabv\) and \(ubav\) denote the same Mazurkiewicz trace.

To obtain the intended semantics of Mazurkiewicz traces we use the quotient semantics defined above3. In particular, for Mazurkiewisz traces one considers a symmetric and irreflexive “independence” relation \(I\) on the label set \(A\). Let \(\equiv \) be the least congruence relation on the free monoid \(A^*\) such that
$$ (a,b) \in I \Rightarrow ab \equiv ba. $$
We now have two monads on \(\mathbf {Sets}\), namely \({H^*}X=A^* \times X + A^*\) and \(RX=A^*\!/_\equiv \times X + A^*\!/_\equiv \). There is the canonical quotient of monads \(\xi : {H^*} \Rightarrow R\) given by identifying words of the same \(\equiv \)-equivalence class. It can be checked that those data satisfy the assumptions of Theorem 5.6 and thus we are allowed to apply the quotient semantics \([\![ - ]\!]_{\sim }\). This will be given on an NDA \(e:X \rightarrow {\widehat{H}}X\) by first embedding it into \({{\widehat{H}}^*}\) as \(\bar{e} = \kappa _X \circ e :X\rightarrow {{\widehat{H}}^*}X\) and then into \({\widehat{R}}\) as \({\widehat{\xi }}_X \circ \bar{e} :X\rightarrow {\widehat{R}}X\). To this morphism we apply the canonical fixpoint operator of \({\widehat{R}}\) to obtain \({({\widehat{\xi }}_X \circ \bar{e})}^{\sim }\), that is, the semantics \([\![ e ]\!]_{\sim } :X \rightarrow R0=A^{*}\!/\!\equiv \). It is easy to see that this definition captures the intended semantics: for all states \(x\in X\)
$$ [\![ e ]\!]_{\sim }(x) = \{ [w]_\equiv \mid w \in [\![ e ]\!](x)\}. $$
Indeed, by Proposition 5.4, \([\![ e ]\!]_{\sim }= {\widehat{\xi }}_0 \circ [\![ e ]\!]\) and \({\widehat{\xi }}_0 :{{\widehat{H}}^*}0 \rightarrow {\widehat{R}}0\) is just \(\mathcal {J}\xi _0\) where \(\xi _0 :A^* \rightarrow A^*\!/_\equiv \) maps every word \(w\) into its equivalence class \( [w]_\equiv \).

6 Discussion

The framework introduced in this paper provides a uniform way to express the semantics of systems with internal behaviour via canonical fixpoint solutions. Moreover, these solutions are exploited to eliminate internal transitions in a sound way, i.e., preserving the semantics. We have shown our approach at work on NDA with \(\epsilon \)-transitions but, by virtue of Theorem 4.10, it also covers all the examples in [12] (like probabilistic systems) and more (like the weighted automata on positive reals of [22]).

It is worth noticing that, in principle, our framework is applicable also to examples that do not arise from Kleisli categories. Indeed the theory of Sect. 4 is formulated for a general category \(\mathbf {C}\): Assumption 4.5 only requires \(\mathbf {C}\) to be \(\mathbf {Cppo}\)-enriched and the monad \(T\) to be locally continuous. The role of these assumptions is two-fold: (a) ensuring the initial algebra-final coalgebra coincidence and (b) guaranteeing that the canonical fixpoint operator \(e \mapsto {e}^\dag \) satisfies the double dagger law. If (a) implies (b), we could have formulated our theory just assuming the coincidence of initial algebra and final coalgebra and without any \(\mathbf {Cppo}\)-enrichment. Condition (a) holds for some interesting examples not based on Kleisli categories, e.g. for examples in the category of join semi-lattices. Therefore it is of relevance to investigate the following question: given a monad \(T\) with initial algebra-final coalgebra coincidence, under which conditions does the canonical fixpoint solution provided by \(T\) satisfy the double dagger law?

As a concluding remark, let us recall that our original question concerned the problem of modeling the semantics of systems where labels carry an algebraic structure. In this paper we have mostly been focusing on automata theory, but there are many other examples in which the information carried by the labels has relevance for the semantics of the systems under consideration: in logic programming labels are substitutions of terms; in (concurrent) constraint programming they are elements of a lattice; in process calculi they are actions representing syntactical contexts and in tile systems [10] they are morphisms in a category. We believe that our approach provides various insights towards a coalgebraic semantics for these computational models.


  1. 1.

    More generally, one could consider labels from an arbitrary monoid.

  2. 2.

    The equality of least and canonical fixpoint solutions can be used to state a stronger result, namely that canonical fixpoint solutions satisfy the axioms of iteration theories (cf. Example 2.10). However, the double dagger law is the only property that we need here, explaining the statement of Corollary 4.3.

  3. 3.

    Mazurkiewicz traces were defined over labelled transition systems which are similar to NDA but where every state is final. For simplicity, we consider LTS here immediately as NDA.



We are grateful to the anonymous referees for valuable comments. The work of Alexandra Silva is partially funded by the ERDF through the Programme COMPETE and by the Portuguese Foundation for Science and Technology, project ref. FCOMP-01-0124-FEDER-020537 and SFRH/BPD/71956/2010. The first and the fourth author acknowledge support by project ANR 12IS0 2001 PACE.


  1. 1.
    Adámek, J., Milius, S., Velebil, J.: Equational properties of iterative monads. Inform. Comput. 208, 1306–1348 (2010). doi: 10.1016/j.ic.2009.10.006 zbMATHGoogle Scholar
  2. 2.
    Adámek, J., Milius, S., Velebil, J.: Elgot theories: a new perspective of the equational properties of iteration. Math. Structures Comput. Sci. 21(2), 417–480 (2011)zbMATHMathSciNetGoogle Scholar
  3. 3.
    Asada, K., Hidaka, S., Kato, H., Hu, Z., Nakano, K.: A parameterized graph transformation calculus for finite graphs with monadic branches. In: Peña, R., Schrijvers, T. (eds.) PPDP, pp. 73–84. ACM (2013)Google Scholar
  4. 4.
    Balan, A., Kurz, A.: On coalgebras over algebras. Theoret. Comput. Sci. 412(38), 4989–5005 (2011)zbMATHMathSciNetGoogle Scholar
  5. 5.
    Barr, M.: Coequalizers and free triples. Math. Z. 116, 307–322 (1970)zbMATHMathSciNetGoogle Scholar
  6. 6.
    Bloom, S.L., Ésik, Z.: Iteration Theories: The Equational Logic of Iterative. EATCS Monographs on Theoretical Computer Science. Springer, Heidelberg (1993)zbMATHGoogle Scholar
  7. 7.
    Bonsangue, M.M., Hansen, H.H., Kurz, A., Rot, J.: Presenting distributive laws. In: Heckel and Milius [15], pp. 95–109Google Scholar
  8. 8.
    Main, M.G., Melton, A.C., Mislove, M.W., Schmidt, D., Brookes, S.D. (eds.): MFPS 1993. LNCS, vol. 802. Springer, Heidelberg (1994)zbMATHGoogle Scholar
  9. 9.
    Freyd, P.J.: Remarks on Algebraically Compact Categories. London Mathematical Society Lecture Notes Series, vol. 177. Cambridge University Press, London (1992)Google Scholar
  10. 10.
    Gadducci, F., Montanari, U.: The tile model. In: Plotkin, G.D., Stirling, C., Tofte, M. (eds.) Proof, Language, and Interaction, pp. 133–166. MIT Press, Boston (2000)Google Scholar
  11. 11.
    Hasuo, I., Jacobs, B., Sokolova, A.: Generic forward and backward simulations. In: (Partly in Japanese) Proceedings of JSSST Annual Meeting (2006)Google Scholar
  12. 12.
    Hasuo, I., Jacobs, B., Sokolova, A.: Generic trace semantics via coinduction. Log. Methods Comput. Sci. 3(4:11), 1–36 (2007)MathSciNetGoogle Scholar
  13. 13.
    Heckel, R., Milius, S. (eds.): Algebra and Coalgebra in Computer Science. Lecture Notes in Computer Science, vol. 8089. Springer, Heidelberg (2013)zbMATHGoogle Scholar
  14. 14.
    Hopcroft, J., Motwani, R., Ullman, J.: Introduction to Automata Theory, Languages, and Computation, 3rd edn. Wesley, Lebanon (2006)Google Scholar
  15. 15.
    Johnstone, P.: Adjoint lifting theorems for categories of algebras. Bull. London Math. Soc. 7, 294–297 (1975)zbMATHMathSciNetGoogle Scholar
  16. 16.
    Kelly, G.M.: A unified treatment of transfinite constructions for free algebras, free monoids, colimits, associated sheaves, and so on. Bull. Austral. Math. Soc. 22, 1–83 (1980)zbMATHMathSciNetGoogle Scholar
  17. 17.
    Mazurkiewicz, A.: Concurrent program schemes and their interpretation. DAIMI PB-78, Computer Science Department, Aarhus University (1977)Google Scholar
  18. 18.
    Mac Lane, S.: Categories for the Working Mathematician. Springer, Berlin (1971)zbMATHGoogle Scholar
  19. 19.
    Milius, S., Palm, T., Schwencke, D.: Complete iterativity for algebras with effects. In: Kurz, A., Lenisa, M., Tarlecki, A. (eds.) CALCO 2009. LNCS, vol. 5728, pp. 34–48. Springer, Heidelberg (2009) Google Scholar
  20. 20.
    Mulry, P.S.: Lifting theorems for Kleisli categories. In: Brookes et al. [10], pp. 304–319Google Scholar
  21. 21.
    Rabinovich, A.M.: A complete axiomatisation for trace congruence of finite state behaviors. In: Brookes et al. [10], pp. 530–543Google Scholar
  22. 22.
    Silva, A., Westerbaan, B.: A coalgebraic view of \(\varepsilon \)-transitions. In: Heckel and Milius [15], pp. 267–281Google Scholar
  23. 23.
    Sobociński, P.: Relational presheaves as labelled transition systems. In: Pattinson, D., Schröder, L. (eds.) CMCS 2012. LNCS, vol. 7399, pp. 40–50. Springer, Heidelberg (2012) Google Scholar
  24. 24.
    Turi, D., Plotkin, G.: Towards a mathematical operational semantics. In: Proceedings of Logic in Computer Science (LICS’97). IEEE Computer Society (1997)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2014

Authors and Affiliations

  • Filippo Bonchi
    • 1
  • Stefan Milius
    • 2
  • Alexandra Silva
    • 3
    • 4
    • 5
  • Fabio Zanasi
    • 1
  1. 1.ENS Lyon, U. de Lyon, CNRS, INRIA, UCBLLyonFrance
  2. 2.Lehrstuhl Für Theoretische InformatikFriedrich-Alexander Universität Erlangen-NürnbergErlangenGermany
  3. 3.Institute for Computing and Information SciencesRadboud University NijmegenNijmegenThe Netherlands
  4. 4.Centrum Wiskunde & InformaticaAmsterdamThe Netherlands
  5. 5.HASLab/INESC TECUniversidade Do MinhoBragaPortugal

Personalised recommendations