ITP001 Axioms: ITP069_5.ax


%------------------------------------------------------------------------------
% File     : ITP069_5 : TPTP v8.2.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 (   3 unt;   2 typ;   0 def)
%            Number of atoms       :  297 (  12 equ)
%            Maximal formula atoms :   11 (  21 avg)
%            Number of connectives :   34 (   0   ~;   0   |;  16   &)
%                                         (   0 <=>;  18  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   14 (   6 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of FOOLs       :  251 ( 251 fml;   0 var)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    2 (   1   >;   1   *;   0   +;   0  <<)
%            Number of predicates  :   24 (  23 usr;  12 prp; 0-2 aty)
%            Number of functors    :    2 (   2 usr;   1 con; 0-2 aty)
%            Number of variables   :   24 (  23   !;   1   ?;  24   :)
% SPC      : TF0_SAT_EQU_NAR

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

tff(mem_c_2EprimeFactor_2EPRIME__FACTORS,axiom,
    mem(c_2EprimeFactor_2EPRIME__FACTORS,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))) ).

tff(stp_fo_c_2EprimeFactor_2EPRIME__FACTORS,type,
    fo__c_2EprimeFactor_2EPRIME__FACTORS: ( tp__ty_2Enum_2Enum * tp__ty_2Enum_2Enum ) > tp__ty_2Enum_2Enum ).

tff(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)) ) ).

tff(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))))) ) ) ) ).

tff(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))))) ) ) ) ).

tff(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 ) ) ) ) ).

tff(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)) ) ) ) ) ).

tff(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) ).

tff(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))) ) ).

tff(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)))) ) ).

tff(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))) ) ) ).

tff(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)) ) ) ).

tff(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 ) ) ).

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