 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 Th33:
  for p be odd prime Nat, m be positive Nat holds
  ex u be Element of INT.Ring st
  ('F'(f_0(m,p))).0
    = ((p-'1)!)*(In((((-1)|^m)*(m!))|^p,INT.Ring)) + (In(p!,INT.Ring))*u
     proof
       let p be odd prime Nat, m be positive Nat;
       set Gf = 'G'(f_0(m,p));
       set D = Der1(INT.Ring);
A1:    1 < p by INT_2:def 4; then
       1+1 <= p by INT_1:7; then
A3:    p -2 = p -'2 by XREAL_1:233;
       len f_0(m,p) = len ~f_0(m,p) .= m*p + p by Th12; then
A5:    len Gf = m*p + p by E_TRANS1:def 8; then
A6:    1 <= p <= len Gf by INT_2:def 4,XREAL_1:38; then
A7:    p in dom Gf by FINSEQ_3:25;
       set p1 = p-'1;
       (p-'1) <= len Gf by NAT_D:35,XREAL_1:38,A5; then
A8:    len (Gf|(p-'1)) = (p-'1) by FINSEQ_1:59; then
A9:    dom (Gf|(p-'1)) = Seg (p-'1) by FINSEQ_1:def 3;
A10:   dom (Gf|(p-'1)) = dom(p1|-> 0.INT.Ring) by A8,FINSEQ_1:def 3;
A11:   eval(Gf|(p-'1),0.INT.Ring) = p1|-> 0.INT.Ring
       proof
         for k be Nat st k in dom (eval(Gf|(p-'1),0.INT.Ring)) holds
         (eval(Gf|(p-'1),0.INT.Ring)).k = (p1|-> 0.INT.Ring).k
         proof
          let k be Nat;
          assume
A12:      k in dom (eval((Gf|(p-'1)),0.INT.Ring)); then
A13:      k in dom (Gf|(p-'1)) by E_TRANS1:def 7;
A14:      k in Seg p1 by A12,E_TRANS1:def 7,A9; then
A15:      1 <= k <= p1 by FINSEQ_1:1; then
A17:      k-'1 = k -1 by XREAL_1:233;
          p1 <= len Gf by NAT_D:35,XREAL_1:38,A5; then
          1 <= k <= len Gf by A15,XXREAL_0:2; then
A16:      k in dom Gf by FINSEQ_3:25;
A18:      (p -' 1) -1 = (p - 1) - 1 by A1,XREAL_1:233 .= p -2;
          k in dom(Gf|(p-'1)) by A12,E_TRANS1:def 7; then
          (Gf|(p-'1))/.k = (Gf|(p-'1)).k by PARTFUN1:def 6
          .= Gf.k by FUNCT_1:49,A14
          .= (D|^(k-'1)).f_0(m,p) by A16,E_TRANS1:def 8; then
          (eval((Gf|(p-'1)),0.INT.Ring)).k
          = eval(~((D|^(k-'1)).f_0(m,p)),0.INT.Ring) by A13,E_TRANS1:def 7
          .= 0.INT.Ring by A18,A3,A17,A15,XREAL_1:9,Th22
          .= (p1|-> 0.INT.Ring).k;
          hence thesis;
        end;
        hence thesis by E_TRANS1:def 7,A10;
      end;
      Gf = (Gf|(p-'1))^<*Gf.p*>^(Gf/^p) by A6,FINSEQ_5:84
      .= (Gf|(p-'1))^<*Gf/.p*>^(Gf/^p) by A7,PARTFUN1:def 6
      .= (Gf|(p-'1))^(<*Gf/.p*>^(Gf/^p)) by FINSEQ_1:32; then
A20:  Sum Gf
      = Sum (Gf|(p-'1)) + Sum (<*Gf/.p*>^(Gf/^p)) by RLVECT_1:41
      .= Sum (Gf|(p-'1)) + (Sum (<*Gf/.p*>) + Sum(Gf/^p)) by RLVECT_1:41;
A21:  (Eval(~^(Sum(Gf|(p-'1))))).0
       = Sum (p1|-> 0.INT.Ring) by A11,E_TRANS1:30
      .= 0.INT.Ring by MATRIX_3:11;
A22:  dom <*Gf/.p*> = Seg 1 by FINSEQ_1:38; then
      1 in dom <*Gf/.p*>; then
A23:  (eval(<*Gf/.p*>,0.INT.Ring)).1
      = eval(~(<*Gf/.p*>/.1),0.INT.Ring) by E_TRANS1:def 7
      .= eval(~(Gf/.p),0.INT.Ring) by FINSEQ_4:16;
A25:  Gf/.p = Gf.p by A7,PARTFUN1:def 6
      .= (D|^(p-'1)).f_0(m,p) by A7,E_TRANS1:def 8;
      dom (eval(<*Gf/.p*>,0.INT.Ring)) = {1} 
by A22,E_TRANS1:def 7,FINSEQ_1:2;
      then
      rng (eval(<*Gf/.p*>,0.INT.Ring)) = {eval(~(Gf/.p),0.INT.Ring)}
        by A23,FUNCT_1:4; then
      eval(<*Gf/.p*>,0.INT.Ring) = <* eval(~(Gf/.p),0.INT.Ring) *>
        by FINSEQ_1:38,A22,E_TRANS1:def 7; then
A26:  (Eval(~^(Sum(<*Gf/.p*>)))).0
      = Sum <* eval(~(Gf/.p),0.INT.Ring) *> by E_TRANS1:30
      .= eval(~((D|^(p-'1)).f_0(m,p)),0.INT.Ring) by A25,BINOM:3
      .= ((p-'1)!)*(In((((-1)|^m)*(m!))|^p,INT.Ring)) by Th23;
A27:  p < len Gf by XREAL_1:39,A5; then
      len (Gf/^p) = (len Gf) - p by RFINSEQ:def 1 .= m*p by A5; then
A29:  dom (Gf/^p) = Seg (m*p) by FINSEQ_1:def 3;
      for j being Nat st j in dom (eval(Gf/^p,0.INT.Ring)) holds
      (eval(Gf/^p,0.INT.Ring)).j in {In(p!,INT.Ring)}-Ideal
      proof
        let j be Nat;
        assume
A30:    j in dom eval(Gf/^p,0.INT.Ring); then
A31:    j in dom (Gf/^p) by E_TRANS1:def 7;
A32:    j in Seg (m*p) by A29,A30,E_TRANS1:def 7; then
A33:    1 <= j <= m*p by FINSEQ_1:1; then
A34:    j+p <= m*p + p by XREAL_1:6;
        1 <= j+p by A33,XREAL_1:38; then
        j+p in Seg len Gf by A5,A34; then
A35:    j+p in dom Gf by FINSEQ_1:def 3;
        set jp = j+p;
A36:    jp -'1 = j + p -1 by A33,XREAL_1:38,233;
        1 <= j by A32,FINSEQ_1:1; then
A38:    0 + p <= j -1 +p by XREAL_1:6; then
        consider w be Integer such that
A39:    (jp-'1)! = (p!)*w by INT_1:def 3,A36,NUMBER08:6;
        reconsider w0 = w as Element of INT.Ring by INT_1:def 2;
A40:    In((jp-'1)!,INT.Ring) = (In(p!,INT.Ring))*w0 by A39;
        set t9 = ~(Product (x.(m,p))).((jp-'1)-'(p-'1));
        (Gf/^p)/.j = (Gf/^p).j by A31,PARTFUN1:def 6
        .= Gf.(p+j) by A27,A31,RFINSEQ:def 1
        .= (D|^(jp-'1)).f_0(m,p) by A35,E_TRANS1:def 8;then
        (eval(~((Gf/^p)/.j),0.INT.Ring))
        = ((jp-'1)!)*(~(Product (x.(m,p))).((jp-'1) -' (p-'1)))
         by A36,A38,Th24; then
        (eval(~((Gf/^p)/.j),0.INT.Ring)) = (In((jp-'1)!,INT.Ring))*t9
          by Lm1; then
A43:    (eval(~((Gf/^p)/.j),0.INT.Ring)) in {In((jp-'1)!,INT.Ring)}-Ideal
          by RING_2:18, GCD_1:def 1;
        {In((jp-'1)!,INT.Ring)}-Ideal c= {In(p!,INT.Ring)}-Ideal
          by A40,GCD_1:def 1,RING_2:19; then
        (eval(~((Gf/^p)/.j),0.INT.Ring)) in {In(p!,INT.Ring)}-Ideal by A43;
        hence thesis by A31,E_TRANS1:def 7;
      end; then
A45:  Sum (eval(Gf/^p,0.INT.Ring)) in {In(p!,INT.Ring)}-Ideal by E_TRANS1:3;
      (Eval(~^Sum(Gf/^p))).0 in {In(p!,INT.Ring)}-Ideal by A45,E_TRANS1:30;
      then
      (Eval(~^Sum(Gf/^p))).0 in
      the set of all (In(p!,INT.Ring))*r where r is Element of INT.Ring
        by IDEAL_1:64; then
      consider u be Element of INT.Ring such that
A46:  (Eval(~^Sum(Gf/^p))).0 = (In(p!,INT.Ring))*u;
A47:  ^(Sum (Gf|(p-'1)) + ((Sum (<*Gf/.p*>) + Sum(Gf/^p))))
      = ^(Sum (Gf|(p-'1))) + ^((Sum (<*Gf/.p*>) + Sum(Gf/^p))) by E_TRANS1:27;
A48:  ^((Sum (<*Gf/.p*>) + Sum(Gf/^p))) = ^(Sum (<*Gf/.p*>)) + ^Sum(Gf/^p)
      by E_TRANS1:27;
      ~^(Sum Gf)
      = ~^(Sum (Gf|(p-'1))) + ~^((Sum (<*Gf/.p*>) + Sum(Gf/^p)))
      by A20,A47,POLYNOM3:def 10
      .= ~^(Sum (Gf|(p-'1))) + (~^(Sum (<*Gf/.p*>)) + ~^Sum(Gf/^p))
      by A48,POLYNOM3:def 10; then
      Eval(~^(Sum Gf))
      = Eval(~^(Sum (Gf|(p-'1)))) + Eval(~^(Sum (<*Gf/.p*>)) + ~^Sum(Gf/^p))
      by POLYDIFF:55; then
A50:  (Eval(~^(Sum Gf))).0
      = 0.INT.Ring + (Eval(~^(Sum(<*Gf/.p*>)) + ~^Sum(Gf/^p))).0
        by A21,VALUED_1:1
      .= (Eval(~^(Sum(<*Gf/.p*>)) + ~^Sum(Gf/^p))).0;
      (Eval(~^(Sum(<*Gf/.p*>)) + ~^Sum(Gf/^p))).0
      = (Eval(~^(Sum(<*Gf/.p*>))) + Eval(~^Sum(Gf/^p))).0 by POLYDIFF:55
      .= ((p-'1)!)*(In((((-1)|^m)*(m!))|^p,INT.Ring))
         + (In(p!,INT.Ring))*u by A46,A26,VALUED_1:1;
      hence thesis by A50;
    end;
