ITP001 Axioms: ITP001_2.ax


%------------------------------------------------------------------------------
% File     : ITP001_2 : TPTP v9.0.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 set theory export, bushy and chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
% Source   : [BG+19]
% Names    : HL4001_2.ax [TPAP]

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

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(del,type,
    del: $tType ).

tff(bool,type,
    bool: del ).

tff(ind,type,
    ind: del ).

tff(arr,type,
    arr: ( del * del ) > del ).

tff(mem,type,
    mem: ( $i * del ) > $o ).

tff(ap,type,
    ap: ( $i * $i ) > $i ).

tff(k,type,
    k: ( del * $i ) > $i ).

tff(i,type,
    i: del > $i ).

tff(p,type,
    p: $i > $o ).

tff(ap_tp,axiom,
    ! [A: del,B: del,F: $i] :
      ( mem(F,arr(A,B))
     => ! [X: $i] :
          ( mem(X,A)
         => mem(ap(F,X),B) ) ) ).

tff(boolext,axiom,
    ! [Q: $i] :
      ( mem(Q,bool)
     => ! [R: $i] :
          ( mem(R,bool)
         => ( ( p(Q)
            <=> p(R) )
           => ( Q = R ) ) ) ) ).

tff(funcext,axiom,
    ! [A: del,B: del,F: $i] :
      ( mem(F,arr(A,B))
     => ! [G: $i] :
          ( mem(G,arr(A,B))
         => ( ! [X: $i] :
                ( mem(X,A)
               => ( ap(F,X) = ap(G,X) ) )
           => ( F = G ) ) ) ) ).

tff(kbeta,axiom,
    ! [A: del,Y: $i,X: $i] :
      ( mem(X,A)
     => ( ap(k(A,Y),X) = Y ) ) ).

tff(ibeta,axiom,
    ! [A: del,X: $i] :
      ( mem(X,A)
     => ( ap(i(A),X) = X ) ) ).

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