
theorem lemNor1ah:
for F being Field
for G being non empty FinSequence of the carrier of Polynom-Ring F
for q being non constant Polynomial of F st q = Product G
holds q splits_in F iff
      for i being Element of dom G, p being Polynomial of F
      st p = G.i holds p is constant or p splits_in F
proof
let F be Field;
let G be non empty FinSequence of the carrier of Polynom-Ring F;
let q be non constant Polynomial of F;
assume AS: q = Product G;
A: now assume A1: q splits_in F;
   now let i be Element of dom G, p being Polynomial of F;
     assume H2: p = G.i;
     H5: G.i = G/.i by PARTFUN1:def 6; then
     H4: p = Product <*G/.i*> by H2,GROUP_4:9;
     reconsider r1 = Product(G|(i-'1)),
                r2 = Product(G/^i) as Polynomial of F by POLYNOM3:def 10;
     dom G = Seg(len G) by FINSEQ_1:def 3; then
     1 <= i & i <= len G by FINSEQ_1:1; then
     G = (G|(i-'1)) ^ <*G.i*> ^ (G/^i) by FINSEQ_5:84; then
     H9: Product G
         = Product(G|(i-'1)^<*G.i*>) * Product((G/^i)) by GROUP_4:5
        .= (Product(G|(i-'1)) * Product(<*G.i*>)) * Product((G/^i))
           by GROUP_4:5;
     Product(G|(i-'1)) * Product(<*G.i*>) = r1 *' p by H4,H5,POLYNOM3:def 10;
     then q = (p *' r1) *' r2 by AS,H9,POLYNOM3:def 10
           .= p *' (r1 *' r2) by POLYNOM3:33; then
     (r1 *' r2) is non zero & p *' (r1 *' r2) splits_in F by A1;
     hence p is constant or p splits_in F by FIELD_8:11;
     end;
   hence for i being Element of dom G, p being Polynomial of F
         st p = G.i holds p is constant or p splits_in F;
   end;
now assume C: for i being Element of dom G, p being Polynomial of F
              st p = G.i holds p is constant or p splits_in F;
  defpred P[Nat] means
     for G being FinSequence of the carrier of Polynom-Ring F
     st len G = $1
     for q being non constant Polynomial of F
     st q = Product G &
        for i being Element of dom G, p being Polynomial of F
        st p = G.i holds p is constant or p splits_in F
     holds q splits_in F;
  A: P[0]
     proof
     now let G be FinSequence of the carrier of Polynom-Ring F;
       assume A0: len G = 0;
       let q be non constant Polynomial of F;
       assume A1: q = Product G &
          for i being Element of dom G, p being Polynomial of F
          st p = G.i holds p is constant or p splits_in F;
       G = <*>(the carrier of Polynom-Ring F) by A0;
       then Product G = 1_(Polynom-Ring F) by GROUP_4:8
                     .= 1_.F by POLYNOM3:def 10;
       hence q splits_in F by A1;
       end;
     hence thesis;
     end;
  B: now let k be Nat;
     assume IV: P[k];
       now let G be FinSequence of the carrier of Polynom-Ring F;
       assume B0: len G = k+1;
       let q be non constant Polynomial of F;
       assume B1: q = Product G &
                  for i being Element of dom G, p being Polynomial of F
                  st p = G.i holds p is constant or p splits_in F;
       G <> {} by B0;
       then consider G1 being FinSequence, y being object such that
       B2: G = G1^<*y*> by FINSEQ_1:46;
       H: rng G c= the carrier of Polynom-Ring F by FINSEQ_1:def 4;

          rng G1 c= rng G by B2,FINSEQ_1:29; then
       reconsider G1 as FinSequence of the carrier of Polynom-Ring F
                                           by XBOOLE_1:1,H,FINSEQ_1:def 4;
       reconsider r = Product G1 as Polynomial of F by POLYNOM3:def 10;
       len <*y*> = 1 by FINSEQ_1:40; then
       C4: dom G = Seg(len G1 + 1) by B2,FINSEQ_1:def 7;
       B12: 1 <= len G1 + 1 by NAT_1:11;
       dom <*y*> = Seg 1 by FINSEQ_1:38; then
       B11: 1 in dom <*y*> by FINSEQ_1:3;
            y = <*y*>.1
             .= G.(len G1 + 1) by B11,B2,FINSEQ_1:def 7; then
       B13: y in rng G by B12,C4,FINSEQ_1:1,FUNCT_1:3;
       rng G c= the carrier of Polynom-Ring F by FINSEQ_1:def 4; then
       reconsider y as Element of the carrier of Polynom-Ring F by B13;
       set G2 = <*y*>;
       reconsider p = Product G2 as Polynomial of F by POLYNOM3:def 10;
       reconsider p1 = p, r1 = r as Element of the carrier of Polynom-Ring F;
       B3: q = (Product G1) * y by B1,B2,GROUP_4:6
            .= r1 * p1 by GROUP_4:9
            .= r *' p by POLYNOM3:def 10;
       B4: len G = len G1 + len<*y*> by B2,FINSEQ_1:22
                .= len G1 + 1 by FINSEQ_1:39;
       per cases;
       suppose dom G1 = {}; then
       V4: G1 = {}; then
       V2: G = <*y*> by B2,FINSEQ_1:34;
       V1: y = <*y*>.1
            .= G.(len G1 + 1) by B11,B2,FINSEQ_1:def 7;
       dom G = Seg 1 by V2,FINSEQ_1:38; then
       len G1 + 1 in dom G by V4,FINSEQ_1:1;
       hence q splits_in F by B1,V1,V2,GROUP_4:9;
       end;
       suppose V: dom G1 <> {};
       B6: now let i be Element of dom G1, p being Polynomial of F;
           assume p = G1.i;
           then B7: p = G.i by V,B2,FINSEQ_1:def 7;
           dom G1 c= dom G by B2,FINSEQ_1:26; then
           i in dom G by V;
           hence p is constant or p splits_in F by B1,B7;
           end;
       B10: now let i be Element of dom G2, p being Polynomial of F;
            assume p = G2.i;
            then C2: p = G.(len G1 + i) by B2,FINSEQ_1:def 7;
            dom G2 = {1} by FINSEQ_1:38,FINSEQ_1:2; then
            C3: i = 1 by TARSKI:def 1;
            len G2 = 1 by FINSEQ_1:40; then
            C4: dom G = Seg(len G1 + 1) by B2,FINSEQ_1:def 7;
            1 <= len G1 + 1 by NAT_1:11; then
            len G1 + i in dom G by C4,C3,FINSEQ_1:1;
            hence p is constant or p splits_in F by B1,C2;
            end;dom G2 = Seg 1 by FINSEQ_1:38; then
       B11: 1 in dom G2 by FINSEQ_1:3;
            G2.1 = y .= p by GROUP_4:9; then
       per cases by B10,B11;
       suppose C: p is constant;
         then deg p <= 0 by RATFUNC1:def 2;
         then consider b being Element of F such that
         B9: p1 = b|F by RING_4:20,RING_4:def 4;
         b <> 0.F by B3,B9; then
         reconsider b as non zero Element of F by STRUCT_0:def 12;
         per cases;
         suppose r is non constant; then
           consider a being non zero Element of F, u being Ppoly of F such that
           B8: r = a * u by B0,B4,B6,IV,FIELD_4:def 5;
           q = (b * 1_.(F)) *' (a * u) by B3,B8,B9,RING_4:16
            .= b * ((a * u) *' 1_.(F)) by RING_4:10
            .= (b * a) * u by RING_4:11;
           hence q splits_in F by FIELD_4:def 5;
           end;
         suppose r is constant;
           hence q splits_in F by C,B3;
           end;
         end;
       suppose C1: p splits_in F;
         per cases;
         suppose r is non constant;
           then r splits_in F by B4,B6,B0,IV;
           hence q splits_in F by B3,C1,FIELD_8:12;
           end;
         suppose r is constant;
           then deg r <= 0 by RATFUNC1:def 2;
           then consider b being Element of F such that
           C2: r1 = b|F by RING_4:20,RING_4:def 4;
           b <> 0.F by B3,C2; then
           reconsider b as non zero Element of F by STRUCT_0:def 12;
           consider a being non zero Element of F, u being Ppoly of F such that
           C3: p = a * u by C1,FIELD_4:def 5;
           q = (a * u) *' (b * 1_.(F)) by B3,C3,C2,RING_4:16
            .= b * ((a * u) *' 1_.(F)) by RING_4:10
            .= (b * a) * u by RING_4:11;
           hence q splits_in F by FIELD_4:def 5;
           end;
         end;
       end;
       end;
     hence P[k+1];
     end;
  I: for k being Nat holds P[k] from NAT_1:sch 2(A,B);
  consider n being Nat such that H: len G = n;
  thus q splits_in F by C,I,H,AS;
  end;
hence thesis by A;
end;
