## TPTP Axioms File: CSR001+2.ax

```%------------------------------------------------------------------------------
% File     : CSR001+2 : TPTP v7.5.0. Released v3.1.0.
% Domain   : Commonsense Reasoning
% Axioms   : Supermarket trolley scenario
% Version  : [Sha97] axioms : Especial.
% English  :

% Refs     : [Sha97] Shanahan (1997), Solving the Frame Problem
% Source   : [Sha97]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :    8 (   5 unit)
%            Number of atoms       :   43 (  30 equality)
%            Maximal formula depth :   13 (   6 average)
%            Number of connectives :   46 (  11 ~  ;  10  |;  22  &)
%                                         (   3 <=>;   0 =>;   0 <=)
%                                         (   0 <~>;   0 ~|;   0 ~&)
%            Number of predicates  :    5 (   0 propositional; 2-3 arity)
%            Number of functors    :    8 (   8 constant; 0-0 arity)
%            Number of variables   :   11 (   0 singleton;  11 !;   0 ?)
%            Maximal term depth    :    1 (   1 average)
% SPC      :

%------------------------------------------------------------------------------
fof(initiates_all_defn,axiom,
( ! [Event,Fluent,Time] :
( initiates(Event,Fluent,Time)
<=> ( ( Event = push
& Fluent = forwards
& ~ happens(pull,Time) )
| ( Event = pull
& Fluent = backwards
& ~ happens(push,Time) )
| ( Event = pull
& Fluent = spinning
& happens(push,Time) ) ) ) )).

fof(terminates_all_defn,axiom,
( ! [Event,Fluent,Time] :
( terminates(Event,Fluent,Time)
<=> ( ( Event = push
& Fluent = backwards
& ~ happens(pull,Time) )
| ( Event = pull
& Fluent = forwards
& ~ happens(push,Time) )
| ( Event = pull
& Fluent = forwards
& happens(push,Time) )
| ( Event = pull
& Fluent = backwards
& happens(push,Time) )
| ( Event = push
& Fluent = spinning
& ~ happens(pull,Time) )
| ( Event = pull
& Fluent = spinning
& ~ happens(push,Time) ) ) ) )).

fof(releases_all_defn,axiom,
( ! [Event,Fluent,Time] : ~ releases(Event,Fluent,Time) )).

fof(happens_all_defn,axiom,
( ! [Event,Time] :
( happens(Event,Time)
<=> ( ( Event = push
& Time = n0 )
| ( Event = pull
& Time = n1 )
| ( Event = pull
& Time = n2 )
| ( Event = push
& Time = n2 ) ) ) )).

%----Distinct events
fof(push_not_pull,axiom,
(  push != pull )).

%----Distinct fluents
fof(forwards_not_backwards,axiom,
(  forwards != backwards )).

fof(forwards_not_spinning,axiom,
(  forwards != spinning )).

fof(spinning_not_backwards,axiom,
(  spinning != backwards )).

%------------------------------------------------------------------------------
```