TPTP Axioms File: CSR001+3.ax


%------------------------------------------------------------------------------
% File     : CSR001+3 : TPTP v8.2.0. Released .0.
% Domain   : Commonsense Reasoning
% Axioms   : Supermarket trolley scenario for multiple trolleys
% Version  : [Mue05] axioms : Especial.
% English  :

% Refs     : [Mue05] Mueller (2005), Email to Geoff Sutcliffe
% Source   : [Mue05]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :    9 (   5 unt;   0 def)
%            Number of atoms       :   40 (  28 equ)
%            Maximal formula atoms :   19 (   4 avg)
%            Number of connectives :   48 (  17   ~;   7   |;  20   &)
%                                         (   2 <=>;   2  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   15 (   7 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of predicates  :    5 (   4 usr;   0 prp; 2-3 aty)
%            Number of functors    :    5 (   5 usr;   0 con; 1-2 aty)
%            Number of variables   :   26 (  22   !;   4   ?)
% SPC      : 

% Comments : Requires CSR001+0.ax
%------------------------------------------------------------------------------
fof(initiates_all_defn,axiom,
    ! [Event,Fluent,Time] :
      ( initiates(Event,Fluent,Time)
    <=> ? [Agent,Trolley] :
          ( ( Event = push(Agent,Trolley)
            & Fluent = forwards(Trolley)
            & ~ happens(pull(Agent,Trolley),Time) )
          | ( Event = pull(Agent,Trolley)
            & Fluent = backwards(Trolley)
            & ~ happens(push(Agent,Trolley),Time) )
          | ( Event = pull(Agent,Trolley)
            & Fluent = spinning(Trolley)
            & happens(push(Agent,Trolley),Time) ) ) ) ).

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

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

%----Distinct events
fof(push_not_pull,axiom,
    ! [Agent,Trolley] : push(Agent,Trolley) != pull(Agent,Trolley) ).

fof(push_unique,axiom,
    ! [Agent1,Agent2,Trolley1,Trolley2] :
      ( ( Agent1 != Agent2
        & Trolley1 != Trolley2 )
     => push(Agent1,Trolley1) != push(Agent2,Trolley2) ) ).

fof(pull_unique,axiom,
    ! [Agent1,Agent2,Trolley1,Trolley2] :
      ( ( Agent1 != Agent2
        & Trolley1 != Trolley2 )
     => pull(Agent1,Trolley1) != pull(Agent2,Trolley2) ) ).

%----Distinct fluents
fof(forwards_not_backwards,axiom,
    ! [Trolley] : forwards(Trolley) != backwards(Trolley) ).

fof(forwards_not_spinning,axiom,
    ! [Trolley] : forwards(Trolley) != spinning(Trolley) ).

fof(spinning_not_backwards,axiom,
    ! [Trolley] : spinning(Trolley) != backwards(Trolley) ).

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