Writing move(x,l,s) for the new situation resulting from the move
gives the most compact notation. It is more common to write
result(move(x,l),s). Using move(a,s) or more generally
move(e,s) for the action or event has the advantage that we can
write sentences
, i.e. we can
quantify over actions or events. (The AI trade mostly talks about
actions, but actions are just a kind of event, and much of the theory
applies to events in general).
We can also reify the fluent at(x,l) so instead of writing at(x,l,s), we write holds(at(x,l),s). We also write holds(clear(x),s).
Sometimes it is convenient to use functions instead of predicates and write color(x,s) = white instead of color(x,white,s). We might further reify color and write value(color(x),s) instead of color(x,s). Likewise we can write location(x,s) and reify that to value(location(x),s).
With these reifications the axioms become