%------------------------------------------------------------------------------
% File     : DAT001_1 : TPTP v10.0.0. Released v10.0.0.
% Domain   : Data Structures
% Problem  :
% Version  : Especial.
% English  :

% Refs     :
% Source   : [TPTP]
% Names    :

% Status   : Theorem
% Rating   : ? v10.0.0
% Syntax   : Number of formulae    :   11 (   5 unt;   5 typ;   0 def)
%            Number of atoms       :    7 (   3 equ)
%            Maximal formula atoms :    2 (   1 avg)
%            Number of connectives :    2 (   1   ~;   0   |;   0   &)
%                                         (   1 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    9 (   4 avg)
%            Maximal term depth    :   15 (   4 avg)
%            Number of types       :    2 (   1 usr;   0 ari;   1 dat;   0 cdt)
%            Number of type conns  :    5 (   3   >;   2   *;   0   +;   0  <<)
%            Number of predicates  :    2 (   1 usr;   0 prp; 2-2 aty)
%            Number of functors    :    3 (   3 usr;   1 con; 0-2 aty)
%            Number of variables   :   15 (  15   !;   0   ?;  15   :)
% SPC      : TF0_THM_EQU_NAR_DAT

% Comments :
%------------------------------------------------------------------------------
tff(nat_type,type-datatype,
    nat: $tType ).

tff(zero_type,type-datatype_constructor,
    zero: nat ).

tff(s_type,type-datatype_constructor,
    s: nat > nat ).

tff(add_type,type,
    add: ( nat * nat ) > nat ).

tff(leq_type,type,
    leq: ( nat * nat ) > $o ).

tff(1,axiom,
    ! [Y: nat] : ( add(zero,Y) = Y ) ).

tff(2,axiom,
    ! [X: nat,Y: nat] : ( add(s(X),Y) = s(add(X,Y)) ) ).

tff(3,axiom,
    ! [Y: nat] : leq(zero,Y) ).

tff(4,axiom,
    ! [X: nat] : ~ leq(s(X),zero) ).

tff(5,axiom,
    ! [X: nat,Y: nat] :
      ( leq(s(X),s(Y))
    <=> leq(X,Y) ) ).

tff(goal,conjecture,
    ! [V0: nat,V1: nat,V2: nat,V3: nat,V4: nat,V5: nat,V6: nat,V7: nat] : ( add(s(s(s(s(add(s(s(add(V5,s(s(V5))))),s(s(add(add(s(V2),add(add(s(V7),s(V4)),V6)),s(V5))))))))),s(add(s(V0),add(s(V1),V3)))) = s(s(s(add(V3,s(add(add(s(s(add(add(V5,s(V5)),V6))),s(s(add(add(s(V7),s(add(V4,s(V2)))),V0)))),s(add(s(s(s(s(V1)))),V5)))))))) ) ).

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