A distributed ealgebra Aconsists of the following:
An element a is an agent at S if there is a
module name such that
S
Mod(a) =
; the
corresponding
is the program
Prog(a)
of
a , and
Fun(
)
is the vocabulary Fun(a)
of a .
Agent a is deterministic if
Prog(a)
is so.
is the reduct of S to vocabulary Fun(a) - {Self}
expanded
with Self, which is interpreted as a . Think about
as the
local state of agent a corresponding to the global state
S . (It
is not necessary to define local states via global states; see [GM] for
example.)
An agent a can make a move at S by firing
Prog(a)
at
and changing S accordingly. As a part of the move, a may
create new agents, e.g., by importing reserve elements.
To perform a move of a deterministic agent a , fire
Updates(a,S) = Updates(Prog(a), ).
Runs of a distributed ealgebra are defined below.