The generalized definition of distributed ealgebras described in 6.3.1 is used in this sub-subsection. The following problem was raised by Dean Rosenzweig [R].
Consider a scenario with (agents called) players and (additional agents viewed as) teams. Players form a static universe, teams form another static universe, and each agent is assigned a program once and for all. Players are activated and deactivated during the evolution. A team is supposed to be active if and only if its members are active. It follows that activating one player may necessitate the tedious work of activating many teams. Is there a simple and elegant way to ensure that every team is active when and only when all its members are active?
One obvious solution is to make teams active all the time and augment the program of each team with a guard stating that all the members are active. A more radical solution is to make the notion of team a part of the logic of distributed ealgebras. It will be ensured automatically that a team is active if and only if all its members are active. (It may be also required that the moves made by a player or any team involving the player are linearly ordered; see the second property of runs in 6.5.1 in this connection.) If substantial programming convenience is demonstrated, use that solution.
The possibilities to pay a lesser price in logic complication for the advantages of the radical solution will be discussed elsewhere. In this connection, Rosenzweig suggested generalizing further the definition of 6.3.1 by letting a possibly compound Boolean term play the role of Active. For example, Active(v) may say that either v is a player satisfying an auxiliary relation Ac or v is a team with all members satisfying Ac.