The axiom

states that unless something prevents it, *x* is on *y* in the
situation that results from the action *move*(*x*,*y*).

We now list various ``things'' that may prevent this action.

Let us now suppose that a heuristic program would like to
move block *A* onto block *C* in a situation *s*0. The program should
conjecture from (21) that the action *move*(*A*,*C*) would have the
desired effect, so it must try to establish .
The predicate
can be circumscribed in the conjunction of
the sentences resulting from specializing
(22), (23) and (24),
and this gives

which says that the only things that can prevent the move are the phenomena described in (22), (23) and (24). Whether (25) is true depends on how good the program was in finding all the relevant statements. Since the program wants to show that nothing prevents the move, it must set , after which (25) simplifies to

We suppose that the premisses of this implication are to be obtained as follows:

1. *isblock* A and *isblock* B are explicitly asserted.

2. Suppose that the only *on*ness assertion explicitly given
for situation *s*0 is
*on*(*A*,*B*,*s*0). Circumscription of y.on(x,y,s0) in this assertion gives

and taking yields

Using

as the definition of *clear* yields the second two desired premisses.

3. might be explicitly present or it might also
be conjectured by a circumscription assuming that if *x* were too heavy,
the facts would establish it.

Circumscription may also be convenient for asserting that when a block is moved, everything that cannot be proved to move stays where it was. In the simple blocks world, the effect of this can easily be achieved by an axiom that states that all blocks except the one that is moved stay put. However, if there are various sentences that say (for example) that one block is attached to another, circumscription may express the heuristic situation better than an axiom.

Tue May 14 00:04:52 PDT 1996