TPTP Axioms File: DAT002=0.ax


%------------------------------------------------------------------------------
% File     : DAT002=0 : TPTP v7.5.0. Released v5.0.0.
% Domain   : Data Structures
% Axioms   : Integer collections
% Version  : [Wal10] axioms.
% English  : 

% Refs     : [PW06]  Prevosto & Waldmann (2006), SPASS+T
%          : [Wal10] Waldmann (2010), Email to Geoff Sutcliffe
% Source   : [Wal10]
% Names    : 

% Status   : Satisfiable
% Syntax   : Number of formulae    :   10 (   3 unit;   5 type)
%            Number of atoms       :    9 (   2 equality)
%            Maximal formula depth :    7 (   4 average)
%            Number of connectives :    7 (   3   ~;   1   |;   1   &)
%                                         (   2 <=>;   0  =>;   0  <=;   0 <~>)
%                                         (   0  ~|;   0  ~&)
%            Number of type conns  :    6 (   3   >;   3   *;   0   +;   0  <<)
%            Number of predicates  :   10 (   8 propositional; 0-2 arity)
%            Number of functors    :    3 (   1 constant; 0-2 arity)
%            Number of variables   :   11 (   0 sgn;  11   !;   0   ?)
%                                         (  11   :;   0  !>;   0  ?*)
%            Maximal term depth    :    2 (   1 average)
%            Arithmetic symbols    :    7 (   0 prd;   0 fun;   0 num;   7 var)
% SPC      : TFF_SAT_RFO_SEQ_SAR

% Comments : 
%------------------------------------------------------------------------------
tff(collection_type,type,(
    collection: $tType )).

tff(empty_type,type,(
    empty: collection )).

tff(add_type,type,(
    add: ( $int * collection ) > collection )).

tff(remove_type,type,(
    remove: ( $int * collection ) > collection )).

tff(in_type,type,(
    in: ( $int * collection ) > $o )).

tff(ax1,axiom,(
    ! [U: $int] : ~ in(U,empty) )).

tff(ax2,axiom,(
    ! [V: $int,W: collection] : in(V,add(V,W)) )).

tff(ax3,axiom,(
    ! [X: $int,Y: collection] : ~ in(X,remove(X,Y)) )).

tff(ax4,axiom,(
    ! [Z: $int,X1: collection,X2: $int] :
      ( ( in(Z,X1)
        | Z = X2 )
    <=> in(Z,add(X2,X1)) ) )).

tff(ax5,axiom,(
    ! [X3: $int,X4: collection,X5: $int] :
      ( ( in(X3,X4)
        & X3 != X5 )
    <=> in(X3,remove(X5,X4)) ) )).

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