ITP001 Axioms: ITP069^5.ax


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

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau20] Gauthier (2020), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : primeFactor^2.ax [Gau20]
%          : HL4069^5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   14 (   2 unt;   2 typ;   0 def)
%            Number of atoms       :  297 (  12 equ;   0 cnn)
%            Maximal formula atoms :   39 (  21 avg)
%            Number of connectives :  346 (   0   ~;   0   |;  16   &; 312   @)
%                                         (   0 <=>;  18  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   20 (  10 avg; 312 nst)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    2 (   2   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   26 (  25 usr;  24 con; 0-2 aty)
%            Number of variables   :   24 (   0   ^  23   !;   1   ?;  24   :)
% SPC      : TH0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_c_2EprimeFactor_2EPRIME__FACTORS,type,
    c_2EprimeFactor_2EPRIME__FACTORS: $i ).

thf(mem_c_2EprimeFactor_2EPRIME__FACTORS,axiom,
    mem @ c_2EprimeFactor_2EPRIME__FACTORS @ ( arr @ ty_2Enum_2Enum @ ( arr @ ty_2Enum_2Enum @ ty_2Enum_2Enum ) ) ).

thf(stp_fo_c_2EprimeFactor_2EPRIME__FACTORS,type,
    fo__c_2EprimeFactor_2EPRIME__FACTORS: tp__ty_2Enum_2Enum > tp__ty_2Enum_2Enum > tp__ty_2Enum_2Enum ).

thf(stp_eq_fo_c_2EprimeFactor_2EPRIME__FACTORS,axiom,
    ! [X0: tp__ty_2Enum_2Enum,X1: tp__ty_2Enum_2Enum] :
      ( ( inj__ty_2Enum_2Enum @ ( fo__c_2EprimeFactor_2EPRIME__FACTORS @ X0 @ X1 ) )
      = ( ap @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ X0 ) ) @ ( inj__ty_2Enum_2Enum @ X1 ) ) ) ).

thf(conj_thm_2EprimeFactor_2EPRIME__FACTORS__EXIST,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) @ ( inj__ty_2Enum_2Enum @ V0n ) ) )
     => ? [V1b: $i] :
          ( ( mem @ V1b @ ( arr @ ty_2Enum_2Enum @ ty_2Enum_2Enum ) )
          & ( p @ ( ap @ ( c_2Ebag_2EFINITE__BAG @ ty_2Enum_2Enum ) @ V1b ) )
          & ! [V2m: tp__ty_2Enum_2Enum] :
              ( ( p @ ( ap @ ( ap @ ( c_2Ebag_2EBAG__IN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V2m ) ) @ V1b ) )
             => ( p @ ( ap @ c_2Edivides_2Eprime @ ( inj__ty_2Enum_2Enum @ V2m ) ) ) )
          & ( V0n
            = ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ c_2Ebag_2EBAG__GEN__PROD @ V1b ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) ) ) ) ) ).

thf(ax_thm_2EprimeFactor_2EPRIME__FACTORS__def,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) @ ( inj__ty_2Enum_2Enum @ V0n ) ) )
     => ( ( p @ ( ap @ ( c_2Ebag_2EFINITE__BAG @ ty_2Enum_2Enum ) @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V0n ) ) ) )
        & ! [V1m: tp__ty_2Enum_2Enum] :
            ( ( p @ ( ap @ ( ap @ ( c_2Ebag_2EBAG__IN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V1m ) ) @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V0n ) ) ) )
           => ( p @ ( ap @ c_2Edivides_2Eprime @ ( inj__ty_2Enum_2Enum @ V1m ) ) ) )
        & ( V0n
          = ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ c_2Ebag_2EBAG__GEN__PROD @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V0n ) ) ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) ) ) ) ) ).

thf(conj_thm_2EprimeFactor_2EUNIQUE__PRIME__FACTORS,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1b1: $i] :
      ( ( mem @ V1b1 @ ( arr @ ty_2Enum_2Enum @ ty_2Enum_2Enum ) )
     => ! [V2b2: $i] :
          ( ( mem @ V2b2 @ ( arr @ ty_2Enum_2Enum @ ty_2Enum_2Enum ) )
         => ( ( ( p @ ( ap @ ( c_2Ebag_2EFINITE__BAG @ ty_2Enum_2Enum ) @ V1b1 ) )
              & ! [V3m: tp__ty_2Enum_2Enum] :
                  ( ( p @ ( ap @ ( ap @ ( c_2Ebag_2EBAG__IN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V3m ) ) @ V1b1 ) )
                 => ( p @ ( ap @ c_2Edivides_2Eprime @ ( inj__ty_2Enum_2Enum @ V3m ) ) ) )
              & ( V0n
                = ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ c_2Ebag_2EBAG__GEN__PROD @ V1b1 ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) ) )
              & ( p @ ( ap @ ( c_2Ebag_2EFINITE__BAG @ ty_2Enum_2Enum ) @ V2b2 ) )
              & ! [V4m: tp__ty_2Enum_2Enum] :
                  ( ( p @ ( ap @ ( ap @ ( c_2Ebag_2EBAG__IN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V4m ) ) @ V2b2 ) )
                 => ( p @ ( ap @ c_2Edivides_2Eprime @ ( inj__ty_2Enum_2Enum @ V4m ) ) ) )
              & ( V0n
                = ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ c_2Ebag_2EBAG__GEN__PROD @ V2b2 ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) ) ) )
           => ( V1b1 = V2b2 ) ) ) ) ).

thf(conj_thm_2EprimeFactor_2EPRIME__FACTORIZATION,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) @ ( inj__ty_2Enum_2Enum @ V0n ) ) )
     => ! [V1b: $i] :
          ( ( mem @ V1b @ ( arr @ ty_2Enum_2Enum @ ty_2Enum_2Enum ) )
         => ( ( ( p @ ( ap @ ( c_2Ebag_2EFINITE__BAG @ ty_2Enum_2Enum ) @ V1b ) )
              & ! [V2x: tp__ty_2Enum_2Enum] :
                  ( ( p @ ( ap @ ( ap @ ( c_2Ebag_2EBAG__IN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V2x ) ) @ V1b ) )
                 => ( p @ ( ap @ c_2Edivides_2Eprime @ ( inj__ty_2Enum_2Enum @ V2x ) ) ) )
              & ( ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ c_2Ebag_2EBAG__GEN__PROD @ V1b ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) )
                = V0n ) )
           => ( V1b
              = ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V0n ) ) ) ) ) ) ).

thf(conj_thm_2EprimeFactor_2EPRIME__FACTORS__1,axiom,
    ( ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) )
    = ( c_2Ebag_2EEMPTY__BAG @ ty_2Enum_2Enum ) ) ).

thf(conj_thm_2EprimeFactor_2EPRIME__FACTOR__DIVIDES,axiom,
    ! [V0x: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
        & ( p @ ( ap @ ( ap @ ( c_2Ebag_2EBAG__IN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0x ) ) @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) ) )
     => ( p @ ( ap @ ( ap @ c_2Edivides_2Edivides @ ( inj__ty_2Enum_2Enum @ V0x ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) ) ).

thf(conj_thm_2EprimeFactor_2EDIVISOR__IN__PRIME__FACTORS,axiom,
    ! [V0p: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
        & ( p @ ( ap @ c_2Edivides_2Eprime @ ( inj__ty_2Enum_2Enum @ V0p ) ) )
        & ( p @ ( ap @ ( ap @ c_2Edivides_2Edivides @ ( inj__ty_2Enum_2Enum @ V0p ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) )
     => ( p @ ( ap @ ( ap @ ( c_2Ebag_2EBAG__IN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0p ) ) @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) ) ) ).

thf(conj_thm_2EprimeFactor_2EPRIME__FACTORS__MULT,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] :
      ( ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) @ ( inj__ty_2Enum_2Enum @ V0a ) ) )
        & ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) @ ( inj__ty_2Enum_2Enum @ V1b ) ) ) )
     => ( ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( ap @ ( ap @ c_2Earithmetic_2E_2A @ ( inj__ty_2Enum_2Enum @ V0a ) ) @ ( inj__ty_2Enum_2Enum @ V1b ) ) )
        = ( ap @ ( ap @ ( c_2Ebag_2EBAG__UNION @ ty_2Enum_2Enum ) @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V0a ) ) ) @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V1b ) ) ) ) ) ).

thf(conj_thm_2EprimeFactor_2EFACTORS__prime,axiom,
    ! [V0p: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ c_2Edivides_2Eprime @ ( inj__ty_2Enum_2Enum @ V0p ) ) )
     => ( ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( inj__ty_2Enum_2Enum @ V0p ) )
        = ( ap @ ( ap @ ( c_2Ebag_2EBAG__INSERT @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0p ) ) @ ( c_2Ebag_2EEMPTY__BAG @ ty_2Enum_2Enum ) ) ) ) ).

thf(conj_thm_2EprimeFactor_2EPRIME__FACTORS__EXP,axiom,
    ! [V0p: tp__ty_2Enum_2Enum,V1e: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ c_2Edivides_2Eprime @ ( inj__ty_2Enum_2Enum @ V0p ) ) )
     => ( ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ c_2EprimeFactor_2EPRIME__FACTORS @ ( ap @ ( ap @ c_2Earithmetic_2EEXP @ ( inj__ty_2Enum_2Enum @ V0p ) ) @ ( inj__ty_2Enum_2Enum @ V1e ) ) ) @ ( inj__ty_2Enum_2Enum @ V0p ) ) )
        = V1e ) ) ).

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