 reserve R for domRing;
 reserve p for odd prime Nat, m for positive Nat;
 reserve g for non zero Polynomial of INT.Ring;
 reserve f for Element of the carrier of Polynom-Ring INT.Ring;

theorem Th20:
  for p be odd prime Nat, m be positive Nat holds
    ~(Product x.(m,p)).0 = (((-1)|^m)*(m!))|^p
   proof
     let p be odd prime Nat, m be positive Nat;
     defpred P[Nat] means ~(Product x.($1,p)).0 = (((-1)|^$1)*($1!))|^p;
A1:  P[1]
     proof
A2:    len x.(1,p) = 1 by Def2;
A3:    x.(1,p) = <* (x.(1,p)).1 *> by Def2,FINSEQ_1:40;
       dom x.(1,p) = Seg 1 by A2,FINSEQ_1:def 3; then
       1 in dom x.(1,p); then
A4:    (x.(1,p)).1 = (tau(1))|^p by Def2;
       ~(Product x.(1,p)).0 = ~((tau(1))|^p).0 by A3,A4,FINSOP_1:11
       .= (In(-1,INT.Ring))|^p by Lm10
       .= (-1)|^p by Lm2;
       hence thesis by NEWTON:13;
     end;
A6:  for k be non zero Nat holds P[k] implies P[k+1]
     proof
       let k be non zero Nat;
       assume
A7:    P[k];
A8:    (-(k+1))|^p = (In(-(k+1),INT.Ring))|^p by Lm2;
       Product(x.(k+1,p)) = Product((x.(k,p)))*((tau(k+1))|^p) by Th10; then
      ~(Product(x.(k+1,p))).0
      = ((~Product((x.(k,p))))*'(~((tau(k+1))|^p))).0 by POLYNOM3:def 10
      .= (~Product((x.(k,p)))).0 * (~((tau(k+1))|^p)).0 by Th14
      .= ((((-1)|^k)*(k!))|^p)*((-(k+1))|^p) by A8,A7,Lm10
      .= ((((-1)|^k)*(k!))*((-1)*(k+1)))|^p by NEWTON:7
      .= ((((-1)|^k)*(-1)*(k!))*(k+1))|^p
      .= ((((-1)|^(k+1))*(k!))*(k+1))|^p by NEWTON:6
      .= (((-1)|^(k+1))*((k!)*(k+1)))|^p
      .= (((-1)|^(k+1))*((k+1)!))|^p by NEWTON:15;
      hence thesis;
     end;
     for k be non zero Nat holds P[k] from NAT_1:sch 10(A1,A6);
     hence thesis;
   end;
