
theorem Th12:
for L being Abelian add-associative right_zeroed right_complementable
            well-unital associative commutative distributive
            almost_left_invertible domRing-like
            non degenerated doubleLoopStr
for f being FinSequence of Polynom-Ring(L)
st for i being Nat st i in dom f ex z being Element of L st f.i = rpoly(1,z)
for p being Polynomial of L st p = Product f
for x being Element of L
holds eval(p,x) = 0.L iff
      ex i being Nat st i in dom f & f.i = rpoly(1,x)
proof
let L be Field;
let f be FinSequence of Polynom-Ring(L);
assume A1: for i being Nat st i in dom f
            ex z being Element of L st f.i = rpoly(1,z);
let p be Polynomial of L;
assume A2: p = Product f;
let x be Element of L;
A3: now assume ex i being Nat st i in dom f & f.i = rpoly(1,x); then
   consider i being Nat such that
   A4: i in dom f & f.i = rpoly(1,x);
   reconsider g = Del(f,i) as FinSequence of Polynom-Ring(L);
   reconsider q = Product g as Polynomial of L by POLYNOM3:def 10;
   A5: f/.i = rpoly(1,x) by A4,PARTFUN1:def 6;
   Product f = (f/.i) * Product g by A4,Th3;
   then p = rpoly(1,x) *' q by A2,A5,POLYNOM3:def 10;
   then A6: eval(p,x) = eval(rpoly(1,x),x) * eval(q,x) by POLYNOM4:24;
   eval(rpoly(1,x),x) = x - x by HURWITZ:29 .= 0.L by RLVECT_1:15;
   hence eval(p,x) = 0.L by A6;
   end;
now assume A7: eval(p,x) = 0.L;
  defpred P[Nat] means
  for f being FinSequence of Polynom-Ring(L)
  st len f = $1 & for i being Nat st i in dom f
                  ex z being Element of L st f.i = rpoly(1,z)
  for p being Polynomial of L st p = Product f
  for x being Element of L holds
  eval(p,x) = 0.L implies ex i being Nat st i in dom f & f.i = rpoly(1,x);

now let f be FinSequence of Polynom-Ring(L);
  assume A8: len f = 0 & for i being Nat st i in dom f
                         ex z being Element of L st f.i = rpoly(1,z);
  let p be Polynomial of L;
  assume A9: p = Product f;
  let x be Element of L;
  assume A10: eval(p,x) = 0.L;
  f = <*>(the carrier of Polynom-Ring(L)) by A8;
  then p = 1_(Polynom-Ring(L)) by A9,GROUP_4:8
        .= 1_.(L) by POLYNOM3:def 10;
  hence ex i being Nat st i in dom f & f.i = rpoly(1,x) by A10,POLYNOM4:18;
  end;
then A11: P[0];
A12:now let n be Nat;
  assume A13: P[n];
  now let f be FinSequence of Polynom-Ring(L);
  assume A14: len f = n+1 & for i being Nat st i in dom f
                           ex z being Element of L st f.i = rpoly(1,z);
  let p be Polynomial of L;
  assume A15: p = Product f;
  let x be Element of L;
  assume A16: eval(p,x) = 0.L;
  f <> {} by A14;
  then consider g being FinSequence, u being object such that
  A17: f = g ^ <*u*> by FINSEQ_1:46;
  reconsider g as FinSequence of Polynom-Ring(L) by A17,FINSEQ_1:36;
  A18: dom f = Seg(n+1) by A14,FINSEQ_1:def 3;
  1 <= n+1 by NAT_1:11;
  then A19: n+1 in dom f by A18;
  A20: n+1 = len g + len <*u*> by A14,A17,FINSEQ_1:22
          .= len g + 1 by FINSEQ_1:40;
  A21: f.(n+1) = u by A20,A17,FINSEQ_1:42;
  then consider z being Element of L such that
  A22: u = rpoly(1,z) by A14,A19;
  reconsider u as Element of Polynom-Ring(L) by A22,POLYNOM3:def 10;
  reconsider q = Product g as Polynomial of L by POLYNOM3:def 10;
  Product f = (Product g) * u by A17,GROUP_4:6
           .= q *' rpoly(1,z) by A22,POLYNOM3:def 10;
  then A23: eval(p,x)
         = eval(q,x) * eval(rpoly(1,z),x) by A15,POLYNOM4:24;
  A24: now let i be Nat;
       assume A25: i in dom g;
       A26: dom g c= dom f by A17,FINSEQ_1:26;
       g.i = f.i by A25,A17,FINSEQ_1:def 7;
       hence ex z being Element of L st g.i = rpoly(1,z) by A25,A26,A14;
       end;
  now per cases by A23,A16,VECTSP_2:def 1;
  suppose eval(q,x) = 0.L;
    then consider i being Nat such that
    A27: i in dom g & g.i = rpoly(1,x) by A20,A24,A13;
    A28: dom g c= dom f by A17,FINSEQ_1:26;
    f.i = rpoly(1,x) by A27,A17,FINSEQ_1:def 7;
    hence ex i being Nat st i in dom f & f.i = rpoly(1,x) by A28,A27;
    end;
  suppose eval(rpoly(1,z),x) = 0.L;
    then x - z = 0.L by HURWITZ:29;
    then x = z by RLVECT_1:21;
    hence ex i being Nat st i in dom f & f.i = rpoly(1,x)
       by A19,A21,A22;
    end;
  end;
  hence ex i being Nat st i in dom f & f.i = rpoly(1,x);
  end;
  hence P[n+1];
  end;
A29: for n being Nat holds P[n] from NAT_1:sch 2(A11,A12);
len f is Nat;
hence ex i being Nat st i in dom f & f.i = rpoly(1,x) by A7,A1,A2,A29;
  end;
hence thesis by A3;
end;
