Categories of Processes Enriched in Final Coalgebras Sava Krsti´ c 1 , John Launchbury 1 , and Duˇ sko Pavlovi´ c 2 1 Oregon Graduate Institute {krstic,jl}@cse.ogi.edu 2 Kestrel Institute dusko@kestrel.edu Abstract. Simulations between processes can be understood in terms of coalgebra homomorphisms, with homomorphisms to the final coal- gebra exactly identifying bisimilar processes. The elements of the final coalgebra are thus natural representatives of bisimilarity classes, and a denotational semantics of processes can be developed in a final-coalgebra- enriched category where arrows are processes, canonically represented. In the present paper, we describe a general framework for building final- coalgebra-enriched categories. Every such category is constructed from a multivariant functor representing a notion of process, much like Moggi’s categories of computations arising from monads as notions of computa- tion. The “notion of process” functors are intended to capture different flavors of processes as dynamically extended computations. These func- tors may involve a computational (co)monad, so that a process category in many cases contains an associated computational category as a retract. We further discuss categories of resumptions and of hyperfunctions, which are the main examples of process categories. Very informally, the resump- tions can be understood as computations extended in time, whereas hy- percomputations are extended in space. 1 Introduction A map A × X -→ B × X can be construed as a function from A to B extended in time, represented by a set X of states. For each state in X and each input from A, such a function gives an output in B, and the next state in X. This is the usual representation of a transducer. A map A X -→ B X , on the other hand, can be construed as a function from A to B extended in space, represented by a set X of storage cells. For each assignment of A-values to all X-cells, such a function gives an assignment of B-values to the same cells. By transposition, a transducer A × X -→ B × X can equivalently be viewed as a Kleisli morphism A -→ (B × X) X for the monad B (B × X) X , or as a coalgebra X -→ (B × X) A for the functor X (B × X) A . Similarly, a function with storage A X -→ B X can be viewed as a Kleisli morphism A X × X -→ B for the comonad A A X × X, or F. Honsell and M. Miculan (Eds.): FOSSACS 2001, LNCS 2030, pp. 303-317, 2001. Springer-Verlag Berlin Heidelberg 2001