TPTP Axioms File: TIM002_1.ax


%------------------------------------------------------------------------------
% File     : TIM002_1 : TPTP v9.3.1. Released v9.3.0.
% Domain   : Time
% Axioms   : Allen and Hayes axioms for points in time
% Version  : [AH83] axioms : Especial.
% English  : 

% Refs     : [All83] Allen (1983), Maintaining Knowledge about Temporal Int
%          : [AH89]  Allen & Hayes (1989), Moments and Points in an Interva
% Source   : [ChatGPT]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :   16 (   2 unt;   5 typ;   0 def)
%            Number of atoms       :   28 (   7 equ)
%            Maximal formula atoms :    4 (   2 avg)
%            Number of connectives :   18 (   1   ~;   1   |;   7   &)
%                                         (   8 <=>;   1  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    6 (   5 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of types       :    2 (   1 usr)
%            Number of type conns  :    6 (   4   >;   2   *;   0   +;   0  <<)
%            Number of predicates  :   10 (   9 usr;   1 prp; 0-2 aty)
%            Number of functors    :    2 (   2 usr;   0 con; 1-1 aty)
%            Number of variables   :   21 (  21   !;   0   ?;  21   :)
% SPC      : TF0_SAT_EQU_NAR_NDT

% Comments : Requires TIM002_0.ax
%------------------------------------------------------------------------------
tff(time_type,type,
    time: $tType ).

tff(start_type,type,
    start: interval > time ).

tff(end_type,type,
    end: interval > time ).

tff(lt_type,type,
    lt: ( time * time ) > $o ).

tff(le_type,type,
    le: ( time * time ) > $o ).

tff(le_definition,axiom,
    ! [X: time,Y: time] :
      ( le(X,Y)
    <=> ( lt(X,Y)
        | ( X = Y ) ) ) ).

tff(lt_irreflexive,axiom,
    ! [X: time] : ~ lt(X,X) ).

tff(lt_transitive,axiom,
    ! [X: time,Y: time,Z: time] :
      ( ( lt(X,Y)
        & lt(Y,Z) )
     => lt(X,Z) ) ).

tff(interval_wellformed,axiom,
    ! [I: interval] : lt(start(I),end(I)) ).

tff(before_def,axiom,
    ! [I: interval,J: interval] :
      ( before(I,J)
    <=> lt(end(I),start(J)) ) ).

tff(meets_def,axiom,
    ! [I: interval,J: interval] :
      ( meets(I,J)
    <=> ( end(I) = start(J) ) ) ).

tff(overlaps_def,axiom,
    ! [I: interval,J: interval] :
      ( overlaps(I,J)
    <=> ( lt(start(I),start(J))
        & lt(start(J),end(I))
        & lt(end(I),end(J)) ) ) ).

tff(starts_def,axiom,
    ! [I: interval,J: interval] :
      ( starts(I,J)
    <=> ( ( start(I) = start(J) )
        & lt(end(I),end(J)) ) ) ).

tff(during_def,axiom,
    ! [I: interval,J: interval] :
      ( during(I,J)
    <=> ( lt(start(J),start(I))
        & lt(end(I),end(J)) ) ) ).

tff(finishes_def,axiom,
    ! [I: interval,J: interval] :
      ( finishes(I,J)
    <=> ( ( end(I) = end(J) )
        & lt(start(J),start(I)) ) ) ).

tff(equal_def,axiom,
    ! [I: interval,J: interval] :
      ( I = J
    <=> ( ( start(I) = start(J) )
        & ( end(I) = end(J) ) ) ) ).

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