The situation calculus is the mathematical logic notation we will be using and it has many advantages in terms of clarity and being implementation agnostic, but it is somewhat of a departure from the repertoire of mathematical tools commonly used in computer graphics. In particular, a user is not required to type in axioms written in first-order mathematical logic. The situation calculus is an AI formalism for describing changing worlds using sorted first-order logic. A domain-independent constant s0 denotes the initial situation. Any property of the world that can change over time is known as a fluent .
Primitive actions are the fundamental instrument of change in our ontology.
Sentences that specify what the state of the world must be before performing some action are known as precondition axioms . They give necessary conditions for a fluent to take on a given value after performing an action. For example, the effect of dropping a fragile object x is that the object ends up being broken Surprisingly, a naive translation of effect axioms into the situation calculus does not give the expected results. In particular, stating what does not change when an action is performed is problematic. That is, a character must consider whether dropping a cup, for instance, results in, say, a vase turning into a bird and flying about the room.