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 : 16 ( 2 unt; 9 typ; 0 def)
% Number of atoms : 19 ( 5 equ; 0 cnn)
% Maximal formula atoms : 5 ( 1 avg)
% Number of connectives : 61 ( 0 ~; 0 |; 0 &; 51 @)
% ( 0 <=>; 10 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 7 avg; 51 nst)
% Number of types : 3 ( 1 usr)
% Number of type conns : 13 ( 13 >; 0 *; 0 +; 0 <<)
% Number of symbols : 9 ( 8 usr; 2 con; 0-2 aty)
% Number of variables : 19 ( 0 ^ 19 !; 0 ?; 19 :)
% SPC : TH0_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(del_tp,type,
del: $tType ).
thf(bool,type,
bool: del ).
thf(ind,type,
ind: del ).
thf(arr,type,
arr: del > del > del ).
thf(mem,type,
mem: $i > del > $o ).
thf(ap,type,
ap: $i > $i > $i ).
thf(lam,type,
lam: del > ( $i > $i ) > $i ).
thf(p,type,
p: $i > $o ).
thf(stp_inj_o,type,
inj__o: $o > $i ).
thf(stp_inj_surj_o,axiom,
! [X: $o] :
( ( p @ ( inj__o @ X ) )
= X ) ).
thf(stp_inj_mem_o,axiom,
! [X: $o] : ( mem @ ( inj__o @ X ) @ bool ) ).
thf(stp_iso_mem_o,axiom,
! [X: $i] :
( ( mem @ X @ bool )
=> ( X
= ( inj__o @ ( p @ X ) ) ) ) ).
thf(ap_tp,axiom,
! [A: del,B: del,F: $i] :
( ( mem @ F @ ( arr @ A @ B ) )
=> ! [X: $i] :
( ( mem @ X @ A )
=> ( mem @ ( ap @ F @ X ) @ B ) ) ) ).
thf(lam_tp,axiom,
! [A: del,B: del,F: $i > $i] :
( ! [X: $i] :
( ( mem @ X @ A )
=> ( mem @ ( F @ X ) @ B ) )
=> ( mem @ ( lam @ A @ F ) @ ( arr @ A @ B ) ) ) ).
thf(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 ) ) ) ) ).
thf(beta,axiom,
! [A: del,F: $i > $i,X: $i] :
( ( mem @ X @ A )
=> ( ( ap @ ( lam @ A @ F ) @ X )
= ( F @ X ) ) ) ).
%------------------------------------------------------------------------------