Saturday, May 31, 2014

The algebra of processes IX

I have had some problems so there has been a break in this series of posts. But also I was not quite sure how to explain what I called the distributive laws with the rather primitive mathematical resources of my blogspot. I should really find out how to incorporate TeX.
Read more »

Labels: ,

Thursday, May 15, 2014

The algebra of processes VIII - the distributive laws

I want to first say something about the abstract setting. In the arXiv paper (arXiv:0909.4136 ) we considered a more complicated notion of process (mentioned in the second post of this series) with nine graphs, and we described many operations. We now believe that this definition was too general, and instead a process should consist of five graphs A,B,X,Y, G and four morphisms δ0: G → A,  δ1: G → B, γ0: X → G, γ1: Y → G  as we have been discussing in these posts.

Read more »

Labels: ,

The algebra of processes VII

PARALLEL PROGRAMMING in Span(Graph)

Last post I promised to give an example of a parallel program. Here is a very simple one which is the parallel composite of two components both having state space N+N+N (N= natural numbers).
I have distinguished the different summands by subscripts to make the description of the composite clearer:

Read more »

Labels: ,

Wednesday, May 07, 2014

The algebra of processes VI

The PARALLEL ALGEBRA of PROCESSES Span(Graph)
We have just described Cospan(Graph/A) as a sequential algebra. However if we take A × B instead of A, a cospan in Graph/(A×B) from X to Y  consists of four morphisms of graphs: X → G, Y → G, G → A, and G → B, where here A  and B are thought of as graphs with a single vertex, and edge sets being A and B respectively.

But this is exactly an example of a process as defined in the first post of this series. X and Y are the sequential interface, A and B the parallel interface. Such a process is in Cospan(Graph/(A × B)), the sequential algebra, but also in Span((X+Y)\Graph), the parallel algebra.
Read more »

Labels: ,

Sunday, May 04, 2014

The algebra of processes V

SEQUENTIAL PROGRAMMING in Cospan(Graph) continued:
We are now not interested in the alphabet A, but just in writing sequential programs whose input/output behaviour yield partial functions, so we take A to be a one letter alphabet and ignore it.

There is an operation I have not introduced which strictly speaking is not in Cospan because it is a little bit of parallelism, which however does not involve any parallel communication. We will see later that it is an operation which involves Span and Cospan.
Read more »

Labels: ,

Friday, May 02, 2014

On the algebra of processes IV

In this post I want to begin describing simple sequential programming in terms of Cospan(Graph/A).  First let's look at two examples of (infinite) cospans:
N is the natural numbers. The span "error" is the partial function which takes 0 to error. The span "pred" is the partial function which takes n to n-1 if n is positive. The span "zero" is the function on one point that takes the value 0. The span "succ" is the successor function.
Read more »

Labels: ,