reserve i,j,n,n1,n2,m,k,l,u for Nat,
        i1,i2,i3,i4,i5,i6 for Element of n,
        p,q for n-element XFinSequence of NAT,
        a,b,c,d,e,f for Integer;

theorem Th17:
  for p being INT -valued Polynomial of 2+n+k,F_Real,
      X being n-element XFinSequence of NAT,
      x being Element of NAT holds
   ( for z being Element of NAT st z <= x
       ex y being k-element XFinSequence of NAT st
         (for i st i in k holds y.i <= x)&
        eval(p,@(<%z,x%>^X^y)) = 0)
  iff
    ex Y being k-element XFinSequence of NAT,
       Z,K being Element of NAT st
          K > x & K >= (sum_of_coefficients |.p.|)*
             ((x^2+1) * (Product (1+X)))|^degree p &
          (for i being Nat st i in k holds Y.i > (x+1)) &
            1+(Z+1)*(K!) = Product (1+(K! * idseq (x+1)))&
    eval(p,@(<%Z,x%>^X^Y)),0 are_congruent_mod (1+(Z+1)*(K!)) &
     (for i being Nat st i in k holds
         Product ((Y.i + 1)+(-idseq (x+1))),
                  0 are_congruent_mod (1+(Z+1)*(K!)))
proof
  let p be INT -valued Polynomial of 2+n+k,F_Real,
      X be n-element XFinSequence of NAT,
      x be Element of NAT;
  set x1=x+1;
  thus (for z be Element of NAT  st z <= x
     ex y be k-element XFinSequence of NAT st
        (for i st i in k holds y.i <= x) &
           eval(p,@(<%z,x%>^X^y)) = 0) implies
      ex Y be k-element XFinSequence of NAT,Z,K be Element of NAT st
          K>x & K >= (sum_of_coefficients |.p.|)*
                    ((x^2+1) * (Product (1+X)))|^(degree p) &
          (for i be Nat st i in k holds Y.i > x1) &
            1+(Z+1)*(K!) = Product (1+(K! * idseq (x+1)))&
          eval(p,@(<%Z,x%>^X^Y)),0 are_congruent_mod (1+(Z+1)*(K!)) &
         (for i be Nat st i in k holds
         Product ((Y.i+1)+(-idseq x1)),0 are_congruent_mod (1+(Z+1)*(K!)))
  proof
    assume
A1:   for z be Element of NAT  st z <= x
      ex y be k-element XFinSequence of NAT st
      (for i st i in k holds y.i <= x)&
        eval(p,@(<%z,x%>^X^y)) = 0;
    defpred P[object,object] means
      $1 in NAT & $2 is k-element XFinSequence of NAT &
      for z be Element of NAT,y be k-element XFinSequence of NAT st
        z=$1 & y=$2 holds (for i st i in k holds y.i <= x)&
               eval(p,@(<%z,x%>^X^y)) = 0;
A2: for i be Nat st i in x1 ex g be object st P[i,g]
    proof
      let i be Nat;
      assume i in x1;
      then
A3:     i in Segm (x1);
      reconsider z = i as Element of NAT by ORDINAL1:def 12;
      i <x1 by A3,NAT_1:44;
      then i<= x by NAT_1:13;then
      consider y be k-element XFinSequence of NAT such that
A4:     for i st i in k holds y.i <= x and
A5:     eval(p,@(<%z,x%>^X^y)) = 0 by A1;
      take y;
      thus thesis by A4,A5,ORDINAL1:def 12;
    end;
    consider YY be XFinSequence such that
A6:   dom YY = x1 & for i be Nat st i in x+1 holds P[i,YY.i]
      from AFINSQ_1:sch 1(A2);
    YY is XFinSequence-yielding by A6;
    then reconsider YY as XFinSequence-yielding  XFinSequence;
    defpred Q[object,object] means not contradiction;
    set M = {YY.i.j where i,j is Nat : Q[i,j]};
A7:   M is finite from SCH1;
A8:   M is natural-membered
    proof
      let x be object;
      assume x in M;
      then consider i,j be Nat such that
A9:     x= YY.i.j & Q[i,j];
      per cases;
      suppose
        i in dom YY;
        then P[i,YY.i] by A6;
        hence x is natural by A9;
      end;
      suppose not i in dom YY;
        then YY.i= {} by FUNCT_1:def 2;
        hence thesis by A9;
      end;
    end;
    then reconsider Mx = M\/{x,1} as non empty natural-membered finite set
      by A7;
    set K = x1+ (sum_of_coefficients |.p.|)*
             ((x^2+1)*(Product (1+X)))|^(degree p);
    set h=1+(K! * idseq x1);
A10:  len h = x1 by CARD_1:def 7;
A11:  for i st i in dom h holds h.i = (K!)*i +1
    proof
      let i such that
A12:    i in dom h;
A13:    dom h = dom (K! * idseq x1) =dom idseq x1 by VALUED_1:def 2,def 5;
      thus h.i = 1 + (K! * idseq x1).i by A12,VALUED_1:def 2
        .= 1+(K! * ((idseq x1).i)) by A12,A13,VALUED_1:def 5
        .= (K!)*i +1 by A12,A13,FINSEQ_2:49;
    end;
A14:K >= x1 > 0 by NAT_1:11;
    reconsider h as CR_Sequence by NAT_1:11,Th2;
    rng h c= NAT by VALUED_0:def 6;
    then
A15:  h is FinSequence of NAT by FINSEQ_1:def 4;
    0+1<=x1 by NAT_1:13;
    then h.1 divides Product h & h.1 = K!*1+1
      by A11,A15,INT_4:32,A10,FINSEQ_3:25;
    then h.1 <= Product h & h.1 > K! by INT_2:27,NAT_1:13;
    then K <= K! & K! < Product h by XXREAL_0:2,NEWTON:38;
    then x1 <= K & K < Product h by NAT_1:11,XXREAL_0:2;
    then
A16:  x1 < Product h by XXREAL_0:2;
    defpred Q[object,object] means
      $1 in NAT & $2 in NAT & for i,z be Nat st i = $1 & z= $2 holds x1 < z &
        for j,F being Nat st j in x1 & F = YY.j.i
          holds z,F are_congruent_mod h.(j+1);
A17: for i be Nat st i in k ex Y be object st Q[i,Y]
    proof
      let i be Nat such that i in k;
      deffunc H(Nat) = YY.($1-'1).i;
      consider X be FinSequence such that
A18:  len X = x1 & for k be Nat st k in dom X holds X.k=H(k)
        from FINSEQ_1:sch 2;
      rng X c= NAT
      proof
        let y be object;
        assume y in rng X;
        then consider x be object such that
A19:    x in dom X & X.x=y by FUNCT_1:def 3;
        reconsider x as Nat by A19;
        X.x = YY.(x-'1).i by A18,A19;
        then X.x in M;
        then X.x is natural by A8;
        hence thesis by A19;
      end;
      then reconsider X as FinSequence of NAT by FINSEQ_1:def 4;
      consider z be Integer such that
A20:    0 <= z & z < Product h and
A21:    for i being Nat st i in dom X holds z,X.i are_congruent_mod h.i
        by INT_6:41,A18,A10;
      take Y= z+Product h;
      thus i in NAT & Y in NAT by A20,ORDINAL1:def 12;
      let I,Z be Nat such that
A22:    I=i & Z=Y;
      Y >= Product h by A20,NAT_1:11;
      hence x1 < Z by A22,A16,XXREAL_0:2;
      let j,F be Nat such that
A23:    j in x1 & F = YY.j.I;
      x1= Segm x1;
      then j < x1 by A23,NAT_1:44;
      then
A24:    1 <= j+1 <= x1 by NAT_1:11,13;
      then
A25:    z,X.(j+1) are_congruent_mod h.(j+1) by A21,A18,FINSEQ_3:25;
      j+1 in dom h by A24,A10,FINSEQ_3:25;
      then h.(j+1) divides (Product h)-0 by A15,INT_4:32;
      then Product h,0 are_congruent_mod h.(j+1) by INT_1:def 4;
      then
A26:    Y,(X.(j+1)) +0 are_congruent_mod h.(j+1) by A25,INT_1:16;
      X.(j+1) =YY.(j+1-'1).i by A18,A24,FINSEQ_3:25;
      hence thesis by A26,A23,A22,NAT_D:34;
    end;
    consider YC be XFinSequence such that
A27:  dom YC = k & for i be Nat st i in k holds Q[i,YC.i]
      from AFINSQ_1:sch 1(A17);
    rng YC c= NAT
    proof
      let y be object;
      assume y in rng YC;
      then ex x be object st x in dom YC & YC.x=y by FUNCT_1:def 3;
      hence thesis by A27;
    end;
    then reconsider YC as k-element XFinSequence of NAT
    by A27,CARD_1:def 7,RELAT_1:def 19;
    consider Z be Nat such that
A29:  Product (1+(K! * idseq x1)) = 1 + (K!)*Z & (x1>0 implies Z>0) by Lm1;
    reconsider Z1=Z-1 as Element of NAT by NAT_1:20,A29;
    reconsider K as Element of NAT by ORDINAL1:def 12;
    take YC,Z1,K;
    thus K > x & K >= (sum_of_coefficients |.p.|)*
      ((x^2+1) * (Product (1+X)))|^(degree p) by NAT_1:11,13,A14;
    thus for i be Nat st i in k holds YC.i > x1 by A27;
    thus 1+(Z1+1)*(K!) = Product (1+(K! * idseq x1)) by A29;
A30:  for b,c be Element of NAT st b in dom h & c in dom h & b<>c
        holds h.b gcd h.c =1 by INT_2:def 3,INT_6:def 2;
    reconsider E=eval(p,@(<%Z1,x%>^X^YC)) as Integer;
A31:  for b be Element of NAT st b in dom h holds h.b divides E
    proof
      let b be Element of NAT such that
A32:    b in dom h;
A33:    h.b = (K!)*b+1 by A32,A11;
      1<= b <= x1 by A10,A32,FINSEQ_3:25;
      then reconsider b1=b-1 as Element of NAT by NAT_1:21;
      b1+1<=x1 by A10,A32,FINSEQ_3:25;
      then b1 < Segm x1 by NAT_1:13;
      then
A34:    b1 in x1 by NAT_1:44;
      then reconsider YYb=YY.b1 as k-element XFinSequence of NAT by A6;
A35:  eval(p,@(<%b1,x%>^X^YYb)) = 0 by A34,A6;
      for i st i in 2+n+k holds
        h.b divides ((<%Z1,x%>^X^YC).i - (<%b1,x%>^X^YYb).i)
      proof
        let i;
A36:    len (<%Z1,x%>^X^YC) = 2+n+k by CARD_1:def 7;
A37:    len <%Z1,x%> = 1+1 & len <%b1,x%> = 1+1 by CARD_1:def 7;
A38:    len (<%Z1,x%>^X) = len <%Z1,x%> + len X &
          len (<%b1,x%>^X) = len <%b1,x%> + len X by AFINSQ_1:17;
A39:    len YC = k = len YYb by CARD_1:def 7;
        assume i in 2+n+k;
        then per cases by A36,AFINSQ_1:20;
        suppose
A40:        i in dom (<%Z1,x%>^X);
          then
A41:        (<%Z1,x%>^X^YC).i = (<%Z1,x%>^X).i &
            (<%b1,x%>^X^YYb).i = (<%b1,x%>^X).i by A38,A37,AFINSQ_1:def 3;
          per cases by A40,AFINSQ_1:20;
          suppose
A42:          i in dom <%Z1,x%>;
            then
A43:          i in Segm 2 by CARD_1:def 7;
A44:        (<%Z1,x%>^X).i = <%Z1,x%>.i & (<%b1,x%>^X).i = <%b1,x%>.i
              by A42,A37,AFINSQ_1:def 3;
            per cases by A43,NAT_1:23,NAT_1:44;
            suppose i=0;
              then
A45:           (<%Z1,x%>^X^YC).i = Z1 & (<%b1,x%>^X^YYb).i = b1
               by A40,A38,A37,AFINSQ_1:def 3,A44;
A46:          (K!+1) gcd (K!)= ((b1 * (K!))+(K!+1)) gcd (K!) by EULER_1:8;
A47:          (K!+1) gcd K! = 1 by INT_2:def 3,PEPIN:1;
A48:          h.b divides Product h by A15,A32,INT_4:32;
A49:          (Z1-b1)*(K!) = Product (1+(K! * idseq x1)) - h.b by A29,A33;
              h.b divides (Z1-b1)*(K!) by A48,A49,INT_5:1;
              hence thesis by A45,A47,INT_2:25,A46,INT_2:def 3,A33;
            end;
            suppose i=1;
              hence thesis by INT_2:12,A41,A44;
            end;
          end;
          suppose ex j st j in dom X & i = len (<%Z1,x%>)+j;
            then consider j such that
A50:          j in dom X & i = 2+j by A37;
            (<%Z1,x%>^X).i = X.j&(<%b1,x%>^X).i = X.j
              by A37,A50,AFINSQ_1:def 3;
            hence thesis by A41,INT_2:12;
          end;
        end;
        suppose ex j st j in dom YC & i = len (<%Z1,x%>^X)+j;
          then consider j such that
A51:        j in dom YC & i = len (<%Z1,x%>^X)+j;
A52:      (<%Z1,x%>^X^YC).i = YC.j by A51,AFINSQ_1:def 3;
A53:      (<%b1,x%>^X^YYb).i = YYb.j by A39,A37,A38,A51,AFINSQ_1:def 3;
          reconsider J=j, YCj=YC.j as Element of NAT by A51;
          YC.j,YYb.j are_congruent_mod h.(b1+1) by A34,A27,A51;
          hence thesis by A52,A53,INT_1:def 4;
        end;
      end;
      then h.b divides E-0 by A32,A35,Th1;
      hence thesis;
    end;
    Product h divides E
    proof
      per cases;
      suppose E>=0;
        hence thesis by A30,A31,A15,INT_4:38;
      end;
      suppose E <0;
        then reconsider mE=-E as Element of NAT by INT_1:3;
        for b be Element of NAT st b in dom h holds h.b divides mE
          by A31,INT_2:10;
        hence thesis by INT_2:10,A30,A15,INT_4:38;
      end;
    end;
    then Product h divides E-0;
    hence eval(p,@(<%Z1,x%>^X^YC)),0 are_congruent_mod (1+(Z1+1)*(K!))
      by A29,INT_1:def 4;
    let i be Nat such that
A54:  i in k;
    set YCe = ((YC.i+1)+(-idseq x1));
A55:  dom YCe = dom (-idseq x1) =dom idseq x1 by VALUED_1:def 2,8;
A56:  for j st j in dom YCe holds YCe.j = (YC.i+1) - j
    proof
      let j such that
A57:    j in dom YCe;
      thus YCe.j = (YC.i+1) + (- idseq x1).j by A57,VALUED_1:def 2
        .= (YC.i+1) +-((idseq x1).j) by VALUED_1:8
        .= (YC.i+1) +- j by A57,A55,FINSEQ_2:49
        .= (YC.i+1) - j;
    end;
    rng YCe c= NAT
    proof
      let b be Integer;
      assume b in rng YCe;
      then consider a be object such that
A58:    a in dom YCe & YCe.a=b by FUNCT_1:def 3;
      reconsider a as Nat by A58;
A59:    YCe.a = (YC.i+1)-a by A56,A58;
      YC.i > x1>= a by A27,A54,A55,A58,FINSEQ_1:1;
      then YC.i > a by XXREAL_0:2;
      then YC.i +1 > a by NAT_1:13;
      then (YC.i+1)-a is Nat by NAT_1:21;
      hence thesis by A58,A59,ORDINAL1:def 12;
    end;
    then
    reconsider YCe as FinSequence of NAT by FINSEQ_1:def 4;
    reconsider PP=Product YCe as Element of NAT;
A60: for b be Element of NAT st b in dom h holds h.b divides PP
    proof
      let b be Element of NAT such that
A61:    b in dom h;
      1<= b <= x1 by A61,A10,FINSEQ_3:25;
      then reconsider b1=b-1 as Nat;
      YY.b1.i in M;
      then reconsider YYb1i= YY.b1.i as Nat by A8;
      b1+1<=x1 by A61,A10,FINSEQ_3:25;
      then b1 < Segm x1 by NAT_1:13;
      then
A62:    b1 in x1 by NAT_1:44;
      then P[b1,YY.b1] by A6;
      then
A63:    YYb1i <= x by A54;
      YC.i,YYb1i are_congruent_mod h.(b1+1) by A62,A27,A54;
      then
A64:    h.b divides (YC.i - YYb1i) by INT_1:def 4;
      0+1 <= YYb1i+1 <= x1 by A63,XREAL_1:7;
      then
A65:    YYb1i+1 in dom YCe by A55;
      then
A66:    YCe.(YYb1i+1) = (YC.i+1) - (YYb1i+1) by A56;
      YCe.(YYb1i+1) divides PP by A65,INT_4:32;
      hence thesis by A66,A64,INT_2:9;
    end;
    Product h divides PP-0 by A30,A60,A15,INT_4:38;
    hence Product ((YC.i+1)+(-idseq x1)),0 are_congruent_mod (1+(Z1+1)*(K!))
      by INT_1:def 4,A29;
  end;
  given Y be k-element XFinSequence of NAT,
        Z,K be Element of NAT such that
A67: K> x & K >= (sum_of_coefficients |.p.|)* ((x^2+1)
       * (Product (1+X)))|^(degree p) and
A68: for i be Nat st i in k holds Y.i > x1 and
A69: 1+(Z+1)*(K!) = Product (1+(K! * idseq (x+1)))&
       eval(p,@(<%Z,x%>^X^Y)),0 are_congruent_mod (1+(Z+1)*(K!)) and
A70: for i be Nat st i in k holds
       Product ((Y.i+1)+(-idseq x1)),0 are_congruent_mod (1+(Z+1)*(K!));
  let z be Element of NAT such that
A71: z <= x;
  set z1=z+1,K1 = K!,ZZ = 1+(z+1)*K1;
A72: ZZ >1 +0 by XREAL_1:8;
  consider prim be Element of NAT such that
A73: prim divides ZZ & prim <= ZZ & prim is prime by A72, NAT_4:13;
  deffunc P(object) = Y.$1 mod prim;
  consider Yz be XFinSequence such that
A74:  len Yz = k & for i be Nat st i in k holds Yz.i = P(i)
    from AFINSQ_1:sch 2;
  rng Yz c= NAT
  proof
    let y be object;
    assume y in rng Yz;
    then consider x be object such that
A75:  x in dom Yz & Yz.x=y by FUNCT_1:def 3;
    y = P(x) by A74,A75;
    hence thesis by ORDINAL1:def 12;
  end;
  then reconsider Yz as k-element XFinSequence of NAT
    by A74,RELAT_1:def 19,CARD_1:def 7;
  take Yz;
  1<= z1 <= x1 by A71,NAT_1:11,XREAL_1:6;
  then
A76: z1 in Seg (x1);
  K>=x1 by A67,NAT_1:13;
  then reconsider h=1+(K1 * idseq (x1)) as CR_Sequence by Th2;
  rng h c= NAT by VALUED_0:def 6;
  then
A77: h is FinSequence of NAT by FINSEQ_1:def 4;
A78: dom h = dom (K1 * idseq (x+1)) =dom idseq (x+1) by VALUED_1:def 2,def 5;
A79: h.z1 = 1 + (K1 * idseq (x+1)).z1 by A76,A78,VALUED_1:def 2
    .= 1+K1 * ((idseq (x+1)).z1) by A76,A78,VALUED_1:def 5
    .=ZZ by A76,FINSEQ_2:49;
  ZZ divides (1+(Z+1)*K1) by A79,A69,A77,INT_4:32,A76,A78;
  then
A80: prim divides (1+(Z+1)*K1) by A73,INT_2:9;
  1+(Z+1)*K1 divides eval(p,@(<%Z,x%>^X^Y)) - 0 by A69,INT_1:def 4;
  then
A81: prim divides eval(p,@(<%Z,x%>^X^Y)) by A80,INT_2:9;
  reconsider E1=eval(p,@(<%Z,x%>^X^Y)) as Integer;
A82: K < prim
  proof
    assume K >= prim;
    then prim divides (Z+1)*K1 by INT_2:2,A73,NEWTON:41;
    then prim divides 1 by A80,INT_2:1;
    then prim = 1 by INT_2:13;
    hence thesis by A73,INT_2:def 4;
  end;
A83:  len <%z,x%> = 2 = len <%Z,x%> by CARD_1:def 7;
A84:  len (<%z,x%>^X) = 2+n = len (<%Z,x%>^X) by CARD_1:def 7;
A85:  len Y = k = len Yz by CARD_1:def 7;
A86:  len (<%z,x%>^X^Yz) = 2+k+n by CARD_1:def 7;
  thus for i be Nat st i in k holds Yz.i <=x
  proof
    let j be Nat such that
A87:  j in k;
    set YE = (Y.j+1)+(-idseq x1);
A88: Yz.j = Y.j mod prim by A87,A74;
A89: 1+(Z+1)*K1 divides Product YE - 0 by INT_1:def 4,A70,A87;
A90: len YE = len idseq x1 = x1 by CARD_1:def 7;
A91:for w be Nat st w in dom YE holds
    ((Y.j+1)+(-idseq x1)).w = (Y.j) +1-w
    proof
      let w be Nat;
      assume
A92:    w in dom YE;
      then w in dom (-idseq x1) by VALUED_1:def 2;
      then w in dom idseq x1 by VALUED_1:8;
      then (idseq x1).w=w by FINSEQ_2:49;
      then (- idseq x1).w = -w by VALUED_1:8;
      then YE.w = (Y.j) +1+ -w by A92,VALUED_1:def 2;
      hence thesis;
    end;
A93: now  let a be Nat;
      assume
A94:    a in dom YE;
      then 1<= a <= x1 by A90,FINSEQ_3:25;
      then reconsider a1=a-1 as Nat;
      a1+1 <=x1 by A94,A90,FINSEQ_3:25;
      then a1 < x1 by NAT_1:13;
      then
A95:    x1-a1 >0 by XREAL_1:50;
      YE.a = Y.j +1-a by A94,A91;
      then YE.a+a1 > x1 by A68,A87;
      hence YE.a >0 by A95,XREAL_1:19;
    end;
    now  let r be object;
      assume r in rng YE;
      then consider a be object such that
A96:    a in dom YE & YE.a = r by FUNCT_1:def 3;
      reconsider a as Nat by A96;
      YE.a >0 by A93,A96;
      hence r in NAT by A96,INT_1:3;
    end;
    then
A97:  YE is FinSequence of NAT by FINSEQ_1:def 4,TARSKI:def 3;
    YE is positive-yielding
    proof
      let r be Real;
      assume r in rng YE;
      then consider a be object such that
A98:    a in dom YE & YE.a = r by FUNCT_1:def 3;
      thus thesis by A93,A98;
    end;
    then consider w be Nat such that
A99: w in dom YE & prim divides YE.w by A89,A80,INT_2:9,Th12,A73,A97;
A100: 1 <= w <= x1 by A90,A99,FINSEQ_3:25;
    then reconsider w1=w-1 as Nat;
    prim divides Y.j+ 1 -w by A99,A91;
    then prim divides Y.j -w1;
    then Yz.j = w1 mod prim by A88,INT_4:23,A73;
    then Yz.j < w1+1 by NAT_1:13,NEWTON05:11;
    then Yz.j < x1 by A100,XXREAL_0:2;
    hence thesis by NAT_1:13;
  end;
  for i st i in 2+k+n holds prim divides ((<%Z,x%>^X^Y).i - (<%z,x%>^X^Yz).i)
  proof
    let i such that
A101: i in 2+k+n;
    per cases by A101,A86,AFINSQ_1:20;
    suppose
A102:   i in dom (<%z,x%>^X);
      then
A103:   ((<%z,x%>^X^Yz)).i = (<%z,x%>^X).i & ((<%Z,x%>^X^Y)).i = (<%Z,x%>^X).i
        by A84,AFINSQ_1:def 3;
      per cases by A102,AFINSQ_1:20;
      suppose i in dom <%z,x%>;
        then
A104:     i in Segm 2 & (<%z,x%>^X).i = <%z,x%>.i & (<%Z,x%>^X).i = <%Z,x%>.i
            by A83,AFINSQ_1:def 3;
        per cases by A104,NAT_1:23,NAT_1:44;
        suppose i=0;
          then
A105:       (<%Z,x%>^X^Y).i =Z & (<%z,x%>^X^Yz).i = z
            by A102,A84,AFINSQ_1:def 3,A104;
A106:     K1,prim are_coprime
          proof
            assume not K1,prim are_coprime;
            then
A107:         K1 gcd prim <>1 by INT_2:def 3;
            K1 gcd prim divides prim by INT_2:def 2;
            then K1 gcd prim = prim by A107,A73,INT_2:def 4;
            then prim divides K1 by INT_2:def 2;
            hence thesis by A82,NAT_4:19,A73;
          end;
          prim divides (1+(Z+1)*K1) - (1+(z+1)*K1) by A80,A73,INT_5:1;
          then prim divides (Z-z)*K1;
          hence thesis by A105,A106,INT_2:25;
        end;
        suppose i=1;
          hence thesis by A103,A104,INT_2:12;
        end;
      end;
      suppose ex j be Nat st j in dom X & i = len (<%z,x%>)+j;
        then consider j such that
A108:     j in dom X & i = len (<%z,x%>)+j;
        (<%z,x%>^X).i = X.j & (<%Z,x%>^X).i = X.j by A83,A108,AFINSQ_1:def 3;
        hence thesis by INT_2:12,A103;
      end;
    end;
    suppose ex j be Nat st j in dom Yz & i = len (<%z,x%>^X)+j;
      then consider j such that
A109:   j in dom Yz & i = len (<%z,x%>^X)+j;
A110:(<%Z,x%>^X^Y).i =Y.j & (<%z,x%>^X^Yz).i = Yz.j
        by A84,A85,A109,AFINSQ_1:def 3;
      Yz.j = Y.j mod prim by A74,A109;
      hence thesis by A110,A73,PEPIN:8;
    end;
  end;
  then prim divides  E1 - eval(p,@(<%z,x%>^X^Yz)) by A73,Th1;
  then prim divides eval(p,@(<%z,x%>^X^Yz)) by INT_5:2,A81;
  then |.prim.| divides |.eval(p,@(<%z,x%>^X^Yz)).| by INT_2:16;
  then consider m be Nat such that
A111: |.eval(p,@(<%z,x%>^X^Yz)).| =prim *m by NAT_D:def 3;
A112: x^2=x*x by SQUARE_1:def 1;
  for i be object st i in dom @(<%z,x%>^X^Yz) holds
  |.(@(<%z,x%>^X^Yz)).i.| <= (x^2+1) * (Product (1+X))
  proof
    let i be object;assume i in dom @(<%z,x%>^X^Yz);
    then
A113: i in dom (<%z,x%>^X^Yz) & (<%z,x%>^X^Yz) = @(<%z,x%>^X^Yz)
      by HILB10_2:def 1;
    reconsider i as Nat by A113;
    per cases by A113,AFINSQ_1:20;
    suppose
A114:    i in dom (<%z,x%>^X);
      then
A115:   (@(<%z,x%>^X^Yz)).i = (<%z,x%>^X).i by A113,AFINSQ_1:def 3;
      per cases by A114,AFINSQ_1:20;
      suppose i in dom <%z,x%>;
        then
A116:     i in Segm 2 & (<%z,x%>^X).i = <%z,x%>.i
            by CARD_1:def 7,AFINSQ_1:def 3;
A117:   (Product (1+X))>= 1 by NAT_1:14;
        x^2 >= x*1 by NAT_1:14,A112, XREAL_1:64;
        then x^2+1 >= x+0 by XREAL_1:7;
        then
A118:     (x^2+1)* ((Product (1+X)))>= x*1 by A117,XREAL_1:66;
        i=0 or i=1 by A116,NAT_1:23,NAT_1:44;
        hence thesis by A118,A71,XXREAL_0:2,A115,A116;
      end;
      suppose ex j be Nat st j in dom X & i = len (<%z,x%>)+j;
        then consider j such that
A119:     j in dom X & i = len (<%z,x%>)+j;
A120:     dom (1+X) = dom X by VALUED_1:def 2;
        then
A121:     (1+X).j <= Product (1+X) by A119,HILB10_4:11;
        (1+X).j = 1+(X.j) by A119,A120,VALUED_1:def 2;
        then
A122:     X.j <= Product (1+X) by A121,NAT_1:13;
        x^2+1>=1 by NAT_1:11;
        then 1*(X.j) <= (x^2+1) * Product (1+X) by A122,XREAL_1:66;
        hence thesis by A119,AFINSQ_1:def 3,A115;
      end;
    end;
    suppose ex j be Nat st j in dom Yz & i = len (<%z,x%>^X)+j;
      then consider j such that
A123:   j in dom Yz & i = len (<%z,x%>^X)+j;
      set YE = (Y.j+1)+(-idseq x1);
A124: (<%z,x%>^X^Yz).i = Yz.j by A123,AFINSQ_1:def 3;
A125: Yz.j = Y.j mod prim by A123,A74;
A126: 1+(Z+1)*K1 divides Product YE - 0 by INT_1:def 4,A70,A123,A74;
A127: len YE = len idseq x1 = x1 by CARD_1:def 7;
A128: for w be Nat st w in dom YE holds
      ((Y.j+1)+(-idseq x1)).w = (Y.j) +1-w
      proof
        let w be Nat;
        assume
A129:      w in dom YE;
        then w in dom (-idseq x1) by VALUED_1:def 2;
        then w in dom idseq x1 by VALUED_1:8;
        then (idseq x1).w=w by FINSEQ_2:49;
        then (- idseq x1).w = -w by VALUED_1:8;
        then YE.w = (Y.j) +1+ -w by A129,VALUED_1:def 2;
        hence thesis;
      end;
A130: now let a be Nat;
        assume
A131:     a in dom YE;
        1<= a <= x1 by A131,A127,FINSEQ_3:25;
        then reconsider a1=a-1 as Nat;
        a1+1 <=x1 by A131,A127,FINSEQ_3:25;
        then a1 < x1 by NAT_1:13;
        then
A132:     x1-a1 >0 by XREAL_1:50;
        YE.a = Y.j +1-a by A131,A128;
        then YE.a+a1 > x1 by A68,A85,A123;
        hence YE.a >0 by A132,XREAL_1:19;
      end;
      now let r be object;
        assume r in rng YE;
        then consider a be object such that
A133:     a in dom YE & YE.a = r by FUNCT_1:def 3;
        reconsider a as Nat by A133;
        YE.a >0 by A130,A133;
        hence r in NAT by A133,INT_1:3;
      end;
      then
A134:   YE is FinSequence of NAT by FINSEQ_1:def 4,TARSKI:def 3;
      YE is positive-yielding
      proof
        let r be Real;
        assume r in rng YE;
        then consider a be object such that
A135:   a in dom YE & YE.a = r by FUNCT_1:def 3;
        thus thesis by A130,A135;
      end;
      then consider w be Nat such that
A136:   w in dom YE & prim divides YE.w by A126,A80,INT_2:9,Th12,A73,A134;
A137: 1 <= w <= x1 by A127,A136,FINSEQ_3:25;
      then reconsider w1=w-1 as Nat;
      prim divides Y.j+ 1 -w by A136,A128;
      then prim divides Y.j -w1;
      then Yz.j = w1 mod prim by A125,INT_4:23,A73;
      then Yz.j < w1+1 by NAT_1:13,NEWTON05:11;
      then
A138:   Yz.j < x1 by A137,XXREAL_0:2;
      x^2 >= x*1 by NAT_1:14,A112, XREAL_1:64;
      then x^2+1 >= x1 by XREAL_1:7;
      then
A139:   Yz.j < x^2+1 by A138,XXREAL_0:2;
      Product (1+X)>=1 by NAT_1:14;
      then 1*(Yz.j) <= (x^2+1) * Product (1+X) by A139,XREAL_1:66;
      hence thesis by A124,A113;
    end;
  end;
  then |.eval(p,@(<%z,x%>^X^Yz)).| <= (sum_of_coefficients |.p.|)
    * (((x^2+1) * (Product (1+X)))|^ degree p) by NAT_1:14,Th10;
  then |.eval(p,@(<%z,x%>^X^Yz)).| <= K by A67,XXREAL_0:2;
  then prim*m < prim*1 by A111,A82,XXREAL_0:2;
  then m < 1 by XREAL_1:66;
  then m=0 by NAT_1:14;
  hence thesis by A111;
end;
