reserve L for Abelian left_zeroed add-associative associative right_zeroed
              right_complementable distributive non empty doubleLoopStr;
reserve a,b,c for Element of L;
reserve R for non degenerated comRing;
reserve n,m,i,j,k for Nat;
 reserve D for Function of R, R;
 reserve x,y,z for Element of R;
reserve D for Derivation of R;
reserve s for FinSequence of the carrier of R;
reserve h for Function of R,R;
 reserve R for domRing;
 reserve f,g for Element of the carrier of Polynom-Ring R;
reserve a for Element of R;

theorem Th35:
    for x,y be Element of the carrier of Polynom-Ring R st x is non constant
    holds (Der1(R)).(x*y) = ((Der1(R)).x)*y + x*((Der1(R)).y)
    proof
      let x,y be Element of the carrier of Polynom-Ring R;
      assume
A1:   x is non constant;
      defpred P[Nat] means
      for f,g be Element of the carrier of Polynom-Ring R,
      f0,g0 be Element of the carrier of Polynom-Ring R
      st f0 = f & g0 = g & deg f0 -1 = $1 holds
      (Der1(R)).(f0*g0) = ((Der1(R)).f0)*g0 + f0*((Der1(R)).g0);
A2:   for k be Nat st for n be Nat st n < k holds P[n] holds P[k]
      proof
        let k be Nat;
        assume
A3:     for n be Nat st n < k holds P[n];
        for f,g be Element of the carrier of Polynom-Ring R
        st deg f -1 = k
        holds (Der1(R)).(f*g) = ((Der1(R)).f)*g + f*((Der1(R)).g)
        proof
          let f,g be Element of the carrier of Polynom-Ring R;
          assume
A4:       deg f -1 = k;
          reconsider f1 = f, g1 = g as Polynomial of R;
A5:       f1 is non constant by A4;
A6:       1+1 <= 1+1+k by NAT_1:11;
          consider u1 being Polynomial of R such that
A7:       len u1 < len f1 & f1 = u1 + LM f1 &
          for i be Element of NAT st i < len f1-1
          holds u1.i = f1.i by A4,A6,POLYNOM4:16;
          reconsider u = u1,
          an = anpoly(1.R,1) as Element of Polynom-Ring R by POLYNOM3:def 10;
          reconsider df1 = (Der1(R)).f, dg1 = (Der1(R)).g as Polynomial of R;
A8:       LC f1 = f1.(deg f1) by A4,A6,XXREAL_0:2,XREAL_1:233;
          reconsider f1 as non constant Polynomial of R by A5;
A9:       LM f1 = ((LC f1)* anpoly(1.R,deg f1 -' 1))*'anpoly(1.R,1) by A8,Lm4;
A10:      len f1 = deg f1 + 1;
          f1.(deg f1) is non zero by A10,ALGSEQ_1:10; then
          reconsider a = f1.(deg f1) as non zero Element of R;
          reconsider h1 = (LC f1)*anpoly(1.R,deg f1 -' 1) as Polynomial of R;
A11:      deg h1 = deg anpoly(1.R,deg f1 -' 1) by RING_5:4
          .= deg f1 -' 1 by FIELD_1:4;
          (Der1(R)).(f*g) = ((Der1(R)).f)*g + f*((Der1(R)).g)
          proof
            f1 = u1 + h1*'anpoly(1.R,1) by A7,A8,Lm4; then
A12:        f*g = (u1 + h1*'anpoly(1.R,1))*'g1 by POLYNOM3:def 10
            .= u1 *' g1 + (h1*'anpoly(1.R,1))*'g1 by POLYNOM3:32;
A13:        deg h1 = k +1 - 1 by A4,A11,NAT_1:11,XREAL_1:233;
            reconsider h = h1, ang = anpoly(1.R,1)*'g1,
            an = anpoly(1.R,1), t = anpoly(1.R,1)*'g1,
            LMf = LM f1 as Element of Polynom-Ring R by POLYNOM3:def 10;
            reconsider t1 = anpoly(1.R,1)*'g1 as Polynomial of R;
            reconsider dan1 = (Der1(R)).an, df1 = (Der1(R)).f,
              dg1 = (Der1(R)).g,
            du1 = (Der1(R)).u, dh1 = (Der1(R)).h as Polynomial of R;
A14:        u1 *' g1 = u * g & h1*'t1 = h*t by POLYNOM3:def 10;
            f*g = u1 *' g1 + h1*'(anpoly(1.R,1)*'g1) by A12,POLYNOM3:33; then
A15:        f*g = u *g + h * t by A14,POLYNOM3:def 10
            .= u*g + h*(an * g) by POLYNOM3:def 10;
A16:        deg u1 < deg f1 by A7,XREAL_1:9;
A17:        (Der1(R)).(u*g) = ((Der1(R)).u)*g + u*((Der1(R)).g)
            proof
              per cases;
                suppose u is non constant; then
                reconsider n1 = deg u1 -1 as Nat;
                n1 < k by A4,A16,XREAL_1:9;
                hence thesis by A3;
              end;
              suppose u is constant;
                hence thesis by Th34;
              end;
            end;
A21:        (Der1(R)).(h * (an*g)) =
              ((Der1(R)).h)*(an*g) + h*((Der1(R)).(an*g))
            proof
              per cases;
                suppose h is non constant; then
                reconsider m1 = deg h1 -1 as Nat;
                m1 < k by XREAL_1:44,A13;
                hence thesis by A3;
              end;
              suppose h is constant;
                hence thesis by Th34;
              end;
            end;
            reconsider s1 = ((Der1(R)).an)*h, t1 = an*((Der1(R)).h)
            as Polynomial of R by POLYNOM3:def 10;
A25:        (Der1(R)).(h * an) = ((Der1(R)).h)*an + h*((Der1(R)).an) by Th32;
A26:        ((Der1(R)).h)*an = dh1*'anpoly(1.R,1) by POLYNOM3:def 10;
A27:        ((Der1(R)).h)*(an * g) = (((Der1(R)).h)*an) * g by GROUP_1:def 3
            .= (dh1*'anpoly(1.R,1))*'g1 by A26,POLYNOM3:def 10;
A28:        (Der1(R)).(f*g)
            = (((Der1(R)).u)*g + u*((Der1(R)).g)) + (Der1(R)).(h * (an * g))
            by A17,A15,VECTSP_1:def 20;
            u*((Der1(R)).g)= u1*'dg1 & ((Der1(R)).u)*g =du1*'g1
              by POLYNOM3:def 10;
              then
A30:        ((Der1(R)).u)*g + u*((Der1(R)).g) =
              du1 *' g1 + u1*'dg1 by POLYNOM3:def 10;
            ((Der1(R)).an)*g = dan1*'g1 & an*((Der1(R)).g) = anpoly(1.R,1)*'dg1
              by POLYNOM3:def 10; then
            ((Der1(R)).an)*g + an*((Der1(R)).g)
            = dan1*'g1 + anpoly(1.R,1)*'dg1 by POLYNOM3:def 10;then
A32:        h*(((Der1(R)).an)*g + an*((Der1(R)).g))
            = h1*'(dan1*'g1 + anpoly(1.R,1)*'dg1) by POLYNOM3:def 10;
A33:        (Der1(R)).(h * (an * g)) = (((Der1(R)).h)*(an * g))
            + (h*(((Der1(R)).an)*g + an*((Der1(R)).g))) by Th32,A21
            .= ((dh1*'anpoly(1.R,1))*'g1)+
              (h1*'(dan1*'g1 + anpoly(1.R,1)*'dg1))
              by A32,A27,POLYNOM3:def 10;
            h*((Der1(R)).an) = h1*'dan1 by POLYNOM3:def 10; then
A34:        ((Der1(R)).h)*an + h*((Der1(R)).an)
            = dh1*'anpoly(1.R,1) + h1*'dan1 by A26,POLYNOM3:def 10;
A35:        LM f1 = h*an by A9,POLYNOM3:def 10;
            f1 = u + LMf by A7,POLYNOM3:def 10; then
A36:        (Der1(R)).f = (Der1(R)).u + (((Der1(R)).h)*an + h*((Der1(R)).an))
              by A25,A35,VECTSP_1:def 20
            .= du1 + (dh1*'anpoly(1.R,1) + h1*'dan1) by A34,POLYNOM3:def 10
            .= du1 + dh1*'anpoly(1.R,1) + (h1*'dan1) by POLYNOM3:26;
A37:        ((Der1(R)).f)*g = df1*'g1 & f*(Der1(R)).g = f1*'dg1
              by POLYNOM3:def 10;
A38:        f1 = u1 + (h1*'anpoly(1.R,1)) by A7,A8,Lm4;
            (Der1(R)).(f*g) = (du1 *' g1 + u1*'dg1)
            +(((dh1*'anpoly(1.R,1))*'g1)+
              (h1*'(dan1*'g1 + anpoly(1.R,1)*'dg1)))
            by A28,A30,A33,POLYNOM3:def 10
            .= du1 *' g1 + u1*'dg1 + (dh1*'anpoly(1.R,1))*'g1
            + h1*'(dan1*'g1 + anpoly(1.R,1)*'dg1) by POLYNOM3:26
            .= du1 *' g1 + (dh1*'anpoly(1.R,1))*'g1 + u1*'dg1
            + (h1*'(dan1*'g1 + anpoly(1.R,1)*'dg1)) by POLYNOM3:26
            .= du1 *' g1 + (dh1*'anpoly(1.R,1))*'g1 + u1*'dg1
            + (h1*'(dan1*'g1) + h1*'(anpoly(1.R,1)*'dg1)) by POLYNOM3:31
            .= du1 *' g1 + (dh1*'anpoly(1.R,1))*'g1 + u1*'dg1
            + (h1*'(dan1*'g1)) + h1*'(anpoly(1.R,1)*'dg1) by POLYNOM3:26
            .= du1 *' g1 + (dh1*'anpoly(1.R,1))*'g1 + u1*'dg1
            + ((h1*'dan1)*'g1) + h1*'(anpoly(1.R,1)*'dg1) by POLYNOM3:33
            .= du1 *' g1 + (dh1*'anpoly(1.R,1))*'g1 + (h1*'dan1)*'g1+ u1*'dg1
             + (h1*'(anpoly(1.R,1)*'dg1)) by POLYNOM3:26
            .= du1 *' g1 + (dh1*'anpoly(1.R,1))*'g1 + (h1*'dan1)*'g1+ u1*'dg1
             + (h1*'anpoly(1.R,1))*'dg1 by POLYNOM3:33
            .= (du1 + dh1*'anpoly(1.R,1))*'g1 + (h1*'dan1)*'g1+ u1*'dg1
             + (h1*'anpoly(1.R,1))*'dg1 by POLYNOM3:32
            .= (du1 + dh1*'anpoly(1.R,1) + (h1*'dan1))*'g1+ u1*'dg1
             + (h1*'anpoly(1.R,1))*'dg1 by POLYNOM3:32
            .= (du1 + dh1*'anpoly(1.R,1) + (h1*'dan1))*'g1
             + (u1*'dg1 + (h1*'anpoly(1.R,1))*'dg1) by POLYNOM3:26
            .= df1*'g1 + f1*'dg1 by A38,A36,POLYNOM3:32
            .= ((Der1(R)).f)*g + f*(Der1(R)).g by A37,POLYNOM3:def 10;
            hence thesis;
          end;
          hence thesis;
        end;
        hence thesis;
      end;
A39:  for n be Nat holds P[n] from NAT_1:sch 4(A2);
      ex n be Nat st deg x -1 = n by A1;
      hence thesis by A39;
    end;
