Also see the following alternative models of complex dynamic systems: General Systems theory and automata: [ math_71_Auto...Systems.html ] , Systems algebras: [ math_72_Systems_Algebra.html ] , and theories of programs: [ math_75_Programs.html ]
Sources
This set of notes is a work in progress. Slowly and steadily I'm
placing the more on the web. The reader will almost
certainly benefit from studying my sources. Meanwhile I am scattering
a Hole link all over this page to invite you, the reader,
to help me fill in the blanks.
Process algebras are very high level models of complex systems or programs. Various actions can take place. The systems can perform (or suffer?) as sequence of actions (a;b;c;...). They can choose between alternative actions (x|y|z...). In the printed papers and books plus and minus are used, instead of '|' and ';', by the way. Systems can execute some actions in parallel and/or communicate. This I'll show as "<&>", however a vertical bar is used in the literature. The overall behavior is modelled by the idea that the different actions are interleaved or merged ("<*>").
Process Algebras developed after Hoare's work on Communicating Sequential Processes (CSP) [Hoare81] and Milner's Calculus of Communicating Systems (CCS) [Milner80] both of which are still worth studying.
(BerKop90): JA Bergstra & J W Kop(pp1-22) in Baeton 90. J C M Baeton(ed)
Applications of Process Algebra, Cambridge U. Press 1990.
(Vran97): J L M Vrancken, The Algebra of Communicating Processes with
empty process, Theor Comp Sci V177 pp287-328 1997.
Probably the simplest of these schemes is LOTOS:
For P,Q,R,S:Process.
For a,b,c,d:Action.
For A,B:@Action.
Note. An expression like a;b;c;P has to be parsed as a;(b;(c;P))) because a;b is not an Action.
Note. I'm not sure of the associativity of >>: Is P>>Q>>R the same as
P>>(Q>>R) or (P>>Q)>>R. I don't know whether the meaning is same either!
[click here
if you can fill this hole]
Note. Again I don't know the Precedence of >> vs |...| or the associativity
of |...|.
[click here
if you can fill this hole]
Structural Operational Semantics
The semantics/meaning of LOTOS expressions can be given as rules
describing the conditions for a transition P-a->Q to occur.
Note. I'm not sure about expressions like P|{a,b}|(Q|{a,c}|R) allow
P, Q, and R all to evolve with an action a at the same time.
[click here
if you can fill this hole]
then we can show
. . . . . . . . . ( end of section example) <<Contents | End>>
More on LOTOS:
[click here
if you can fill this hole]
ACTONE
LOTOS combined with Abstract data types.
[click here
if you can fill this hole]
. . . . . . . . . ( end of section LOTOS in MATHS) <<Contents | End>>
Communicating Sequential Processes
μ[X:A](P(X)) ::Process= the X(α(X)=A and X=P(X)).
Mutual recursive definitions are allowed and have solutions as long as each LHS is defined once and only once. If there are choices(Choice next) then each alternative must have a defferent set of prefixes.
Choice
The most general form is
The above is reminiscient of Gries's (later) notations: F(x:B. P. R) and Unity.
Can show that every well defined process is a fuction mapping a set of initally acceptable events into a set of future behaviors.
More "Real Soon Now"...
[click here
if you can fill this hole]
. . . . . . . . . ( end of section Communicating Sequential Processes) <<Contents | End>>
. . . . . . . . . ( end of section Introduction) <<Contents | End>>
Choices:
Sequence:
Making a choice and then acting is the same as choosing one of two sequences:
As a result the result suggest possible assumptions to make when we don't know that the terms are constructed by a finite process for known atomic steps/pieces. They can also be taken as axioms when the CTM is not assumed. An alternative model is based on labelled graphs.
I'm not sure if the next property is very important it is not usually stated in the literature.
For all a,b:S, if γ(a,b)<>δ then a and b are two parts of a single action γ(a,b) else a and b will deadlock the system.
|-(CM1): For x,y, x<*>y::= x>*>y | y>*>x | x<&>y.
Algebra of Communicating Processes
The full algebra allows us to take a whole slew of actions and hide or encapsulate them.
The operator δ[H] doesn't hide actions outside of H,
The operator δ[H] does hide actions in H,
Encapsulation preserves sequence and choice while hiding some actions:
Axioms from Milner's CCS.
A system is typically an expression of form <*>(x)=x1<*>x2<*>...<*>x[k] for some list of subsystems(expressions).
for n:1.., π[n]:: A->A.
for x,y, d(x,y) ::= 2^-n where n:=the least{n:Nat || π[n](x)<>π[n](y)}
if α(x)<&>(α(y)&H) ==>H then δ[H](x<*>y)=δ[H](x <*> δ[H](y)).
if α(x)<&>(α(y)&I) ={} then τ[I](x<*>y)=τ[I](x <*> τ[I](y)).
if α(x)&H ={} then δ[H](x)=x.
if α(x)&I ={} then τ[I](x)=x.
δ[H1|H2] = δ[H1] o δ[H2].
τ[I1|I2] = τ[I1] o τ[I2].
if H&I={} then τ[I] o δ[H] = δ[H] o τ[I].
Koomen's Fair Abstraction Rule(KFAR)
Gedanken experiment - someone flips a coin behind closed doors until a head occurs. Will they ever come out?
Then
Empty Processes
The idea that it helps to include an empty process that does
nothing much comes from Karst Koymans and is worked out in
detail by J L M Vranken in the paper [Vran97] published in
Theoretical Computer Science in 1997.
Compare with PAD1 above.
Here we can replace an action by either empty or deadlock to hide it.
Vranken hints at proofs by induction of the following theorems:
And so to th assoicativity of merge:
Vranken also developes projection and priority operations.
In place of Koman's Fair Abstraction Rule KFAR_1 and KFAR_2 we have the Epsilon Abstraction Rule:
More
[click here
if you can fill this hole]
. . . . . . . . . ( end of section Process Algebras) <<Contents | End>>
. . . . . . . . . ( end of section Process Algebras and Communicating Sequential Processes) <<Contents | End>>
Notes on MATHS Notation
Special characters are defined in
[ intro_characters.html ]
that also outlines the syntax of expressions and a document.
Proofs follow a natural deduction style that start with assumptions ("Let") and continue to a consequence ("Close Let") and then discard the assumptions and deduce a conclusion. Look here [ Block Structure in logic_25_Proofs ] for more on the structure and rules.
The notation also allows you to create a new network of variables and constraints. A "Net" has a number of variables (including none) and a number of properties (including none) that connect variables. You can give them a name and then reuse them. The schema, formal system, or an elementary piece of documentation starts with "Net" and finishes "End of Net". For more, see [ notn_13_Docn_Syntax.html ] for these ways of defining and reusing pieces of logic and algebra in your documents. A quick example: a circle = Net{radius:Positive Real, center:Point}.
For a complete listing of pages in this part of my site by topic see [ home.html ]
Notes on the Underlying Logic of MATHS
The notation used here is a formal language with syntax
and a semantics described using traditional formal logic
[ logic_0_Intro.html ]
plus sets, functions, relations, and other mathematical extensions.
For a more rigorous description of the standard notations see