
theorem Th24:
  for L be add-associative right_zeroed right_complementable
Abelian left_unital distributive commutative associative non trivial
doubleLoopStr for p,q be Polynomial of L for x be Element of L holds eval(p*'q
  ,x) = eval(p,x) * eval(q,x)
proof
  let L be add-associative right_zeroed right_complementable Abelian
  left_unital distributive commutative associative non trivial
  doubleLoopStr;
  let p,q be Polynomial of L;
  let x be Element of L;
  defpred P[Nat] means for p be Polynomial of L holds len p = $1 implies eval(
  p*'q,x) = eval(p,x)*eval(q,x);
A1: for k be Nat st for n be Nat st n < k holds P[n] holds P[k]
  proof
    let k be Nat;
    assume
A2: for n be Nat st n < k holds for p be Polynomial of L holds len p =
    n implies eval(p*'q,x) = eval(p,x) * eval(q,x);
    let p be Polynomial of L;
    assume
A3: len p = k;
    per cases;
    suppose
A4:   len p <> 0;
      set LMp = Leading-Monomial(p);
      consider r be Polynomial of L such that
A5:   len r < len p and
A6:   p = r+Leading-Monomial(p) and
      for n be Element of NAT st n < len p-1 holds r.n = p.n by A4,Th16;
      thus eval(p*'q,x) = eval(r*'q+LMp*'q,x) by A6,POLYNOM3:32
        .= eval(r*'q,x) + eval(LMp*'q,x) by Th19
        .= eval(r,x)*eval(q,x) + eval(LMp*'q,x) by A2,A3,A5
        .= eval(r,x)*eval(q,x) + eval(LMp,x)*eval(q,x) by Th23
        .= (eval(r,x) + eval(LMp,x))*eval(q,x) by VECTSP_1:def 7
        .= eval(p,x) * eval(q,x) by A6,Th19;
    end;
    suppose
      len p = 0;
      then
A7:   p = 0_.(L) by Th5;
      hence eval(p*'q,x) = eval(0_.(L),x) by Th2
        .= 0.L by Th17
        .= 0.L * eval(q,x)
        .= eval(p,x) * eval(q,x) by A7,Th17;
    end;
  end;
A8: for n be Nat holds P[n] from NAT_1:sch 4(A1);
  len p = len p;
  hence thesis by A8;
end;
