Next: Remark Up: Semantics Previous: Global Choice Semantics

Semantics without Global Choice

The global choice semantics is straightforward. However, contrary to the situation 3.2.4, there is no correlation among individual choices this time around, and thus there is no real need for a global choice function xi . It may be more elegant to define gamma = NUpdates(R,S) directly by induction on R . We suppose again that S is appropriate to R and R is S -conspicuous.

If R is an update instruction then gamma = {Updates(R,S)}. If R is a sequence of rules R1, ..., Rk , then gamma = {beta_1 union ... union beta_k: each beta_i in NUpdates(Ri,S)}. Notice that is empty if some NUpdates(Ri, S) is empty.

If R is a conditional rule with clauses (g0,R0), ... , (gk,Rk). , we have two cases as usual; if all k+1 guards fail in S then gamma = {emptyset}, and if g_i is the first guard that holds in S then gamma = NUpdates(Ri, S). (It would be a mistake to replace {emptyset} with emptyset above. If NUpdates(R1, S) = emptyset then NUpdates((R1, R2), S) = emptyset for every rule R2 , which is not desired.)

Finally, suppose that R is a choose rule with universe name U , main existential variable v and body R0 . For each a in U, let S_a be the expansion of S of the auxiliary vocabulary Fun(S) union {v} where v is interpreted as a . Then gamma = union {NUpdates(R0, S_a) : a in U}. Notice that is empty if U is empty.

It is easy to check that if R contains no choice subrules then NUpdates(R, S) = {Updates(R, S)}.


huggins@acm.org
Thu Mar 23 17:30:35 EST 1995