reserve i,j,k,n,m for Nat,
        b,b1,b2 for bag of n;

theorem Th28:
  for L being Abelian right_zeroed add-associative
     right_complementable well-unital distributive commutative
     associative non trivial doubleLoopStr,
     p being Polynomial of n+m,L
   ex q being Polynomial of n+k+m,L st
     rng q c= rng p \/{0.L}&
     for XY being Function of n+m,L,
         XanyY being Function of n+k+m,L st
           XY|n = XanyY|n&@XY/^n = @XanyY/^(n+k)
       holds eval(p,XY) = eval(q,XanyY)
proof
  let L be Abelian right_zeroed add-associative
    right_complementable well-unital distributive commutative associative
    non trivial doubleLoopStr,
    p be Polynomial of n+m,L;
  consider P be Polynomial of n+m+k,L such that
  A1:  rng P c= rng p \/ {0.L} and
  A2:  for x be Function of n+m, L,
  y be Function of (n+m)+k, L st y|(n+m)=x
  holds eval(p,x) = eval(P,y) by Th27;
  reconsider P1=P as Polynomial of n+k+m,L;
  set I=id (n+k+m);
  dom I = n+k+m;
  then reconsider I as XFinSequence by AFINSQ_1:5;
  set nm=n+m,Inm = I|nm;
A3:I = Inm ^ (I/^nm);
A4:Inm = (Inm|n)^(Inm/^n);
A5:rng I = rng Inm \/ rng (I/^nm) by A3,AFINSQ_1:26;
A6:rng Inm misses rng (I/^nm) by A3,Th1;
A7:rng Inm = rng(Inm|n)\/rng(Inm/^n) by A4,AFINSQ_1:26;
A8:rng (Inm|n) misses rng (Inm/^n) by A4,Th1;
  rng (Inm|n) misses rng (I/^nm) by A6,XBOOLE_1:63,A7, XBOOLE_1:7;
  then
A9: (Inm|n) ^ (I/^nm) is one-to-one by CARD_FIN:52;
A10: rng ((Inm|n) ^ (I/^nm)) = rng (Inm|n) \/ rng (I/^nm) by AFINSQ_1:26;
  rng (I/^nm) misses rng (Inm/^n) by A6,XBOOLE_1:63,A7,XBOOLE_1:7;
  then rng ((Inm|n) ^ (I/^nm)) misses rng (Inm/^n) by A10,A8,XBOOLE_1:70;
  then
A11: (Inm|n) ^ (I/^nm)^ (Inm/^n) is one-to-one by A9,CARD_FIN:52;
A12: rng ((Inm|n) ^ (I/^nm)^ (Inm/^n)) =
  rng ((Inm|n) ^ (I/^nm)) \/ rng (Inm/^n) by AFINSQ_1:26
   .= rng (Inm|n) \/ rng(I/^nm) \/ rng (Inm/^n) by AFINSQ_1:26
   .= n+k+m by A5,A7,XBOOLE_1:4;
  len ((Inm|n) ^ (I/^nm)^ (Inm/^n))
    = len ((Inm|n) ^ (I/^nm)) + len (Inm/^n) by AFINSQ_1:17
   .= len (Inm|n) + len (I/^nm) +len (Inm/^n) by AFINSQ_1:17
   .= len (Inm|n) + len (Inm/^n)+ len (I/^nm)
   .= len Inm+ len (I/^nm) by A4,AFINSQ_1:17
   .= len I by A3,AFINSQ_1:17;
  then reconsider III=(Inm|n) ^ (I/^nm)^ (Inm/^n) as Function of n+k+m,n+k+m
    by A12,FUNCT_2:1;
  III is onto by A12;
  then reconsider III as Permutation of n+k+m by A11;
  take T = P1 permuted_by III";
  thus rng T c= rng p \/ {0.L} by A1,Th26;
  let XY be Function of n+m,L,
      XanyY be Function of n+k+m,L such that
A13: XY|n = XanyY|n & @XY/^n = @XanyY/^(n+k);
A14: len @XY = n+m & len @XanyY = n+k+m by FUNCT_2:def 1; then
A15:len(@XY/^n) = n+m-'n by AFINSQ_2:def 2
    .= m by NAT_D:34;
A16:len(@XanyY/^(n+k)) = n+k+m-'(n+k) by A14,AFINSQ_2:def 2
    .= m by NAT_D:34;
  len (@XanyY|(n+k)) = n+k by A14,AFINSQ_1:54,NAT_1:11; then
A17: len (@XanyY|(n+k) /^ n) = n+k-'n by AFINSQ_2:def 2
    .= k by NAT_D:34;
  then A18: len (@XY ^ (@XanyY|(n+k) /^ n)) = n+m+k by A14,AFINSQ_1:17;
  rng (@XY ^ (@XanyY|(n+k) /^ n)) c= the carrier of L by RELAT_1:def 19;
  then reconsider R = @XY ^ (@XanyY|(n+k) /^ n) as Function of (n+m)+k,L
     by A18,FUNCT_2:2;
  reconsider r = R as Function of (n+k)+m,L;
  R|(n+m) = @XY|(n+m) by AFINSQ_1:58,A14 .= @XY;
  then A19: eval(p,XY) = eval(P,R) by A2;
  (III")"=III by FUNCT_1:43;then A20: eval(P1,r) = eval(T,r*III) by Th25;
A21: dom @(r*III)=n+k+m = dom  @XanyY by FUNCT_2:def 1;
  n+m <= n+m+k by NAT_1:11;
  then nm <= len I;
  then
A22:len Inm = nm & len (I/^nm)= nm+k-'nm by AFINSQ_1:54,AFINSQ_2:def 2;
  then
A23:len (I/^nm) = k by NAT_D:34;
A24: n<=nm by NAT_1:11;
A25:len (Inm|n) = n & len (Inm/^n) = nm-'n
    by A22,NAT_1:11,AFINSQ_1:54,AFINSQ_2:def 2;
  then
A26: len (Inm/^n) = m by NAT_D:34;
A27: len ((Inm|n) ^ (I/^nm)) = n+k by A23,A25,AFINSQ_1:17;
  for k st k in dom @XanyY holds @(r*III).k = @XanyY.k
  proof
    let w be Nat;
    assume
A28:  w in dom @XanyY;
    per cases;
    suppose
A29:     w < n;
       then
A30:     w in dom (Inm|n) c= dom ((Inm|n) ^ (I/^nm))
         by A25,AFINSQ_1:66,21;
       w < nm by A29,A24,XXREAL_0:2;
       then
A31:     w in Segm nm by NAT_1:44;
A32:   III.w = ((Inm|n) ^ (I/^nm)).w by AFINSQ_1:def 3,A30
       .= (Inm|n).w by A30,AFINSQ_1:def 3
       .= Inm.w by A29,A25,AFINSQ_1:66,FUNCT_1:47
       .= I.w by A31,FUNCT_1:49
       .= w by A21,A28,FUNCT_1:17;
       w+0 < n+m by A29,XREAL_1:8;
       then w in dom @XY by A14,AFINSQ_1:66;
       then r.w = @XY.w by AFINSQ_1:def 3
       .= (@XY|n).w by A29,A25,AFINSQ_1:66,FUNCT_1:49
       .= XanyY.w by A13,A29,A25,AFINSQ_1:66,FUNCT_1:49;
       hence thesis by A32,A28,FUNCT_1:12,A21;
     end;
     suppose
A33:     n+k > w >= n;
       then reconsider wn=w-n as Nat by NAT_1:21;
       n+k>n+wn by A33;
       then
A34:     wn in Segm k by NAT_1:44,XREAL_1:6;
A35:   w in Segm (n+k) by A33,NAT_1:44;
       nm+wn = m+w;
       then nm+wn < m+(n+k) by A33,XREAL_1:6;
       then
A36:     nm+wn in Segm (n+m+k) by NAT_1:44;
       w in dom ((Inm|n) ^ (I/^nm)) by A33,A27,AFINSQ_1:66;
       then
A37:   III.w = ((Inm|n) ^ (I/^nm)).w by AFINSQ_1:def 3
        .= (I/^nm).wn by A33,AFINSQ_1:18,A23,A25
        .= I.(nm+wn) by A23,A34,AFINSQ_2:def 2
        .= nm+wn by A36,FUNCT_1:17;
       r.(nm+wn) = (@XanyY|(n+k) /^ n).wn by A14,A17,A34,AFINSQ_1:def 3
        .= (@XanyY|(n+k)). (wn+n) by A17,A34,AFINSQ_2:def 2
        .=@XanyY.w by A35,FUNCT_1:49;
       hence thesis by A37,A28,FUNCT_1:12,A21;
     end;
     suppose w >= n+k;
       then reconsider wnk=w-(n+k) as Nat by NAT_1:21;
A38:   n+k+m >n+k+wnk by A28,A14,AFINSQ_1:66;
       then
A39:   m > wnk by XREAL_1:6;
A40:   wnk in Segm m by NAT_1:44,A38,XREAL_1:6;
       then
A41:   wnk in dom (Inm/^n) by A25,NAT_D:34;
       wnk +n < m+n by A39,XREAL_1:6;
       then wnk +n+0 < m+n+k by XREAL_1:8;
       then
A42:   wnk +n in Segm (n+k+m) & wnk +n in Segm (m+n) by A39,XREAL_1:6,NAT_1:44;
A43:   III.(n+k+wnk) = (Inm/^n).wnk by A40,A26,A27,AFINSQ_1:def 3
       .=Inm.(n+wnk) by A41,AFINSQ_2:def 2
       .=I.(n+wnk) by A42,FUNCT_1:49
       .=n+wnk by A42,FUNCT_1:17;
       r.(n+wnk) = @XY.(n+wnk) by A14,A42,AFINSQ_1:def 3
       .= (@XY/^n).wnk by A40,A15,AFINSQ_2:def 2
       .=@XanyY.(n+k+wnk) by A13,A16,A40,AFINSQ_2:def 2;
       hence thesis by A43,A28,FUNCT_1:12,A21;
     end;
   end;
   hence thesis by A20,A19,A21,AFINSQ_1:8;
end;
