reserve n for Nat;

theorem lem1a:
for R being non degenerated Ring,
    n being non zero Nat,
    x being Element of R holds eval(npoly(R,n),x) = x|^n + 1.R
proof
let R be non degenerated Ring, n be non zero Nat,
    x be Element of R;
set q = npoly(R,n);
consider F be FinSequence of R such that
A3: eval(q,x) = Sum F and
A4: len F = len q and
A5: for j be Element of NAT st j in dom F holds
      F.j = q.(j-'1) * (power R).(x,j-'1) by POLYNOM4:def 2;
A: n = deg q by lem6 .= len q - 1 by HURWITZ:def 2; then
B: len q = n + 1;
C: dom F = Seg(n+1) by A,A4,FINSEQ_1:def 3;
D: 1 <= n + 1 by NAT_1:11;
E: n+1-'1 = n+1-1 by NAT_1:11,XREAL_1:233;
B1: F.(n+1) = q.n * (power R).(x,n+1-'1) by E,A5,D,C,FINSEQ_1:1
           .= 1.R * (power R).(x,(n+1)-'1) by Lm10
           .= x |^ n by E;
B2: now let j be Element of NAT;
    assume H0: 1 < j & j <= n;
    reconsider j1 = j -' 1 as Element of NAT;
    reconsider n1  = n - 1 as Element of NAT by INT_1:3;
    n <= n + 1 by NAT_1:11;
    then H1: j <= n + 1 by H0,XXREAL_0:2;
    H4: j1 = j - 1 by H0,XREAL_1:233;
    then H2: j1 <> 0 by H0;
    j1 + 1 <= n1 + 1 by H4,H0;
    then H3: j1 <> n by NAT_1:13;
    thus F.j = q.(j1) * (power R).(x,j-'1) by A5,H1,C,H0,FINSEQ_1:1
            .= 0.R * (power R).(x,j-'1) by H2,H3,Lm11
            .= 0.R;
    end;
B3: F.1 = q.(1-'1) * (power R).(x,1-'1) by A5,C,D,FINSEQ_1:1
            .= q.0 * (power R).(x,1-'1) by NAT_2:8
            .= q.0 * (power R).(x,0) by NAT_2:8
            .= 1.R * (power R).(x,0) by Lm10
            .= 1.R * 1_R by GROUP_1:def 7
            .= 1.R;
B4: len F <> 0 by A,A4;
consider fp being sequence of the carrier of R such that
A6: Sum F = fp.(len F) and
A7: fp.0 = 0.R and
A8: for j being Nat, v being Element of R
    st j < len F & v = F.(j + 1)
    holds fp.(j + 1) = fp.j + v by RLVECT_1:def 12;
defpred P[Element of NAT] means
  ($1 = 0 & fp.($1) = 0.R) or
  (0 < $1 & $1 < len F & fp.($1) = 1.R) or ($1 = len F & fp.($1) = x|^n + 1.R);
IA: P[0] by A7;
IS: now let j be Element of NAT;
    assume C1: 0 <= j & j < len F;
    assume C2: P[j];
    per cases;
    suppose D1: j = 0 & j < len F - 1;
      then D2: fp.(j+1) = fp.0 + 1.R by B3,A8,C1 .= 1.R by A7;
      j + 1 < (len F - 1) + 1 by D1,XREAL_1:6;
      hence P[j+1] by D2;
      end;
    suppose j = 0 & j >= len F - 1;
      hence P[j+1] by A,A4;
      end;
    suppose D1: 0 < j & j < len F - 1;
      then D3: j + 1 <= n by A,A4,INT_1:7;
      j + 1 > 0 + 1 by D1,XREAL_1:8;
      then F.(j+1) = 0.R by D3,B2;
      then fp.(j+1) = 1.R + 0.R by C2,D1,C1,A8;
      hence P[j+1] by D3,B,A4,XXREAL_0:2,NAT_1:16;
      end;
    suppose D1: 0 < j & j >= len F - 1;
      j + 1 <= len F by INT_1:7,C1;
      then (j + 1) - 1 <= len F - 1 by XREAL_1:9;
      then D3: j = n by A4,A,D1,XXREAL_0:1;
      then fp.(j+1) = 1.R + x|^n by B1,C1,C2,A8
                   .= x|^n + 1.R by RLVECT_1:def 2;
      hence P[j+1] by D3,A4,A;
      end;
    end;
I: for j being Element of NAT st 0 <= j & j <= len F holds P[j]
   from INT_1:sch 7(IA,IS);
thus eval(q,x) = x|^n + 1.R by I,A6,A3,B4;
end;
