
theorem Th46:
  for f,g being Polynomial of F_Complex holds (f *' g)*' = (f*') *' (g*')
proof
  let f,g be Polynomial of F_Complex;
  set h1 = f*'g;
A1: now
    let k9 be object;
    assume k9 in dom(h1*');
    then reconsider k = k9 as Element of NAT;
    consider s being FinSequence of F_Complex such that
A2: len s = k+1 and
A3: h1.k = Sum s and
A4: for j be Element of NAT st j in dom s holds s.j = f.(j-'1) * g.(k+
    1 -'j) by POLYNOM3:def 9;
    defpred P[set,set] means $2 = (s/.$1)*';
    consider t being FinSequence of F_Complex such that
A5: len t = k+1 and
A6: ((f*') *' (g*')).k = Sum t and
A7: for j be Element of NAT st j in dom t holds t.j = (f*').(j-'1) * (
    g *').(k+1-'j) by POLYNOM3:def 9;
A8: for j being Nat st j in Seg(len s) ex x being Element of F_Complex st
    P[j,x];
    consider u being FinSequence of F_Complex such that
A9: dom u = Seg(len s) & for j being Nat st j in Seg(len s) holds P[j
    ,u.j] from FINSEQ_1:sch 5(A8);
A10: now
      let j be Element of NAT;
      assume
A11:  j in dom u;
      hence u/.j = u.j by PARTFUN1:def 6
        .= (s/.j)*' by A9,A11;
    end;
A12: dom u = Seg(len t) by A2,A5,A9
      .= dom t by FINSEQ_1:def 3;
A13: dom s = Seg(len t) by A2,A5,FINSEQ_1:def 3
      .= dom t by FINSEQ_1:def 3;
A14: now
      let j be Element of NAT;
      assume
A15:  j in dom t;
      then s.j = s/.j by A13,PARTFUN1:def 6;
      then
A16:  (s/.j)*' = (f.(j-'1) * g.(k+1-'j))*' by A4,A13,A15;
A17:  j in Seg(len t) by A15,FINSEQ_1:def 3;
      then j <= k+1 by A5,FINSEQ_1:1;
      then
A18:  k + 1 - j >= j - j by XREAL_1:9;
      1 <= j by A17,FINSEQ_1:1;
      then j - 1 >= 1 - 1 by XREAL_1:9;
      then
A19:  (j-'1) + (k+1-'j) = j-1 + (k+1-'j) by XREAL_0:def 2
        .= j - 1 + (k + 1 - j) by A18,XREAL_0:def 2
        .= k;
      thus t.j = (f*').(j-'1) * (g*').(k+1-'j) by A7,A15
        .= (power(F_Complex).(-1_F_Complex,j-'1) * (f.(j-'1))*') * (g*').(k+
      1-'j) by Def9
        .= (power(F_Complex).(-1_F_Complex,j-'1) * (f.(j-'1))*') * (power(
      F_Complex).(-1_F_Complex,k+1-'j) * (g.(k+1-'j))*') by Def9
        .= (power(F_Complex).(-1_F_Complex,j-'1) * power(F_Complex).(-
      1_F_Complex,k+1-'j)) * (((f.(j-'1))*') * (g.(k+1-'j))*')
        .= power(F_Complex).(-1_F_Complex,k) * (((f.(j-'1))*') * (g.(k+1-'j)
      )*') by A19,Th3
        .= power(F_Complex).(-1_F_Complex,k) * (s/.j)*' by A16,COMPLFLD:54;
    end;
A20: power(F_Complex).(-1_F_Complex,k) * u = t
    proof
      set b = power(F_Complex).(-1_F_Complex,k);
      set a = b * u;
A21:  dom a = dom u by POLYNOM1:def 1;
      now
        let j be Nat;
        assume
A22:    j in dom t;
        hence a.j = a/.j by A12,A21,PARTFUN1:def 6
          .= b * u/.j by A12,A22,POLYNOM1:def 1
          .= b * (s/.j)*' by A10,A12,A22
          .= t.j by A14,A22;
      end;
      hence thesis by A12,A21,FINSEQ_1:13;
    end;
    len u = len s by A9,FINSEQ_1:def 3;
    then Sum u = (Sum s)*' by A10,Th6;
    then (h1*').k = power(F_Complex).(-1_F_Complex,k) * (Sum u) by A3,Def9
      .= ((f*') *' (g*')).k by A6,A20,Th8;
    hence (h1*').k9 = ((f*') *' (g*')).k9;
  end;
  dom(h1*') = NAT by FUNCT_2:def 1
    .= dom((f*') *' (g*')) by FUNCT_2:def 1;
  hence thesis by A1,FUNCT_1:2;
end;
