TPTP Axioms File: SET006+0.ax


%------------------------------------------------------------------------------
% File     : SET006+0 : TPTP v8.2.0. Released v2.2.0.
% Domain   : Set Theory
% Axioms   : Naive set theory based on Goedel's set theory
% Version  : [Pas99] axioms.
% English  :

% Refs     : [Pas99] Pastre (1999), Email to G. Sutcliffe
% Source   : [Pas99]
% Names    :

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

% Comments :
%------------------------------------------------------------------------------
%----Axioms of operations on sets
fof(subset,axiom,
    ! [A,B] :
      ( subset(A,B)
    <=> ! [X] :
          ( member(X,A)
         => member(X,B) ) ) ).

fof(equal_set,axiom,
    ! [A,B] :
      ( equal_set(A,B)
    <=> ( subset(A,B)
        & subset(B,A) ) ) ).

fof(power_set,axiom,
    ! [X,A] :
      ( member(X,power_set(A))
    <=> subset(X,A) ) ).

fof(intersection,axiom,
    ! [X,A,B] :
      ( member(X,intersection(A,B))
    <=> ( member(X,A)
        & member(X,B) ) ) ).

fof(union,axiom,
    ! [X,A,B] :
      ( member(X,union(A,B))
    <=> ( member(X,A)
        | member(X,B) ) ) ).

fof(empty_set,axiom,
    ! [X] : ~ member(X,empty_set) ).

fof(difference,axiom,
    ! [B,A,E] :
      ( member(B,difference(E,A))
    <=> ( member(B,E)
        & ~ member(B,A) ) ) ).

fof(singleton,axiom,
    ! [X,A] :
      ( member(X,singleton(A))
    <=> X = A ) ).

fof(unordered_pair,axiom,
    ! [X,A,B] :
      ( member(X,unordered_pair(A,B))
    <=> ( X = A
        | X = B ) ) ).

fof(sum,axiom,
    ! [X,A] :
      ( member(X,sum(A))
    <=> ? [Y] :
          ( member(Y,A)
          & member(X,Y) ) ) ).

fof(product,axiom,
    ! [X,A] :
      ( member(X,product(A))
    <=> ! [Y] :
          ( member(Y,A)
         => member(X,Y) ) ) ).

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