Next: Update Sets and Up: Static Algebras and Previous: Appropriate States and

Locations and Updates

As in first-order logic, the reduct of an [Upsilon] -state S to a smaller vocabulary [Upsilon^] is the [Upsilon^] -state S' obtained from S by ``disinterpreting'' function names in [Upsilon] - [Upsilon^]; S is an expansion of S' to [Upsilon] .

A carrier is a state whose vocabulary contains only static function names. The carrier |S| of a state S is the reduct of S to the static part of Fun(S).

A location over a carrier C is a pair l = (f, [x]), where f is a function name outside of Fun(C) and is a tuple of elements of C whose length equals the arity of f ; location l is relational if f is a relation symbol. Loc[Upsilon](C) is the collection of all locations over C with function names in [Upsilon] . An [Upsilon] -state S with carrier C will sometimes be viewed as a function from Loc[Upsilon](C) to (the superuniverse of) C ; locations of S are locations in Loc[Upsilon](C) .

If a state S is appropriate for a ground term t0 = f([t]), then the location of t0 in S is the location (f, Val_S([t])) .

An update of a state S is a pair [alpha] = (l,y) , where l is a location of S and y in |S|; if l is relational then y is Boolean. (More precisely, y belongs to the superuniverse of static algebra |S|; the looser language is common in logic.) The location l is the location Loc([alpha]) of [alpha], and y is the value Val([alpha]) of [alpha] . To fire [alpha] at S , put y into the location l ; that is, redefine S to map l to y . The result is a new state S' such that Fun(S') = Fun(S), |S'| = |S|, S'(l) = y and S'(l') = S(l') for every location l' of S different from l .


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