Fluent calculus explained

The fluent calculus is a formalism for expressing dynamical domains in first-order logic. It is a variant of the situation calculus; the main difference is that situations are considered representations of states. A binary function symbol

\circ

is used to concatenate the terms that represent facts that hold in a situation. For example, that the box is on the table in the situation

s

is represented by the formula

\existst.s=on(box,table)\circt

. The frame problem is solved by asserting that the situation after the execution of an action is identical to the one before but for the conditions changed by the action. For example, the action of moving the box from the table to the floor is formalized as:

State(Do(move(box,table,floor),s))\circon(box,table)=State(s)\circon(box,floor)

This formula states that the state after the move is added the term

on(box,floor)

and removed the term

on(box,table)

. Axioms specifying that

\circ

is commutative and non-idempotent are necessary for such axioms to work.

See also

References