TPTP Axioms File: CSR001_1.ax
%------------------------------------------------------------------------------
% File : CSR001_1 : TPTP v9.1.0. Released v9.1.0.
% Domain : Commonsense Reasoning
% Axioms : Kitchen sink scenario
% Version : [Sha97] axioms : Especial.
% English :
% Refs : [Sha97] Shanahan (1997), Solving the Frame Problem
% Source : [Sha97]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 18 ( 6 unt; 6 typ; 0 def)
% Number of atoms : 42 ( 24 equ)
% Maximal formula atoms : 11 ( 3 avg)
% Number of connectives : 27 ( 6 ~; 4 |; 11 &)
% ( 4 <=>; 2 =>; 0 <=; 0 <~>)
% Maximal formula depth : 11 ( 5 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of FOOLs : 9 ( 9 fml; 0 var)
% Number arithmetic : 18 ( 0 atm; 1 fun; 0 num; 17 var)
% Number of types : 1 ( 0 usr; 1 ari)
% Number of type conns : 1 ( 1 >; 0 *; 0 +; 0 <<)
% Number of predicates : 9 ( 8 usr; 2 prp; 0-4 aty)
% Number of functors : 7 ( 6 usr; 5 con; 0-2 aty)
% Number of variables : 23 ( 20 !; 3 ?; 23 :)
% SPC :
% Comments : Requires CSR001_0.ax
%------------------------------------------------------------------------------
tff(waterLevel_decl,type,
waterLevel: $int > fluent ).
tff(tapOn_decl,type,
tapOn: event ).
tff(tapOff_decl,type,
tapOff: event ).
tff(overflow_decl,type,
overflow: event ).
tff(spilling_decl,type,
spilling: fluent ).
tff(filling_decl,type,
filling: fluent ).
%tff(distinct_events,axiom,
% $distinct(tapOn,tapOff,overflow) ).
tff(tapOn_tapOff,axiom,
tapOn != tapOff ).
tff(tapOn_overflow,axiom,
tapOn != overflow ).
tff(tapOff_overflow,axiom,
tapOff != overflow ).
tff(filling_not_waterLevel,axiom,
! [X: $int] : ( filling != waterLevel(X) ) ).
tff(spilling_not_waterLevel,axiom,
! [X: $int] : ( spilling != waterLevel(X) ) ).
tff(filling_not_spilling,axiom,
filling != spilling ).
tff(distinct_waterLevels,axiom,
! [X: $int,Y: $int] :
( ( waterLevel(X) = waterLevel(Y) )
<=> ( X = Y ) ) ).
tff(initiates_all_defn,axiom,
! [Event: event,Fluent: fluent,Time: $int] :
( initiates(Event,Fluent,at_time(Time))
<=> ( ( ( Event = tapOn )
& ( Fluent = filling ) )
| ( ( Event = overflow )
& ( Fluent = spilling ) )
| ? [Height: $int] :
( holdsAt(waterLevel(Height),at_time(Time))
& ( Event = tapOff )
& ( Fluent = waterLevel(Height) ) )
| ? [Height: $int] :
( holdsAt(waterLevel(Height),at_time(Time))
& ( Event = overflow )
& ( Fluent = waterLevel(Height) ) ) ) ) ).
tff(terminates_all_defn,axiom,
! [Event: event,Fluent: fluent,Time: $int] :
( terminates(Event,Fluent,at_time(Time))
<=> ( ( ( Event = tapOff )
& ( Fluent = filling ) )
| ( ( Event = overflow )
& ( Fluent = filling ) ) ) ) ).
%----tapOn event releases all waterLevels at all times
tff(releases_all_defn,axiom,
! [Event: event,Fluent: fluent,Time: $int] :
( releases(Event,Fluent,at_time(Time))
<=> ? [Height: $int] :
( ( Event = tapOn )
& ( Fluent = waterLevel(Height) ) ) ) ).
tff(change_of_waterLevel,axiom,
! [Height1: $int,Time: $int,Height2: $int,Offset: $int] :
( ( holdsAt(waterLevel(Height1),at_time(Time))
& ( Height2 = $sum(Height1,Offset) ) )
=> trajectory(filling,at_time(Time),waterLevel(Height2),Offset) ) ).
tff(same_waterLevel,axiom,
! [Time: $int,Height1: $int,Height2: $int] :
( ( holdsAt(waterLevel(Height1),at_time(Time))
& holdsAt(waterLevel(Height2),at_time(Time)) )
=> ( Height1 = Height2 ) ) ).
%------------------------------------------------------------------------------