By projection we mean inferring facts about the situation that results
from performing a sequence of actions in an initial situation *S*0.
Consider the situation of figure 1.

Figure 1

We call it *S*0 and describe it as follows:

These formulas are somewhat lengthy. Building enough machinery would permit a more compact description, e.g.

Compactness is not our present goal, so we won't bother.

The above is the positive information about *S*0. We also need
negative information such as that these are all the blocks in the scene,
that they are distinct and that blocks are distinct from situations
and colors--considerably more.

Here are some items:

- Blocks are distinct from colors and both are distinct from
situations. We can write
We assume that, as in section 2.3.1, we have axioms that make the natural numbers all different.

We also want axioms

Another way of making blocks, colors and situations, etc. distinct from each other is to use a multi-sorted logic. A sorted logic could provide different variables for the blocks, colors, etc. and a convention that the variables range over the appropriate sort.

- The blocks are distinct from each other and so are the colors. Any of the devices of section 2.3.1 will work.
- We need to say that
*A*,*B**C*,*D*and*E*are all the blocks present in the situation*S*0 and its successors. The brute force way of doing this is to writeor if the variable

*x*is declared to be of sort*block*

[much more to come]

Thu Jan 30 13:14:14 PDT 1997