TPTP Problem File: NUM527+3.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : NUM527+3 : TPTP v9.0.0. Released v4.0.0.
% Domain   : Number Theory
% Problem  : Square root of a prime is irrational 15_04_01, 02 expansion
% Version  : Especial.
% English  :

% Refs     : [LPV06] Lyaletski et al. (2006), SAD as a Mathematical Assista
%          : [VLP07] Verchinine et al. (2007), System for Automated Deduction
%          : [Pas08] Paskevich (2008), Email to G. Sutcliffe
% Source   : [Pas08]
% Names    : primes_15_04_01.02 [Pas08]

% Status   : Theorem
% Rating   : 0.58 v9.0.0, 0.61 v8.2.0, 0.64 v8.1.0, 0.69 v7.4.0, 0.60 v7.3.0, 0.66 v7.1.0, 0.61 v7.0.0, 0.60 v6.4.0, 0.62 v6.2.0, 0.76 v6.1.0, 0.80 v6.0.0, 0.74 v5.5.0, 0.78 v5.4.0, 0.82 v5.3.0, 0.85 v5.2.0, 0.70 v5.1.0, 0.81 v5.0.0, 0.88 v4.1.0, 0.91 v4.0.0
% Syntax   : Number of formulae    :   47 (   3 unt;   5 def)
%            Number of atoms       :  237 (  79 equ)
%            Maximal formula atoms :   16 (   5 avg)
%            Number of connectives :  219 (  29   ~;  13   |; 105   &)
%                                         (   5 <=>;  67  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   16 (   6 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of predicates  :    7 (   5 usr;   1 prp; 0-2 aty)
%            Number of functors    :   10 (  10 usr;   6 con; 0-2 aty)
%            Number of variables   :   96 (  87   !;   9   ?)
% SPC      : FOF_THM_RFO_SEQ

% Comments : Problem generated by the SAD system [VLP07]
%------------------------------------------------------------------------------
fof(mNatSort,axiom,
    ! [W0] :
      ( aNaturalNumber0(W0)
     => $true ) ).

fof(mSortsC,axiom,
    aNaturalNumber0(sz00) ).

fof(mSortsC_01,axiom,
    ( aNaturalNumber0(sz10)
    & sz10 != sz00 ) ).

fof(mSortsB,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => aNaturalNumber0(sdtpldt0(W0,W1)) ) ).

fof(mSortsB_02,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => aNaturalNumber0(sdtasdt0(W0,W1)) ) ).

fof(mAddComm,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => sdtpldt0(W0,W1) = sdtpldt0(W1,W0) ) ).

fof(mAddAsso,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => sdtpldt0(sdtpldt0(W0,W1),W2) = sdtpldt0(W0,sdtpldt0(W1,W2)) ) ).

fof(m_AddZero,axiom,
    ! [W0] :
      ( aNaturalNumber0(W0)
     => ( sdtpldt0(W0,sz00) = W0
        & W0 = sdtpldt0(sz00,W0) ) ) ).

fof(mMulComm,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => sdtasdt0(W0,W1) = sdtasdt0(W1,W0) ) ).

fof(mMulAsso,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => sdtasdt0(sdtasdt0(W0,W1),W2) = sdtasdt0(W0,sdtasdt0(W1,W2)) ) ).

fof(m_MulUnit,axiom,
    ! [W0] :
      ( aNaturalNumber0(W0)
     => ( sdtasdt0(W0,sz10) = W0
        & W0 = sdtasdt0(sz10,W0) ) ) ).

fof(m_MulZero,axiom,
    ! [W0] :
      ( aNaturalNumber0(W0)
     => ( sdtasdt0(W0,sz00) = sz00
        & sz00 = sdtasdt0(sz00,W0) ) ) ).

fof(mAMDistr,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => ( sdtasdt0(W0,sdtpldt0(W1,W2)) = sdtpldt0(sdtasdt0(W0,W1),sdtasdt0(W0,W2))
        & sdtasdt0(sdtpldt0(W1,W2),W0) = sdtpldt0(sdtasdt0(W1,W0),sdtasdt0(W2,W0)) ) ) ).

fof(mAddCanc,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => ( ( sdtpldt0(W0,W1) = sdtpldt0(W0,W2)
          | sdtpldt0(W1,W0) = sdtpldt0(W2,W0) )
       => W1 = W2 ) ) ).

fof(mMulCanc,axiom,
    ! [W0] :
      ( aNaturalNumber0(W0)
     => ( W0 != sz00
       => ! [W1,W2] :
            ( ( aNaturalNumber0(W1)
              & aNaturalNumber0(W2) )
           => ( ( sdtasdt0(W0,W1) = sdtasdt0(W0,W2)
                | sdtasdt0(W1,W0) = sdtasdt0(W2,W0) )
             => W1 = W2 ) ) ) ) ).

fof(mZeroAdd,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( sdtpldt0(W0,W1) = sz00
       => ( W0 = sz00
          & W1 = sz00 ) ) ) ).

fof(mZeroMul,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( sdtasdt0(W0,W1) = sz00
       => ( W0 = sz00
          | W1 = sz00 ) ) ) ).

fof(mDefLE,definition,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( sdtlseqdt0(W0,W1)
      <=> ? [W2] :
            ( aNaturalNumber0(W2)
            & sdtpldt0(W0,W2) = W1 ) ) ) ).

fof(mDefDiff,definition,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( sdtlseqdt0(W0,W1)
       => ! [W2] :
            ( W2 = sdtmndt0(W1,W0)
          <=> ( aNaturalNumber0(W2)
              & sdtpldt0(W0,W2) = W1 ) ) ) ) ).

fof(mLERefl,axiom,
    ! [W0] :
      ( aNaturalNumber0(W0)
     => sdtlseqdt0(W0,W0) ) ).

fof(mLEAsym,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( ( sdtlseqdt0(W0,W1)
          & sdtlseqdt0(W1,W0) )
       => W0 = W1 ) ) ).

fof(mLETran,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => ( ( sdtlseqdt0(W0,W1)
          & sdtlseqdt0(W1,W2) )
       => sdtlseqdt0(W0,W2) ) ) ).

fof(mLETotal,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( sdtlseqdt0(W0,W1)
        | ( W1 != W0
          & sdtlseqdt0(W1,W0) ) ) ) ).

fof(mMonAdd,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( ( W0 != W1
          & sdtlseqdt0(W0,W1) )
       => ! [W2] :
            ( aNaturalNumber0(W2)
           => ( sdtpldt0(W2,W0) != sdtpldt0(W2,W1)
              & sdtlseqdt0(sdtpldt0(W2,W0),sdtpldt0(W2,W1))
              & sdtpldt0(W0,W2) != sdtpldt0(W1,W2)
              & sdtlseqdt0(sdtpldt0(W0,W2),sdtpldt0(W1,W2)) ) ) ) ) ).

fof(mMonMul,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => ( ( W0 != sz00
          & W1 != W2
          & sdtlseqdt0(W1,W2) )
       => ( sdtasdt0(W0,W1) != sdtasdt0(W0,W2)
          & sdtlseqdt0(sdtasdt0(W0,W1),sdtasdt0(W0,W2))
          & sdtasdt0(W1,W0) != sdtasdt0(W2,W0)
          & sdtlseqdt0(sdtasdt0(W1,W0),sdtasdt0(W2,W0)) ) ) ) ).

fof(mLENTr,axiom,
    ! [W0] :
      ( aNaturalNumber0(W0)
     => ( W0 = sz00
        | W0 = sz10
        | ( sz10 != W0
          & sdtlseqdt0(sz10,W0) ) ) ) ).

fof(mMonMul2,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( W0 != sz00
       => sdtlseqdt0(W1,sdtasdt0(W1,W0)) ) ) ).

fof(mIH,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( iLess0(W0,W1)
       => $true ) ) ).

fof(mIH_03,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( ( W0 != W1
          & sdtlseqdt0(W0,W1) )
       => iLess0(W0,W1) ) ) ).

fof(mDefDiv,definition,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( doDivides0(W0,W1)
      <=> ? [W2] :
            ( aNaturalNumber0(W2)
            & W1 = sdtasdt0(W0,W2) ) ) ) ).

fof(mDefQuot,definition,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( ( W0 != sz00
          & doDivides0(W0,W1) )
       => ! [W2] :
            ( W2 = sdtsldt0(W1,W0)
          <=> ( aNaturalNumber0(W2)
              & W1 = sdtasdt0(W0,W2) ) ) ) ) ).

fof(mDivTrans,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => ( ( doDivides0(W0,W1)
          & doDivides0(W1,W2) )
       => doDivides0(W0,W2) ) ) ).

fof(mDivSum,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => ( ( doDivides0(W0,W1)
          & doDivides0(W0,W2) )
       => doDivides0(W0,sdtpldt0(W1,W2)) ) ) ).

fof(mDivMin,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => ( ( doDivides0(W0,W1)
          & doDivides0(W0,sdtpldt0(W1,W2)) )
       => doDivides0(W0,W2) ) ) ).

fof(mDivLE,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( ( doDivides0(W0,W1)
          & W1 != sz00 )
       => sdtlseqdt0(W0,W1) ) ) ).

fof(mDivAsso,axiom,
    ! [W0,W1] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1) )
     => ( ( W0 != sz00
          & doDivides0(W0,W1) )
       => ! [W2] :
            ( aNaturalNumber0(W2)
           => sdtasdt0(W2,sdtsldt0(W1,W0)) = sdtsldt0(sdtasdt0(W2,W1),W0) ) ) ) ).

fof(mDefPrime,definition,
    ! [W0] :
      ( aNaturalNumber0(W0)
     => ( isPrime0(W0)
      <=> ( W0 != sz00
          & W0 != sz10
          & ! [W1] :
              ( ( aNaturalNumber0(W1)
                & doDivides0(W1,W0) )
             => ( W1 = sz10
                | W1 = W0 ) ) ) ) ) ).

fof(mPrimDiv,axiom,
    ! [W0] :
      ( ( aNaturalNumber0(W0)
        & W0 != sz00
        & W0 != sz10 )
     => ? [W1] :
          ( aNaturalNumber0(W1)
          & doDivides0(W1,W0)
          & isPrime0(W1) ) ) ).

fof(mPDP,axiom,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2) )
     => ( ( isPrime0(W2)
          & doDivides0(W2,sdtasdt0(W0,W1)) )
       => ( doDivides0(W2,W0)
          | doDivides0(W2,W1) ) ) ) ).

fof(m__2987,hypothesis,
    ( aNaturalNumber0(xn)
    & aNaturalNumber0(xm)
    & aNaturalNumber0(xp)
    & xn != sz00
    & xm != sz00
    & xp != sz00 ) ).

fof(m__2963,hypothesis,
    ! [W0,W1,W2] :
      ( ( aNaturalNumber0(W0)
        & aNaturalNumber0(W1)
        & aNaturalNumber0(W2)
        & W0 != sz00
        & W1 != sz00
        & W2 != sz00 )
     => ( sdtasdt0(W2,sdtasdt0(W1,W1)) = sdtasdt0(W0,W0)
       => ( iLess0(W0,xn)
         => ~ ( ( W2 != sz10
                & ! [W3] :
                    ( ( aNaturalNumber0(W3)
                      & ? [W4] :
                          ( aNaturalNumber0(W4)
                          & W2 = sdtasdt0(W3,W4) )
                      & doDivides0(W3,W2) )
                   => ( W3 = sz10
                      | W3 = W2 ) ) )
              | isPrime0(W2) ) ) ) ) ).

fof(m__3014,hypothesis,
    sdtasdt0(xp,sdtasdt0(xm,xm)) = sdtasdt0(xn,xn) ).

fof(m__3025,hypothesis,
    ( xp != sz10
    & ! [W0] :
        ( ( aNaturalNumber0(W0)
          & ( ? [W1] :
                ( aNaturalNumber0(W1)
                & xp = sdtasdt0(W0,W1) )
            | doDivides0(W0,xp) ) )
       => ( W0 = sz10
          | W0 = xp ) )
    & isPrime0(xp) ) ).

fof(m__3046,hypothesis,
    ( ? [W0] :
        ( aNaturalNumber0(W0)
        & sdtasdt0(xn,xn) = sdtasdt0(xp,W0) )
    & doDivides0(xp,sdtasdt0(xn,xn))
    & ? [W0] :
        ( aNaturalNumber0(W0)
        & xn = sdtasdt0(xp,W0) )
    & doDivides0(xp,xn) ) ).

fof(m__3059,hypothesis,
    ( aNaturalNumber0(xq)
    & xn = sdtasdt0(xp,xq)
    & xq = sdtsldt0(xn,xp) ) ).

fof(m__3082,hypothesis,
    sdtasdt0(xm,xm) = sdtasdt0(xp,sdtasdt0(xq,xq)) ).

fof(m__,conjecture,
    ( ( ? [W0] :
          ( aNaturalNumber0(W0)
          & sdtpldt0(xn,W0) = xm )
      & sdtlseqdt0(xn,xm) )
   => ( ? [W0] :
          ( aNaturalNumber0(W0)
          & sdtpldt0(sdtasdt0(xn,xn),W0) = sdtasdt0(xm,xm) )
      | sdtlseqdt0(sdtasdt0(xn,xn),sdtasdt0(xm,xm)) ) ) ).

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