ITP001 Axioms: ITP119+5.ax


%------------------------------------------------------------------------------
% File     : ITP119+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    : intExtension+2.ax [Gau20]
%          : HL4119+5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   28 (   2 unt;   0 def)
%            Number of atoms       :  114 (  40 equ)
%            Maximal formula atoms :    9 (   4 avg)
%            Number of connectives :  102 (  16   ~;   5   |;   5   &)
%                                         (   9 <=>;  67  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   11 (   6 avg)
%            Maximal term depth    :    8 (   2 avg)
%            Number of predicates  :    3 (   2 usr;   0 prp; 1-2 aty)
%            Number of functors    :   18 (  18 usr;  14 con; 0-2 aty)
%            Number of variables   :   41 (  41   !;   0   ?)
% SPC      : FOF_SAT_RFO_SEQ

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
fof(mem_c_2EintExtension_2ESGN,axiom,
    mem(c_2EintExtension_2ESGN,arr(ty_2Einteger_2Eint,ty_2Einteger_2Eint)) ).

fof(ax_thm_2EintExtension_2ESGN__def,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ap(c_2EintExtension_2ESGN,V0x) = ap(ap(ap(c_2Ebool_2ECOND(ty_2Einteger_2Eint),ap(ap(c_2Emin_2E_3D(ty_2Einteger_2Eint),V0x),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0))),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),ap(ap(ap(c_2Ebool_2ECOND(ty_2Einteger_2Eint),ap(ap(c_2Einteger_2Eint__lt,V0x),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0))),ap(c_2Einteger_2Eint__neg,ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO))))),ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO))))) ) ).

fof(conj_thm_2EintExtension_2EABS__EQ__MUL__SGN,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ap(c_2Einteger_2EABS,V0x) = ap(ap(c_2Einteger_2Eint__mul,V0x),ap(c_2EintExtension_2ESGN,V0x)) ) ).

fof(conj_thm_2EintExtension_2EMUL__ABS__SGN,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ap(ap(c_2Einteger_2Eint__mul,ap(c_2Einteger_2EABS,V0x)),ap(c_2EintExtension_2ESGN,V0x)) = V0x ) ).

fof(conj_thm_2EintExtension_2EINT__MUL__POS__SIGN,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ! [V1b] :
          ( mem(V1b,ty_2Einteger_2Eint)
         => ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V0a))
           => ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V1b))
             => p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),ap(ap(c_2Einteger_2Eint__mul,V0a),V1b))) ) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__NE__IMP__LTGT,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ( V0x != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
      <=> ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V0x))
          | p(ap(ap(c_2Einteger_2Eint__lt,V0x),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0))) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__NOTGT__IMP__EQLT,axiom,
    ! [V0n] :
      ( mem(V0n,ty_2Einteger_2Eint)
     => ( ~ p(ap(ap(c_2Einteger_2Eint__lt,V0n),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)))
      <=> ( ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) = V0n
          | p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V0n)) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__NO__ZERODIV,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ! [V1y] :
          ( mem(V1y,ty_2Einteger_2Eint)
         => ( ( V0x = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
              | V1y = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) )
          <=> ap(ap(c_2Einteger_2Eint__mul,V0x),V1y) = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__NOTPOS0__NEG,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ( ~ p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V0a))
       => ( V0a != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
         => p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),ap(c_2Einteger_2Eint__neg,V0a))) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__NOT0__MUL,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ! [V1b] :
          ( mem(V1b,ty_2Einteger_2Eint)
         => ( V0a != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
           => ( V1b != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
             => ap(ap(c_2Einteger_2Eint__mul,V0a),V1b) != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) ) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__GT0__IMP__NOT0,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V0a))
       => V0a != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) ) ) ).

fof(conj_thm_2EintExtension_2EINT__NOTLTEQ__GT,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ( ~ p(ap(ap(c_2Einteger_2Eint__lt,V0a),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)))
       => ( V0a != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
         => p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V0a)) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__ABS__NOT0POS,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ( V0x != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
       => p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),ap(c_2Einteger_2EABS,V0x))) ) ) ).

fof(conj_thm_2EintExtension_2EINT__SGN__NOTPOSNEG,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ( ap(c_2EintExtension_2ESGN,V0x) != ap(c_2Einteger_2Eint__neg,ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO))))
       => ( ap(c_2EintExtension_2ESGN,V0x) != ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO)))
         => ap(c_2EintExtension_2ESGN,V0x) = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) ) ) ) ).

fof(conj_thm_2EintExtension_2ELESS__IMP__NOT__0,axiom,
    ! [V0n] :
      ( mem(V0n,ty_2Einteger_2Eint)
     => ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V0n))
       => V0n != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) ) ) ).

fof(conj_thm_2EintExtension_2EINT__EQ__RMUL__EXP,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ! [V1b] :
          ( mem(V1b,ty_2Einteger_2Eint)
         => ! [V2n] :
              ( mem(V2n,ty_2Einteger_2Eint)
             => ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V2n))
               => ( V0a = V1b
                <=> ap(ap(c_2Einteger_2Eint__mul,V0a),V2n) = ap(ap(c_2Einteger_2Eint__mul,V1b),V2n) ) ) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__LT__RMUL__EXP,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ! [V1b] :
          ( mem(V1b,ty_2Einteger_2Eint)
         => ! [V2n] :
              ( mem(V2n,ty_2Einteger_2Eint)
             => ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V2n))
               => ( p(ap(ap(c_2Einteger_2Eint__lt,V0a),V1b))
                <=> p(ap(ap(c_2Einteger_2Eint__lt,ap(ap(c_2Einteger_2Eint__mul,V0a),V2n)),ap(ap(c_2Einteger_2Eint__mul,V1b),V2n))) ) ) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__GT__RMUL__EXP,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ! [V1b] :
          ( mem(V1b,ty_2Einteger_2Eint)
         => ! [V2n] :
              ( mem(V2n,ty_2Einteger_2Eint)
             => ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V2n))
               => ( p(ap(ap(c_2Einteger_2Eint__gt,V0a),V1b))
                <=> p(ap(ap(c_2Einteger_2Eint__gt,ap(ap(c_2Einteger_2Eint__mul,V0a),V2n)),ap(ap(c_2Einteger_2Eint__mul,V1b),V2n))) ) ) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__ABS__CALCULATE__NEG,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ( p(ap(ap(c_2Einteger_2Eint__lt,V0a),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)))
       => ap(c_2Einteger_2EABS,V0a) = ap(c_2Einteger_2Eint__neg,V0a) ) ) ).

fof(conj_thm_2EintExtension_2EINT__ABS__CALCULATE__0,axiom,
    ap(c_2Einteger_2EABS,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)) = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) ).

fof(conj_thm_2EintExtension_2EINT__ABS__CALCULATE__POS,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ( p(ap(ap(c_2Einteger_2Eint__lt,ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)),V0a))
       => ap(c_2Einteger_2EABS,V0a) = V0a ) ) ).

fof(conj_thm_2EintExtension_2EINT__NOT0__SGNNOT0,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ( V0x != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
       => ap(c_2EintExtension_2ESGN,V0x) != ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) ) ) ).

fof(conj_thm_2EintExtension_2EINT__SGN__CLAUSES,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ( ( ap(c_2EintExtension_2ESGN,V0x) = ap(c_2Einteger_2Eint__neg,ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO))))
        <=> p(ap(ap(c_2Einteger_2Eint__lt,V0x),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0))) )
        & ( ap(c_2EintExtension_2ESGN,V0x) = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
        <=> V0x = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0) )
        & ( ap(c_2EintExtension_2ESGN,V0x) = ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO)))
        <=> p(ap(ap(c_2Einteger_2Eint__gt,V0x),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0))) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__SGN__MUL,axiom,
    ! [V0x1] :
      ( mem(V0x1,ty_2Einteger_2Eint)
     => ! [V1x2] :
          ( mem(V1x2,ty_2Einteger_2Eint)
         => ! [V2y1] :
              ( mem(V2y1,ty_2Einteger_2Eint)
             => ! [V3y2] :
                  ( mem(V3y2,ty_2Einteger_2Eint)
                 => ( ap(c_2EintExtension_2ESGN,V0x1) = V2y1
                   => ( ap(c_2EintExtension_2ESGN,V1x2) = V3y2
                     => ap(c_2EintExtension_2ESGN,ap(ap(c_2Einteger_2Eint__mul,V0x1),V1x2)) = ap(ap(c_2Einteger_2Eint__mul,V2y1),V3y2) ) ) ) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__SGN__MUL2,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ! [V1y] :
          ( mem(V1y,ty_2Einteger_2Eint)
         => ap(c_2EintExtension_2ESGN,ap(ap(c_2Einteger_2Eint__mul,V0x),V1y)) = ap(ap(c_2Einteger_2Eint__mul,ap(c_2EintExtension_2ESGN,V0x)),ap(c_2EintExtension_2ESGN,V1y)) ) ) ).

fof(conj_thm_2EintExtension_2EINT__SGN__TOTAL,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ( ap(c_2EintExtension_2ESGN,V0a) = ap(c_2Einteger_2Eint__neg,ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO))))
        | ap(c_2EintExtension_2ESGN,V0a) = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
        | ap(c_2EintExtension_2ESGN,V0a) = ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO))) ) ) ).

fof(conj_thm_2EintExtension_2EINT__SGN__CASES,axiom,
    ! [V0a] :
      ( mem(V0a,ty_2Einteger_2Eint)
     => ! [V1P] :
          ( mem(V1P,bool)
         => ( ( ( ap(c_2EintExtension_2ESGN,V0a) = ap(c_2Einteger_2Eint__neg,ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO))))
               => p(V1P) )
              & ( ap(c_2EintExtension_2ESGN,V0a) = ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)
               => p(V1P) )
              & ( ap(c_2EintExtension_2ESGN,V0a) = ap(c_2Einteger_2Eint__of__num,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,c_2Earithmetic_2EZERO)))
               => p(V1P) ) )
           => p(V1P) ) ) ) ).

fof(conj_thm_2EintExtension_2EINT__LT__ADD__NEG,axiom,
    ! [V0x] :
      ( mem(V0x,ty_2Einteger_2Eint)
     => ! [V1y] :
          ( mem(V1y,ty_2Einteger_2Eint)
         => ( ( p(ap(ap(c_2Einteger_2Eint__lt,V0x),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0)))
              & p(ap(ap(c_2Einteger_2Eint__lt,V1y),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0))) )
           => p(ap(ap(c_2Einteger_2Eint__lt,ap(ap(c_2Einteger_2Eint__add,V0x),V1y)),ap(c_2Einteger_2Eint__of__num,c_2Enum_2E0))) ) ) ) ).

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