TPTP Axioms File: CSR001+2.ax


%------------------------------------------------------------------------------
% File     : CSR001+2 : TPTP v9.0.0. Released .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 unt;   0 def)
%            Number of atoms       :   43 (  30 equ)
%            Maximal formula atoms :   19 (   5 avg)
%            Number of connectives :   46 (  11   ~;  10   |;  22   &)
%                                         (   3 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   13 (   6 avg)
%            Maximal term depth    :    1 (   1 avg)
%            Number of predicates  :    5 (   4 usr;   0 prp; 2-3 aty)
%            Number of functors    :    8 (   8 usr;   8 con; 0-0 aty)
%            Number of variables   :   11 (  11   !;   0   ?)
% SPC      : 

% Comments : Requires CSR001+0.ax
%------------------------------------------------------------------------------
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 ).

%------------------------------------------------------------------------------