BRICS RS-97-36 Hildebrandt et al.: Relational Semantics of Non-Deterministic Dataflow BRICS

Basic Research in Computer Science

Relational Semantics of Non-Deterministic Dataflow

Thomas Troels Hildebrandt Prakash Panangaden Glynn Winskel BRICS Report Series RS-97-36 ISSN 0909-0878 December 1997 Copyright \begin{matrix}c \\ ◯ \end{matrix} 1997, BRICS, Department of Computer Science

University of Aarhus. All rights reserved.

Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy.

See back inner page for a list of recent BRICS Report Series publications. Copies may be obtained by contacting:

BRICS Department of Computer Science University of Aarhus Ny Munkegade, building 540 DK–8000 Aarhus C Denmark

Telephone: +45 8942 3360
Telefax: +45 8942 3255
Internet: BRICS@brics.dk

BRICS publications are in general accessible through the World Wide Web and anonymous FTP through these URLs:

http://www.brics.dk
ftp://ftp.brics.dk

This document in subdirectory RS/97/36/

Relational Semantics of Non-Deterministic Dataflow

(Extended Abstract)

Thomas Hildebrandt^{†}  Prakash Panangaden^{‡}  Glynn Winskel^{†}

†BRICS^{∗}, University of Aarhus, Denmark ‡McGill University, Canada

Abstract

We recast dataflow in a modern categorical light using profunctors as a generalization of relations. The well known causal anomalies associated with relational semantics of indeterminate dataflow are avoided, but still we preserve much of the intuitions of a relational model. The development fits with the view of categories of models for concurrency and the general treatment of bisimulation they provide. In particular it fits with the recent categorical formulation of feedback using traced monoidal categories. The payoffs are: (1) explicit relations to existing models and semantics, especially the usual axioms of monotone IO automata are read off from the definition of profunctors, (2) a new definition of bisimulation for dataflow, the proof of the congruence of which benefits from the preservation properties associated with open maps and (3) a treatment of higher-order dataflow as a biproduct, essentially by following the geometry of interaction programme.

1 Introduction

Our background includes work done on presenting models for concurrency as categories, as summarised in [42]. This enabled a sweeping definition of bisimulation based on open maps applicable to any category of models equipped with a distinguished subcategory of paths [19]. It also exposed a new space of models. Presheaf categories possess a canonical choice of open maps and bisimulation, and can themselves be related in the bicategory of profunctors. This yields a form of domain theory but boosted to the level of using categories rather than partial orders as the appropriate domains.

One argument for the definition of bisimulation based on open maps is the powerful preservation properties associated with it. Notable is the result of [8] that any colimit preserving functor between presheaf categories preserves bisimulation, which besides obvious uses in relating semantics in different models with different notions of bisimulation is, along with several other general results, useful in establishing congruence properties of process languages. By understanding dataflow in terms of profunctors we are able to exploit the framework not just to give a definition of bisimulation between dataflow networks but also in showing it to be a congruence with respect to the standard operations of dataflow.

∗Basic Research in Computer Science, Centre of the Danish National Research Foundation.

A general definition of bisimulation is all well and good but it needs to be tested and its consequences understood for a range of process languages. Another argument in favour of the presheaf approach to bisimulation is that when tried against traditional process languages it yields persuasive results, as in [8, 40, 7]. But still these are just examples and it is hoped that a more satisfying and conclusive argument will come from an endeavour to ascertain the operational content of presheaf models more generally.

One difficulty has been in understanding the operational significance of the bisimulation which comes from open maps for higher-order process languages (where for example processes themselves can be passed as values). Another gap, more open and so more difficult to approach, is that whereas both interleaving models and independence models like event structures can be recast as presheaf models, as soon as higher-order features appear, the presheaf semantics at present reduce concurrency to nondeterministic interleaving. A study of nondeterministic dataflow is helpful here as its compositional models are forced to account for causal dependency using ideas familiar from independence models; at the same time the models are a step towards understanding higher-order as they represent nondeterministic functions from input to output.

It is notable that the profunctor semantics of dataflow yields automatically the axioms for monotone port automata used in modelling dataflow [30] in contrast to the work in [38]. At the same time we have to work to get a correct operation on profunctors to model the dataflow feedback; “the obvious” choice of modelling feedback by coend doesn’t account for the subtle causal constraints which plague dataflow semantics.

The idea that non-deterministic dataflow can be modelled by some kind of generalised relations fits with that of others, notably Stark in [38, 39]. That dataflow should fit within a categorical account of feedback accords for instance with [23, 1]. But in presenting a semantics of dataflow as profunctors we obtain the benefits to be had from placing nondeterministic dataflow centrally within categories of models for concurrency, and in particular within presheaf models. One of our future aims is a dataflow semantics of the hardware-description language Verilog HDL [14], which presently only possesses a noncompositional, operational definition. The semantics of a language of this richness requires a flexible yet abstract domain theory of the kind presheaf models seem able to support.

2 Models for indeterminate dataflow

The Dataflow paradigm for asynchronous parallel computation, originated in work of Jack Dennis and others in the mid-sixties [21, 10, 11]. The basic idea is that data flows between autonomous computing agents, that are interconnected by communication channels. The essential idea is that computation is triggered by the arrival of data rather than by flow of control. The channels are assumed to act as unbounded FIFO-queues. For dataflow networks built from only deterministic nodes, Kahn [21] has argued that their behaviour could be captured denotationally in a very simple and elegant fashion, using elementary domain theory, which is later shown formally by several authors, e.g. Faustini [13], Lynch and Stark [26]. The key idea is to model the behaviour of each port a as a stream of values. A node can then be modelled as a continuous function between such streams and the combined network as a least fixed point of a set of equations describing the components. In this sense Kahn’s semantics is compositional. Subsequently, different semantics have been described as satisfying Kahn’s principle when they are built up compositionally along similar lines. Note that the observable behaviour is taken to be the input-output relation between completed sequences of values, thus it completely abstracts away from causal dependencies between values on different ports.

2.1 The need for causality

For indeterminate networks, the situation is not so simple. Brock and Ackerman[6] showed that for networks containing the nondeterministic primitive fair merge, the input-output relations are not compositional, ie. if we simply choose the inputoutput relation as observable behaviour, we cannot define a compositional semantics, which is adequate with respect to the operational semantics. Hence a straightforward generalisation of Kahn’s model to get a compositional semantics for these indeterminate networks fails. Later, Traktenbrot and Rabinovich, and independently, Russell showed, that even for the simplest nondeterministic primitive the ordinary bounded choice (or “unfair merge”), the input-output relation is not compositional. We present an example close to that of Traktenbrot and Rabinovich. It works by giving two simple examples of automata A_{1} and A_{2}, which have the same input-output relation, and a context in which they behave differently, pictorially

[figure: F; A_{i}] .

The context is a fork process F (a process that copies every input to two outputs), through which the output of the automata A_{i} is fed back to the input channel. Automaton A_{1} has the following (deterministic) behaviour: It outputs a token; waits for a token on input and then outputs another token. Automaton A_{2} has the choice between two behaviours: Either it outputs a token and stops, or it waits for an input token, then outputs two tokens. For both automata, the IO-relation relates empty input to zero or one output token, and non-empty input to zero, one or two output tokens. But inserted in the context as illustrated above, A_{1} can output two tokens, whereas A_{2} can only output a single token, choosing its first behaviour. This example shows very clearly that it is necessary to look for a model that records a more detailed causality relation than the IO-relations.

Jonsson [17] and Kok [25] have independently given fully abstract models for nondeterminate dataflow. Jonsson’s model is based on trace^{1} sets, which are sets of possible interactions between a process and its environment. Kok’s model turned out to be equivalent. They showed that this model is fully abstract for indeterminate dataflow networks with a fair merge primitive, which was then shown by Russell [35] to hold even for dataflow networks with the weakest nondeterministic primitive, bounded choice^{2}. Rabinovich and Traktenbrot analyzed the same issues from the point of view of finite observations and came up with general conditions under which a Kahn-like principle would hold [32, 33, 34].

3 A Traced Monoidal Category of Kahn Processes

In this section we summarize the basic theory of traced monoidal categories and then describe a category of Kahn processes as an instance of a traced monoidal category. The notion of traced monoidal category abstracts the notion of trace of a matrix from multilinear algebra. However it has emerged in a variety of new contexts including the study of feedback systems [3], knot theory [16] and recursion [15]. The axiomatization presented below is the definition of Joyal, Street and Verity [20] but specialized to the context of symmetric monoidal categories so that the axioms appear simpler; in particular we do not consider braiding or twists. In this paper the fact that trace models feedback (or iteration) is attributed to Bloom, but as far back as 25 years ago Bainbridge had been studying trace in the context of feedback in systems and control theory. Indeed Bainbridge had noticed that there were two kinds of trace (associated with two different monoidal structures) in Rel and that the powerset functor moves one between these situations. Furthermore he noted that one of the traces corresponds to feedback in what are essentially memoryless Kahn networks^{3}.

3.1 Traced Monoidal Categories

In this section we give the axioms for a symmetric monoidal category equipped with a trace. We assume that the reader is familiar with the notion of a symmetric tensor product. We write ⊗ for the tensor product and σ_{XY} : X ⊗ Y ⟶ Y ⊗ X for the natural isomorphism (the symmetry) in this case.

1This word commonly used in the literature unfortunately clashes with “trace” in linear algebra.

Normally this is not a problem but the present paper uses this word in both senses, we hope the reader will be able to disambiguate from context.

2See [30, 29] for a study of the differences of nondeterminate primitives.

3We are indebted to Samson Abramsky for pointing this reference out to us.

Definition 1 A trace for a symmetric monoidal category C is family of functions

T r_{X,Y}^{U} () : C(X ⊗ U, Y ⊗ U) ⟶ C(X, Y)

satisfying the following conditions

1. Naturality I: Given f: Z ⊗ U ⟶ Y ⊗ U and g: X ⟶ Z

T r_{X,Y}^{U} (f ∘ (g ⊗ I_{U})) = T r_{Z,Y}^{U} (f) ∘ g.

2. Naturality II: Given f: X ⊗ U ⟶ Z ⊗ U and g: Z ⟶ Y

T r_{X,Y}^{U} ((g ⊗ I_{U}) ∘ f) = g ∘ T r_{X,Z}^{U}(f)

3. Dinaturality: Given f: X ⊗ U ⟶ Y ⊗ V and g: V ⟶ U

T r_{X,Y}^{U} ((I_{Y} ⊗ g) ∘ f) = T r_{X,Y}^{V} (f ∘ (I_{X} ⊗ g)).

4. Bekic: f: X ⊗ U ⊗ V ⟶ Y ⊗ U ⊗ V

T r_{X,Y}^{U⊗V} (f) = T r_{X,Y}^{U} (T r_{X⊗U,Y ⊗U}^{V}(f)).

5. Yanking: T r_{U,U}^{U}(σ_{UU}) = I_{U}.

6. Superposing: Given f: X ⊗ U ⟶ Y ⊗ U and g: W ⟶ Z

T r_{X⊗W,Y ⊗Z}^{U}((I_{Y} ⊗ σ_{UZ}) ∘ (f ⊗ g) ∘ (I_{X} ⊗ σ_{W U})) = T r_{X,Y}^{U} (f) ⊗ g.

The following proposition is an easy consequence of the definitions. It shows how composition can be defined from trace and tensor.

Proposition 2 Given g: U ⟶ Y and f: X ⟶ U we have

T r_{X,Y}^{U} (σ_{UY} ∘ (f ⊗ g)) = g ∘ f.

This could be viewed as a generalization of the yanking condition.

3.2 The Kahn Category

The basic intuitions behind Kahn networks are, of course, due to Kahn [21] and the formal development of the subject is due to Kahn and McQueen [22]. The particular axiomatization presented here builds on the ideas of Stark [38] but using the formalism of traces presented in [29]. No originality is claimed for the trace model, it was Bengt Jonsson [17] who showed that traces form a fully abstract model of dataflow networks and there were several others with similar ideas at the time.

We have a fixed set V of values and a fixed set P of ports. An event is a triple ⟨a, i/o, v⟩ where a ∈ P and v ∈ V. We say that ⟨a, v⟩ is the label of the event ⟨a, i/o, v⟩. An event of the form ⟨a, o, v⟩ is called an output event and one of the form ⟨a, i, v⟩ is called an input event. We consider sequences of these events. If α is a sequence of events we write α|_{o} for the sequence of labels of output events discarding the input events, similarly for α|_{i}. We write α|_{A} for the sequence obtained by keeping only the events on the ports in A and α|_{A_{o}} for the sequence of labels of all output events on A. We extend these notations to sets of sequences. We use the notation α ≤ β for the prefix order on sequences. We write I_{A} for the set Ax{i}xV of all input events on ports in A and similarly O_{A} for Ax{o}xV. Finaly, we write L_{A} for the set AxV of labels on ports in A.

Definition 3 A process of sort (A, B), where A, B ⊆ P is a prefix closed set of finite sequences over the alphabet I_{A} ∪ O_{B}. The set of sequences, say S, satisfies the following closure properties, α and β are sequences of events:

1. If α⟨b, o, v⟩⟨a, i, u⟩β ∈ S then α⟨a, i, u⟩⟨b, o, v⟩β ∈ S.

2. If α⟨b, o, v⟩⟨b′, o, u⟩β ∈ S and if b ≠ b′ then α⟨b′, o, u⟩⟨b, o, v⟩β ∈ S.

3. If α⟨a, i, u⟩⟨a′, i, v⟩β ∈ S and if a ≠ a′ then α⟨a′, i, v⟩⟨a, i, u⟩β ∈ S.

4. If α ∈ S then α⟨a, i, v⟩ for all a ∈ A and v ∈ V.

We call A the input ports and B the output ports of the process.

The last condition above is called receptivity, a process could receive any data on its input port; unlike with synchronous processes. Receptivity is the basic reason why traces suffice to give a fully-abstract model for asynchronous processes; in calculi with synchronous communication one needs branching information.

The first three conditions express concurrency conditions on events occurring at different ports. Note an asymmetry in the first condition. If an output occurs before an input then it could also occur after the input instead. However, if an output occurs after an input then the pair of events cannot be permuted because the output event may be in response to the input. Furthermore we are assuming, again in (1), that the arrival of input does not disable already enabled output. In an earlier investigation [30] these were called monotone automata and it was shown that many common primitives, such as fair merge, timeouts, interrupts and polling cannot be expressed as monotone automata.

Given processes as sets of sequences we define composition as follows. We begin by defining the shuffle of two sets of sequences.

Definition 4 Given two sets of sequences of events, say S of sort (A, B) and S′ of sort (A′, B′), with A ∩ A′ = ∅ = B ∩ B′, we define the set SΔS′ (read, S shuffle S′) as the set of all sequences γ of sort (A ∪ A′, B ∪ B′) satisfying the following conditions 1. γ|_{A∪B} ∈ S and

2. γ|_{A′∪B′} ∈ S′.

We then define composition, by picking from the shuffle, the sequences having the right causal precedence of events on B and then discarding these, now “internal”, events.

Definition 5 Given processes f: A ⟶ B and g: B ⟶ C we define the composite of f and g by f; g ≜ S|_{A_{i}∪C_{o}}, where S ⊆ fΔg (with ports renamed if necessary to avoid name clashes) is the the largest set s.t. for any δ ∈ S

1. δ|_{B_{o}} = δ|_{B_{i}},

2. ∀δ′ ≤ δ.δ′|_{B_{i}} ≤ δ′|_{B_{o}}.

Proposition 6 The composite of two processes does yield a process, i.e. the closure conditions are satisfied. There is an identity process and composition is associative.

Definition 7 The category Kahn of Kahn processes has as objects finite subsets of P and as morphisms from A to B, processes with A as the input ports and B as the output ports. Composition of morphisms is defined by composition of processes as defined above.

The following proposition has a routine proof but is important to note.

Proposition 8 The following construction defines a monoidal structure. Given f: A ⟶ B and f′: A′ ⟶ B′ we define f ⊗ f′: A ⊎ A′ ⟶ B ⊎ B′ as fΔg.

The trace construction is as follows. Given f: X ⊎ U ⟶ Y ⊎ U we define T r_{X,Y}^{U} (f): X ⟶ Y as the set of all γ such that there is a sequence δ ∈ f with

1. δ|_{X_{i}∪Y_{o}} = γ,

2. δ|_{U_{o}} = δ|_{U_{i}} and

3. ∀δ′ ≤ δ.δ|_{U_{i}} ≤ δ|_{U_{o}}.

Theorem 9 With the structures given above, Kahn is a traced monoidal category.

The generalized yanking property can be interpreted in this category as saying that composition can be obtained as a combination of parallel composition (that is, shuffling) and feedback. This is a well-known fact in dataflow folklore.

4 Generalising relations

Kahn processes are typical of the solutions to the problem of obtaining a compositional semantics for nondeterministic dataflow, as illustrated by the causal anomaly. A correct compositional semantics is got by keeping track of the causal dependency between events. In this section we will describe another solution that comes about as a natural extension of the IO-relation model.

First let us give a category of Kahn IO-relations. For a process S of sort (A, B) define its IO-relation R_{S} ≜ { (α|_{A_{i}}, α|_{B_{o}}) | α ∈ S} ⊆ L_{A}^{∗}xL_{B}^{∗}. Actually, this defines a relation \overline{R}_{S} in (L_{A}^{∗}/\overline{∼})x(L_{B}^{∗}/\overline{∼}) where L_{A}^{∗}/\overline{∼} consists of the Mazurkiewicz traces [28] (or the elements in the free partially commutative monoid [12]) of the trace language (L_{A}^{∗}, L_{A}, I_{A}) where I_{A}⊆ L_{A}xL_{A} is the independence relation defined by ⟨a, u⟩ I_{A} ⟨a′, v⟩ iff a ≠ a′. Recall that as in [42] the traces are equivalence classes of \overline{∼}, the smallest equivalence relation such that αw′ wβ\overline{∼}αw w′β if w I_{A} w′. For α ∈ L_{A}^{∗}, let \overline{α} denote its Mazurkiewicz trace. The traces can be partial ordered by \overline{α} ⊑ \overline{β} iff ∃γ.\overline{αγ} = \overline{β} (see Ch.7 of [42]). Let ϵ_{A} (or just ϵ) denote the empty trace. In the following, we will let \overline{A} refer to the partial order category given by L_{A}^{∗}/\overline{∼} and the ordering ⊑ and refer to these categories as the path categories.^{4}

Any IO-relation \overline{R}_{S} for a Kahn process S is monotone and receptive, i.e. for \overline{α}, \overline{β} ∈ L_{A}^{∗}/\overline{∼}, if \overline{α} ⊑ \overline{β} then \overline{α}\overline{R}_{S} ⊆ \overline{β}\overline{R}_{S} and for w ∈ L_{A}, if (\overline{α}, \overline{β}) ∈ \overline{R}_{S} then (\overline{αw}, \overline{β}) ∈ \overline{R}_{S}. Relations of this kind correspond to functors \overline{A}x\overline{B}^{op} ⟶ 222, where 222 is the category consisting of two objects 0 and 1 and only one non-identity arrow 0 → 1. Viewing the relations in this way the composition of R: \overline{A} × \overline{B}^{op} ⟶ 222 and R′: \overline{B} × \overline{C}^{op} ⟶ 222 can be written as

\overline{α}(R; R′)\overline{γ} = ⋁_{\overline{β}∈\overline{B}}\overline{α}R\overline{β} ∧ \overline{β}R′\overline{γ},  (1)

where we make use of the obvious join and meet operations on 222. Such relations in fact form the arrows of a traced symmetric monoidal category, but as illustrated by the example in section 2.1 it cannot possibly be used to give a compositional and correct treatment of feedback for indeterminate dataflow. We need to be able to express differences in causal dependencies between input and output. This is precisely what moving to the bicategory of profunctors Prof allows us to do.

4.1 Profunctors

Profunctors, (or bimodules, or distributors [5]) are a categorical generalisation of sets and relations. The objects of Prof are small categories and arrows are profunctors; profunctors are like receptive monotone relations but with the category 222 replaced by Set.

4The traces can also be viewed as a specific kind of pomsets [31] and the path categories as a subcategory of the category of pomsets given in [19].

Definition 10 Let P and Q be small categories. A profunctor X: P [figure: +] Q is a bifunctor X: P × Q^{op} ⟶ Set. For p, q objects of respectively P and Q we will write X_{q}^{p} for the application (Xp)q and similarly for morphisms.

The tensor product is given by the categorical product on objects and set-theoretic product on arrows.

Definition 11 Let P,P′ and Q,Q′ be small categories and X: P [figure: +] Q, Y : P′ [figure: +] Q′ profunctors. Taking P ⊗ P′ ≜ P × P′ and X ⊗ Y ≜ X × Y : P ⊗ P′ [figure: +] Q ⊗ Q′, so (X ⊗ Y)_{q,q′}^{p,p′} = X_{q}^{p} × Y_{q′}^{p′}, defines a symmetric monoidal structure on Prof.

The canonical choice of trace on Prof (cf. [20]) is to take the trace of a profunctor X: P ⊗ U [figure: +] Q ⊗ U to be given pointwise by the coend, so

T r_{P,Q}^{U}(X)_{q}^{p} = ∫ ^{u}X_{q,u}^{p,u}.

Composition^{5} is given by

(Y; Z)_{u}^{p} = ∫ ^{q}Y_{q}^{p} × Z_{u}^{q},

for Y : P [figure: +] Q and Z: Q [figure: +] U. This generalises the expression for relational composition given by equation (1) earlier.

Since we are working with functors into Set, the coend has an explicit definition. We have

∫ ^{u}X_{q,u}^{p,u} ≅ ⨄_{u∈U}{ x ∈ X_{q,u}^{p,u}}_{/∼},  (2)

where ∼ is the symmetric, transitive closure of the relation ⇝ defined as follows. For x ∈ X_{q,u}^{p,u} and x′ ∈ X_{q,u′}^{p,u′}, let

x ⇝ x′ if ∃m: u ⟶ u′ and y ∈ X_{q,u′}^{p,u} s.t. [figure: x; y; X_{1q,m}^{1p,1u}; X_{1q,1_{u′}}^{1p,m}; x′.]

Like the closely related model of [3], this model doesn’t give an operationally correct treatment of dataflow as it stands. Taking the trace as given by a coend suffers from defects similar to those encountered with relations; the coend is too generous in the behaviour it allows, permitting communications not beginning at the initial communication. However, as we will see shortly, profunctors contain the additional causal information that makes an alternative definition of trace possible, one which like coends can be expressed as a colimit but which this time agrees with the trace on Kahn processes.

5This defines composition only to within isomorphism, explaining why we get a bicategory.

4.2 An operational reading

To see the connection with Kahn processes we examine the structure of profunctors more closely. First, we restrict attention to pointwise rooted profunctors between path categories, which intuitively correspond to those profunctors having a unique initial state.

Definition 12 Let X: \overline{A} [figure: +] \overline{B}. If X\overline{α} is a rooted presheaf (i.e. X\overline{α} ; ϵ is the singleton set) for any \overline{α} object of \overline{A}, we say that X is a pointwise rooted profunctor. We denote the single element belonging to X_{ϵ}^{ϵ} by r_{X} (the root of X).

It is easy to check that rootedness is satisfied by identities and preserved by composition, thus forming a category, which we will refer to as Prof_{⊥}, the category of port profunctors. We write X: \overline{A} [figure: ⊥] \overline{B} when X is a profunctor in Prof_{⊥}. The category Prof_{⊥} inherits the symmetric monoidal structure of Prof. Explicitly we can define \overline{A} ⊗ \overline{B} = \overline{A ⊎ B}. The coend fails to preserve rootedness in general.

Similar to the construction in [41], we have an operational interpretation of port profunctors, which is a slight generalisation of the well-known construction of the category of elements of a presheaf.

Definition 13 Let X: \overline{A} [figure: ⊥] \overline{B} be a port profunctor. Define its (A, B)-port automaton El_{(A,B)}(X) ≜ (S, i, ⟶, E), where S is the set of states, i ∈ S is the initial state, E is the set of events, and ⟶⊆ SxExS is the transition relation, given by

• S = \{((\overline{α}, \overline{β}), x) | (\overline{α}, \overline{β}) is an object in \overline{A} × \overline{B}^{op} & x ∈ X\overline{α} ; \overline{β}\}

• i = ((ϵ, ϵ), r_{X})

• E = I_{A} ∪ O_{B}

• ((\overline{α}, \overline{β}), x) ⟶^{i a,v} ((\overline{α⟨a, v⟩}, \overline{β}), y), if X_{1\overline{β}}^{m}x = y, for m: \overline{α} ⟶ \overline{α⟨a, v⟩} an

arrow of \overline{A}.

• ((\overline{α}, \overline{β}), x) ⟶^{o b,v} ((\overline{α}, \overline{β⟨b, v⟩}), y), if X_{m}^{1\overline{α}}y = x, for m: \overline{β} ⟶ \overline{β⟨b, v⟩} an

arrow of \overline{B}.

Define Seq(X) to be the set of finite sequences of events labelling finite sequences of transitions of El_{(A,B)}(X) beginning at the initial state.

As an example, the automata of the profunctors modelling the behaviour of the two automata A_{1} and A_{2} from section 2.1 can be pictured as follows:

A_{1}: [figure: •; •; o; •; i; i; o; •; i; o; i; i; i] A_{2}: [figure: •; ⋆; o; •; •; i; i; o; •; i; o; o; i],

repeating the same pattern infinitely to the left.

Remarkably, the axioms of receptivity and monotonicity usually imposed on monotone port automata [30] and the usual commutativity axiom of asynchronous transition systems [4, 37] follow simply by functoriality for port automata of profunctors.

Proposition 14 Let X: \overline{A} [figure: ⊥] \overline{B} be a port profunctor. The following axioms hold for El_{(A,B)}(X) = (S, i, ⟶, E)

A1. Receptivity: ∀e ∈ I_{A}, s ∈ S ∃!s′ ∈ S. s ⟶^{e} s′,

A2. Monotonicity: [figure: s; s_{1}; o b,v; s_{2}; i a,v′; u; i a,v′; o b,v; ⇓]

A3. Commutativity: [figure: s; s_{1}; e_{1}; s_{2}; e_{2}; u; e_{2}; e_{1}; ⇒] ,

for e_{1}, e_{2} ∈ I_{A} or e_{1}, e_{2} ∈ O_{B}.

This immediately gives the following corollary.

Corollary 15 Let X: \overline{A} [figure: ⊥] \overline{B} port profunctor. Then, Seq(X) is a Kahn process.

The failure of the coend definition of feedback is illustrated by the example above: As expressed by equation (2), the coend “quantifies” over all states on the IOdiagonal. In the case of A_{2}, this include the “bad” state ⋆, that cannot be reached by a path on which output preceeds input. The idea in the definition of the trace to come, is exactly to restrict this quantification to only the “good” states with the correct causal precedence.

4.3 A relational model of indeterminate dataflow

We will restrict the port profunctors to those for which the associated port automata satisfies an additional axiom

A4. Stability: s ≠ s_{2} & [figure: s; s_{1}; i a,v; u; i a′,v′; s_{2}; i a′,v′; i a,v; ⇒!] & a ≠ a′.

which amounts to requiring that the profunctors (regarded as functors to sets) preserve pullbacks in their input arguments. It implies that any output event depend on a unique sequence of input events (up to commutativity). This property is satisfied by identities, and from the results in this section it follows that it is preserved under composition and tensor. Thus, the stable port profunctors between path categories form a monoidal sub category of Prof_{⊥}, which we will denote by SProf_{⊥}.

In the following we will switch freely between elements of a profunctor and states of the associated port automata, using ⟶ as a relation between elements. Note that the relation ⇝, defined when giving the explicit definition of the coend, can be seen as a relation between states of port automata, and understood as a chain of communication pairs of the form • ⟶^{o w} • ⟶^{i w} •. Recall that ∼ was defined to be the symmetric, transitive closure of ⇝. For profunctors in SProf_{⊥} we can prove a diamond property, which follows from the stability condition.

Lemma 16 Let X: \overline{A} ⊗ \overline{C} [figure: ⊥] \overline{B} ⊗ \overline{C} be a stable port profunctor. If x_{1} ⇝ x_{3} and x_{2} ⇝ x_{3}, for x_{1}, x_{2}, x_{3} elements of X, then there exists an element x_{0} such that x_{0} ⇝ x_{1} and x_{0} ⇝ x_{2}.

By induction, this gives us an important corollary.

Corollary 17 Let X: \overline{A} ⊗ \overline{C} [figure: ⊥] \overline{B} ⊗ \overline{C} be a stable port profunctor. If x ∼ y, for x, y elements of X, then there exists an element z such that z ⇝^{∗} x and z ⇝^{∗} y.

We are now ready to give the definition of the restricted trace. Note that the ⇝ transitions by definition maintains the causal precedence of feedback; extending output first and then input correspondingly.

Definition 18 For X: \overline{A} ⊗ \overline{C} [figure: ⊥] \overline{B} ⊗ \overline{C}, define T r_{A,B}^{C}(X): \overline{A} [figure: ⊥] \overline{B}, the trace of X as follows. For objects α, β of resp. \overline{A} and \overline{B}, let

T r_{A,B}^{C}(X)\overline{α} ; \overline{β} = ⨄_{\overline{γ}∈\overline{C}}\{ x ∈ X_{\overline{β},\overline{γ}}^{\overline{α},\overline{γ}} | r_{X}(⟶^{A,B} ∪ ⇝)^{∗}x\}_{/∼},

where ⟶^{A,B}=⟶ ∩S_{X}x(I_{A} ∪ O_{B})xS_{X}. For arrows m, n of resp. \overline{A} and \overline{B}, define T r_{A,B}^{C}(X)_{n}^{m} to be the map sending [x]_{∼} to [X_{n,1\overline{γ}}^{m,1\overline{γ}}x]_{∼}, for x ∈ X_{\overline{β},\overline{γ}}^{\overline{α},\overline{γ}}.

It follows from functoriality of X that this indeed is a profunctor and a simple inspection shows that rootedness is preserved. Preservation of stability follows from corollary 17.

The trace has an equivalent definition, based on the standard construction of the subdivision category [27] which allows any coend to be expressed as a colimit. For a category Q its subdivision category Q^{♮} is defined as follows. The objects of Q^{♮} are all symbols q^{♮} and f^{♮} for q object in Q and f arrow in Q. The arrows of Q^{♮} are the identity arrows for these objects, plus for each arrow f: q_{0} ⟶ q_{1} in Q two arrows f_{i}: f^{♮} ⟶ q_{i}^{♮}, i = 0, 1. There are no non-trivial compositions. A profunctor X: \overline{A} ⊗ \overline{C} [figure: ⊥] \overline{B} ⊗ \overline{C} defines a profunctor X^{♮}: \overline{A} ⊗ \overline{C}^{♮} [figure: +] \overline{B} by

(X^{♮})\overline{α},\overline{γ}^{♮} ; \overline{β} ≜ X_{\overline{β},\overline{γ}}^{\overline{α},\overline{γ}} and for f: \overline{γ} ⟶ \overline{δ} an arrow of \overline{C}, (X^{♮})\overline{α},f^{♮} ; \overline{β} ≜ X_{\overline{β},\overline{δ}}^{\overline{α},\overline{γ}}. On arrows

f_{0}, f_{1}, let (X^{♮})_{n}^{m,f_{0}} ≜ X_{n,f}^{m,1\overline{γ}} and (X^{♮})_{n}^{m,f_{1}} ≜ X_{n,1\overline{δ}}^{m,f}. It is a standard fact that

∫ ^{\overline{γ}∈\overline{C}}X ≅ Colim\overline{C}_{♮}X^{♮}.

Now comes the non-standard part, restricting X^{♮} according to definition 18.

Definition 19 For X: \overline{A} ⊗ \overline{C} [figure: ⊥] \overline{B} ⊗ \overline{C}, define F b_{A,B}^{C}(X): \overline{A} ⊗ \overline{C}^{♮} [figure: +] \overline{B} as fol-

lows. For \overline{α}, \overline{β} and c objects of resp. \overline{A}, \overline{B} and \overline{C}^{♮}, let

F b_{A,B}^{C}(X)\overline{α},c ; \overline{β} = \{ x ∈ (X^{♮})\overline{α},c ; \overline{β} | r_{X}( ⟶^{A,B⊗C} ∪ ⇝)^{∗}x\},

where ⟶^{A,B⊗C}=⟶ ∩S_{X}x(I_{A} ∪ O_{B⊗C})xS_{X}. For arrows let F b_{A,B}^{C}(X)_{n}^{m,f_{i}} ≜

(X^{♮})_{n}^{m,f_{i}}|_{F b_{A,B}^{C}(X)\overline{α},f^{♮} ; \overline{β}}.

Actually, F b(−) extends to a functor between presheaf categories. The trace given in definition 18 can be expressed as a colimit as follows.

Proposition 20 Let X: \overline{A}⊗\overline{C} [figure: ⊥] \overline{B}⊗\overline{C} and F b_{A,B}^{C}(X) be given as above. Then,

T r_{A,B}^{C}(X) ≅ Colim\overline{C}_{♮}F b_{A,B}^{C}(X).

The following propositions are the key ingredients in showing that this indeed makes SProf_{⊥} a traced monoidal bicategory. First of all, one gets the usual profunctor composition from the trace.

Proposition 21 Let X : \overline{A} [figure: ⊥] \overline{B} and Y : \overline{B} [figure: ⊥] \overline{C}. Then,

T r_{A,C}^{B}(X ⊗ Y) ≅ ∫ \overline{β}X_{\overline{β}} ⊗ Y^{\overline{β}}.

Next, trace distributes through tensor and simultaneous trace is equivalent to iterated trace.

Proposition 22 Let X: \overline{A} ⊗ \overline{C} [figure: ⊥] \overline{B} ⊗ \overline{C} and Y : \overline{A′} [figure: ⊥] \overline{B′}. Then,

Y ⊗ T r_{A,B}^{C}(X) ≅ T r_{A′⊗A,B′⊗B}^{C}(Y ⊗ X).

Proposition 23 Let X: \overline{A} ⊗ \overline{C} ⊗ \overline{D} [figure: ⊥] \overline{B} ⊗ \overline{C} ⊗ \overline{D}. Then,

T r_{A,B}^{C}(T r_{A⊗C,B⊗C}^{D}(X)) ≅ T r_{A,B}^{C⊗D}(X).

The proof of the latter proposition is clearly the most involved.

Theorem 24 With the tensor structure and the trace operator given above, SProf_{⊥} is a traced monoidal category.

As advertised, the trace indeed gives us the correct observational definition of feedback, proven by the existence of a functor from SProf_{⊥} to Kahn, preserving the traced monoidal structure.

Proposition 25 The map Seq of definition 13 defines the action on arrows of a traced monoidal functor Seq: SProf_{⊥} ⟶ Kahn, on objects simply mapping path categories to their underlying port set.

5 Some consequences

We will briefly go through some of the consequences of having this categorical model of dataflow.

5.1 Bisimulation

The presentation of models for concurrency as categories allows us to apply a general notion of bisimulation from spans of open maps proposed in [19]. The general idea is to identify a path category P ↪ M as a subcategory of the model M, with objects representing runs or histories and morphisms compatible extensions of these. For a presheaf model P̂ the canonical choice is the category P under the yoneda embedding y. Identifying the objects of P with their presheaf under y, the notion of open maps specialized to presheaves is defined as follows.

Definition 26 Let X, Y be objects of P̂ and f: X ⟶ Y a morphism. Then f is

P-open if whenever for two path objects P, Q of P and mor-

[figure: P; p; m; X; f; Q; q; h; Y]

phism m, p, q such that the diagram commutes, there exists a morphism h: Q ⟶ X as indicated by the dotted line, making the two triangles commute.

Two objects X, Y of P̂ are said to be P-bisimilar iff there exists a span of open maps f_{1}, f_{2}:

[figure: X; Z; f_{1}; f_{2}; Y.]

This gives a notion of bisimulation for profunctors between \overline{A} and \overline{B}; recall that X: \overline{A} [figure: ⊥] \overline{B} can be viewed as a presheaf in { \atop \overline{A}^{op} × \overline{B}} where \overline{A}^{op} × \overline{B} is the canonical choice of path category. Viewed as a port-automaton, a path-object (\overline{α}, \overline{β}) looks like

i ⟶^{i α_{0}} • ⟶^{i α_{1}} ⋯ ⟶^{i α_{n}} • ⟶^{o β_{0}} • ⟶^{o β_{1}} ⋯ ⟶^{o β_{m}} x,

closed under axioms A1-A3. As in [41], the bisimulation can be characterised as a back&forth bisimulation between the states of the associated port automata.

It is important to check that bisimulation on SProf_{⊥} is a congruence with respect to the operations tensor and trace. Here we can exploit some general properties of open maps and so bisimulation on presheaves: the product of (surjective) open maps in a presheaf category is (surjective) open [18]; any colimit-preserving functor between presheaf categories preserves (surjective) open maps [8]. The proof that trace on SProf_{⊥} preserves bisimulation uses the latter property, exploiting the fact that trace can be expressed as a colimit; first showing from the definition that F b(−) preserves open maps. The proof of the corresponding result for tensor rests on a construction of tensor from more basic functors. The tensor of X_{1} : P_{1} [figure: +] Q_{1} and X_{2} : P_{2} [figure: +] Q_{2} can be expressed as a product of presheaves over P_{1}^{op} × Q_{1} × P_{2}^{op} × Q_{2} :

X_{1} ⊗ X_{2} = (π_{1}^{∗}X_{1}) × (π_{2}^{∗}X_{2})

where e.g.

π_{1}^{∗}: { \atop P_{1}^{op} × Q_{1}} → { \atop P_{1}^{op} × Q_{1} × P_{2}^{op} × Q_{2}}

is obtained by composition with the projection

π_{1} : P_{1}^{op} × Q_{1} × P_{2}^{op} × Q_{2} → P_{1}^{op} × Q_{1},

so (π_{1}^{∗}X_{1})_{q_{1},q_{2}}^{p_{1},p_{2}} = X_{1}_{q_{1}}^{p_{1}}. For general reasons π_{1}^{∗} has a right adjoint (constructed as a right Kan extension—see [27, 19]). Thus π_{1}^{∗} and, similarly, π_{2}^{∗} are left adjoints and so preserve (surjective) open maps. Combined with the similar fact about product of presheaves we deduce that ⊗ preserves (surjective) open maps, and so bisimulation.

5.2 Higher types via Geometry of Interaction

The geometry of interaction programme can be seen as a method of constructing a compact closed category from a traced monoidal category.^{6} As such it gives a method for realizing higher-order constructs in terms of feedback. In our setting one takes the categories Kahn and SProf_{⊥} and constructs compact-closed categories HKahn and HProf_{⊥} which then serve as the interpretations of higherorder Kahn processes and Port profunctors.

In this section we give a summary of a categorical presentation of the geometry of interaction construction due to Abramsky [1] and also to Joyal, Street and Verity [20]. We do not need the full generality of the latter presentation since we do not consider braiding or twists. Essentially, one obtain a higher-order model by working with processes with bi-directional “input” and “output”. For dataflow this can be understood as splitting channels into a positive part and a negative part; the positive channels carry tokens in the usual direction and the negative in the opposite direction. These processes are implemented by uni-directional processes of the underlying category in the obvious way, regarding negative input channels as output channels and negative output as input. Below we will use box-diagrams in the style of [20], using double boxes for morphisms of the higher-order category.

Definition 27 Given a traced monoidal category C we define a new category G(C) as follows. The objects of G(C) are pairs of objects (A^{+}, A^{−}) of C. A morphism f : (A^{+}, A^{−}) ⟶ (B^{+}, B^{−}) of G(C) is a C-morphism f : A^{+}⊗B^{−} ⟶ B^{+}⊗A^{−}, ie.

[figure: f; A^{−}; A^{+}; B^{+}; B^{−}]is implemented by [figure: f; B^{−}; A^{+}; B^{+}; A^{−}],

6In Girard’s original treatment this was expressed in terms of traces in the category of Hilbert spaces. That situation is more complicated because not every morphism has a trace, so the categorical presentation of geometry of interaction is not the same as the original program.

where dotted lines indicate channels that play the opposite role in G(C). Composition is implemented using composition, trace and symmetries of C to connect B-channels with same polarity, ie. for g : (B^{+}, B^{−}) ⟶ (C^{+}, C^{−}), f; g is implemented by T r_{A^{+}⊗C^{−},C^{+}⊗A^{−}}^{B^{−}}(σ; (f ⊗ I_{C^{−}}); σ′; (g ⊗ I_{A^{−}}); σ′′), for the appropriate symmetries σ, σ′ and σ′′.

Note that C embeds into G(C) as arrows with no negative flow, mapping objects A to (A, I).

A symmetric monoidal structure ⊙ is defined on objects by (A^{+}, A^{−})⊙(B^{+}, B^{−}) = (A^{+} ⊗ B^{+}, B^{−} ⊗ A^{−}) and for arrows f, g, we define f ⊙ g by σ; f ⊗ g; σ′, where σ, σ′ are symmetry morphisms of C, gathering channels of the same polarity. The symmetry morphism for ⊙ is the evident tensor of symmetry morphisms of C. We have an obvious duality defined on objects by (A^{+}, A^{−})^{∗} = (A^{−}, A^{+}), and on arrows by swapping the roles of channels

[figure: f; A^{−}; A^{+}; B^{+}; B^{−}] \underleftrightarrow{( )^{∗}} [figure: f^{∗}; A^{−}; A^{+}; B^{+}; B^{−}],

defining a contravariant functor (−)^{∗} : G(C) ⟶ G(C). Finally, from definition 27 we get internal hom sets by (A^{+}, A^{−}) {− \atop ∘} (B^{+}, B^{−}) = (B^{+}, B^{−}) ⊙ (A^{+}, A^{−})^{∗} corresponding to moving all channels to the output side, and changing their roles accordingly

[figure: f; A^{−}; A^{+}; B^{+}; B^{−}] = [figure: f; A^{−}; A^{+}; B^{+}; B^{−}].

This defines a compact closed structure [24].

Proposition 28 The category G(C) is a compact-closed category.

We immediately get, since it preserves tensor and trace, that the functor Seq: SProf_{⊥} ⟶ Kahn extends to one between the higher-order categories.

Proposition 29 We have a functor HSeq: HProf_{⊥} ⟶ HKahn, defined using Seq on the base category.

Within HKahn and HProf_{⊥}, the diagonal d_{X}: I ⟶ X ⊗ X^{∗} and evaluation e_{X}: X^{∗} ⊗ X ⟶ I maps are essentially “routers”, copying values from in-going channels to the corresponding out-going ones.

Indeed, for X: I ⟶ A and Y : A ⟶ B of say SProf_{⊥},

[figure: X; Y; e_{A}; I_{B}; B; A; A; B]

when imbedded into HProf_{⊥} and internalized we get (Y ⊗ X): I ⟶ (B ⊗ A, A) as illustrated to the left, and the application (Y ⊗ X); (I_{B} ⊗ e_{A}): I ⟶ B simply

corresponds to plugging X into Y in SProf_{⊥}. The same goes for higher-order evaluation.

Summa summarum: We have two genuine higher-order calculi of dataflow, explicitly related to each other and based on a low-level implementation such that application simply corresponds to plugging networks together, combining wires using feedback.

6 Concluding remarks

It remains to systematically explore the full family of models for dataflow, relating automata, event structure and traces-based models to the relational model, following the pattern set in [42]. Work is underway on a bicategory of port automata to close a gap in [36]. This will provide further operational back up to the trace on port profunctors and help in the understanding of independence at higher-order. The higher-order models should be compared to the related, but clearly different, work in [2]. It remains to incorporate fairness into the profunctor model; it is hoped to exploit independence along the lines in [9]. A compositional semantics of Verilog, or perhaps an interesting fragment, feels within reach.

References

[1] Abramsky, S. Retracing some paths in process algebra. In CONCUR’96, vol. 1119 of LNCS, pp. 1–17.

[2] Abramsky, S., Gay, S., and Nagarajan, R. Interaction categories and the foundations of typed concurrent programming. In Proc. of the 1994 Marktoberdorf summer school, Springer.

[3] Bainbridge, E. S. Feedback and generalized logic. Information and Control, 31 (1976), 75–96.

[4] Bednarczyk, M. A. Categories of asynchronous systems. PhD thesis, University of Sussex, 1988.

[5] Borceux, F. Handbook of categorical logic, vol. 1. Cambridge University Press, 1994.

[6] Brock, J., and Ackerman, W. Scenarios: a model of non-determinate computation. In Formalization of Programming Concepts (1981), Diaz and Ramos, Eds., vol. 107 of LNCS, Springer.

[7] Cattani, G. L., Stark, I., and Winskel, G. Presheaf models for the pi-calculu. In CTCS’97, vol. 1290 of LNCS, Springer, pp. 106–126.

[8] Cattani, G. L., and Winskel, G. Presheaf models for concurrency. In CSL’96, vol. 1258 of LNCS, Springer, pp. 58–75.

[9] Cheng, A. Petri nets, traces, and local model checking. Tech. Rep. RS-95-39, BRICS, 1995.

[10] Dennis, J. First version of a dataflow procedure language. In Proc Colloque sur la Programmation (1974), B. Robinet, Ed., vol. 19 of LNCS, Springer, pp. 362–376.

[11] Dennis, J. B. Control Flow and Data Flow: Concepts of Distributed Programming, vol. 14 of NATO ASI Series F. Springer, 1984, ch. Data Flow Computation, pp. 345–398.

[12] Diekert, V., and Métivier, Y. Handbook of Formal Languages. Springer, 1997, ch. Partial Commutation and Traces.

[13] Faustini, A. A. An operational semantics for pure dataflow. In ICALP’82, vol. 140 of LNCS, Springer, pp. 212–224.

[14] Gordon, M. The semantic challenge of verilog hdl. www.cl.cam.ac.uk/mjcg/, April 1996. Revised version of an invited paper published in LICS’95.

[15] Hasegawa, M. Recursion from cyclic sharing: traced monoidal categories and models of cyclic lambda calculi. In TLCA’97 (1997), vol. 1210 of LNCS, pp. 196–213.

[16] Jones, V. F. A polynomial invariant for links via von neumann algebras. Bull. Amer. Math. Soc. 129 (1985), 103–112.

[17] Jonsson, B. A fully abstract trace model for dataflow networks. In POPL’89, ACM, pp. 155–165.

[18] Joyal, A., and Moerdijk, I. A completeness theorem for open maps. Annals of Pure and Applied Logic 70, 1 (1994), 51–86.

[19] Joyal, A., Nielsen, M., and Winskel, G. Bisimulation from open maps. Tech. Rep. RS-94-7, BRICS, 1994.

[20] Joyal, A., Street, R., and Verity, D. Traced monoidal categories. vol. 119 of Math. Proc. Camb. Phil. Soc., pp. 447–468.

[21] Kahn, G. The semantics of a simple language for parallel programming. In Information Processeing (1974), vol. 74, pp. 471–475.

[22] Kahn, G., and MacQueen, D. Coroutines and networks of parallel processes. In Proceedings of Information Processing (1977), Gilchrist, Ed., North-Holland, pp. 993–998.

[23] Katis, P., Sabadini, N., and Walters, R. Bicategories of processes. Journal of Pure and Applied Algebra (1997).

[24] Kelly, G., and Laplaza, M. Coherence for compact closed categories. Journal of Pure and Applied Algebra 19 (1980), 193–213.

[25] Kok, J. A fully abstract semantics for dataflow nets. In Proceedings of Parallel Architectures And Languages Europe (Berlin, 1987), Springer, pp. 351– 368.

[26] Lynch, N. A., and Stark, E. W. A proof of the kahn principle for input/output automata. Information and Computation 82 (1989), 81–92.

[27] Mac Lane, S. Categories for the Working Mathematician. Springer, 1971.

[28] Mazurkiewicz, A. Trace theory. In Petri Nets: Applications and Relationships to Other Models of Concurrency (1986), vol. 255 of LNCS, Springer, pp. 279–324.

[29] Panangaden, P., and Shanbhogue, V. The expressive power of indeterminate dataflow primitive. Information and Computation 98, 1 (1992), 99–131.

[30] Panangaden, P., and Stark, E. W. Computations, residuals and the power of indeterminacy. In Proc. of the 15th ICALP (1988), Springer, pp. 439–454.

[31] Pratt, V. Modelling concurrency with partial orders. International Journal of Parallel Programming, 1 (1986).

[32] Rabinovich, A., and Trakhtenbrot, B. A. Nets of processes and dataflow. To appear in Proceedings of ReX School on Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency, LNCS, 1988.

[33] Rabinovich, A., and Trakhtenbrot, B. A. Nets and data flow interpreters. In Proceedings of the 4th LICS (1989), pp. 164–174.

[34] Rabinovich, A., and Trakhtenbrot, B. A. Communication among relations. In Proc. of the 7th ICALP (1990), M. S. Paterson, Ed., vol. 443 of LNCS, Springer, pp. 294–307.

[35] Russell, J. R. Full abstraction for nondeterministic dataflow networks. In FOCS’89, pp. 170–176.

[36] Selinger, P. First-order axioms for asynchrony. In CONCUR’97, vol. 1243 of LNCS, Springer, pp. 376–390.

[37] Shields, M. W. Concurrent machines. Computer Journal 28 (1985), 449– 465.

[38] Stark, E. W. Compositional relational semantics for indeterminate dataflow networks. In CTCS (Manchester, U.K., 1989), vol. 389 of LNCS, Springer, pp. 52–74.

[39] Stark, E. W. Dataflow networks are fibrations. Tech. rep., Dept. of Computer Science, Stony Brook, 1989.

[40] Winskel, G. A presheaf semantics of value-passing processes. In CON-CUR’96, vol. 1119 of LNCS, pp. 98–114.

[41] Winskel, G., and Nielsen, M. Presheaves as transition systems. In POMIV’96, vol. 29.

[42] Winskel, G., and Nielsen, M. Handbook of Logic in Computer Science, vol. IV. OUP, 1995, ch. Models for concurrency.

Recent BRICS Report Series Publications

RS-97-36 Thomas Troels Hildebrandt, Prakash Panangaden, and Glynn Winskel. Relational Semantics of Non-Deterministic Dataflow. December 1997. 21 pp.

RS-97-35 Gian Luca Cattani, Marcelo P. Fiore, and Glynn Winskel. A Theory of Recursive Domains with Applications to Concurrency. December 1997. ii+23 pp.

RS-97-34 Gian Luca Cattani, Ian Stark, and Glynn Winskel. Presheaf Models for the π-Calculus. December 1997. ii+27 pp. Appears in Moggi and Rosolini, editors, Category Theory and Computer Science: 7th International Conference, CTCS ’97 Proceedings, LNCS 1290, 1997, pages 106–126.

RS-97-33 Anders Kock and Gonzalo E. Reyes. A Note on Frame Distributions. December 1997. 15 pp.

RS-97-32 Thore Husfeldt and Theis Rauhe. Hardness Results for Dynamic Problems by Extensions of Fredman and Saks’ Chronogram Method. November 1997. i+13 pp.

RS-97-31 Klaus Havelund, Arne Skou, Kim G. Larsen, and Kristian Lund. Formal Modeling and Analysis of an Audio/Video Protocol: An Industrial Case Study Using Uppaal. November 1997. 23 pp. To appear in The 18th IEEE Real-Time Systems Symposium, RTSS ’97 Proceedings.

RS-97-30 Ulrich Kohlenbach. Proof Theory and Computational Analysis. November 1997. 38 pp.

RS-97-29 Luca Aceto, Augusto Burgueño, and Kim G. Larsen. Model Checking via Reachability Testing for Timed Automata. November 1997. 29 pp.

RS-97-28 Ronald Cramer, Ivan B. Damgård, and Ueli Maurer. Span Programs and General Secure Multi-Party Computation. November 1997. 27 pp.

RS-97-27 Ronald Cramer and Ivan B. Damgård. Zero-Knowledge Proofs for Finite Field Arithmetic or: Can Zero-Knowledge be for Free? November 1997. 33 pp.

RS-97-26 Luca Aceto and Anna Ingólfsdóttir. A Characterization of Finitary Bisimulation. October 1997. 9 pp. To appear in Information Processing Letters.