reserve i,j,k,n,m for Nat,
        X for set,
        b,s for bag of X,
        x for object;
reserve O for Ordinal,
        R for right_zeroed add-associative right_complementable
          right_unital distributive non trivial doubleLoopStr,
        p for Polynomial of O, R;
reserve O for Ordinal,
        R for right_zeroed add-associative right_complementable
             right_unital distributive non trivial doubleLoopStr,
        p for Polynomial of O, R;

theorem Th75:
  for L being right_zeroed add-associative right_complementable
       well-unital distributive non trivial doubleLoopStr,
     p being Polynomial of n,L
     ex q being Polynomial of n+m,L st
        rng q c= rng p \/ {0.L}&
        (for b be bag of n+m holds b in Support q iff b|n in Support p &
                 for i st i >= n holds b.i=0 ) &
        (for b be bag of n+m st b in Support q holds
           q.b = p.(b|n)) &
     for x being Function of n, L,
         y being Function of (n+m), L st y|n=x
       holds eval(p,x) = eval(q,y)
proof
  let L be right_zeroed add-associative right_complementable
  well-unital distributive non trivial doubleLoopStr,
  p be Polynomial of n,L;
  defpred P[Nat] means ex q be Polynomial of n+$1,L st
  rng q c= rng p \/ {0.L}&
  ( for b be bag of n+$1 holds b in Support q iff
  b|n in Support p & for i st i >= n holds b.i=0) &
  (for b be bag of n+$1 st b in Support q holds q.b = p.(b|n)) &
  for x be Function of n, L,y be Function of (n+$1), L st y|n=x
  holds eval(p,x) = eval(q,y);
A1:P[0]
  proof
    reconsider q=p as Polynomial of n+0,L;
    take q;
    thus rng q c= rng p \/ {0.L} by XBOOLE_1:7;
    thus for b be bag of n+0 holds b in Support q iff b|n in Support p &
    for i st i >= n holds b.i=0
    proof
      let b be bag of n+0;
      thus b in Support q implies b|n in Support p &
      for i st i >= n holds b.i=0
      proof
        assume b in Support q;
        hence b|n in Support p;
        let i such that
A2:     i >= n;
        not i in Segm n & Segm n = dom b by A2,NAT_1:44,PARTFUN1:def 2;
        hence thesis by FUNCT_1:def 2;
      end;
      thus thesis;
    end;
    thus for b be bag of n+0 st b in Support q holds q.b = p.(b|n);
    thus thesis;
  end;
A3:P[k] implies P[k+1]
  proof set k1=k+1;
    assume P[k];then
    consider q be Polynomial of n+k,L such that
A4: rng q c= rng p \/{0.L} and
A5: for b be bag of n+k holds b in Support q iff b|n in Support p &
    for i st i >= n holds b.i=0 and
A6:  (for b be bag of n+k st b in Support q holds
    q.b = p.(b|n) ) and
A7: for x be Function of n, L,y be Function of (n+k), L st y|n=x
      holds eval(p,x) = eval(q,y);
    reconsider P = q extended_by_0 as Polynomial of n+k1,L;
    take P;
    rng P = rng q \/ {0.L} by HILB10_2:10;
    then rng P c= rng p \/{0.L}\/{0.L} by A4,XBOOLE_1:13;
    hence rng P c= rng p \/ {0.L} by XBOOLE_1:7,12;
A8: n+k<= n+k+1 = n+k1 & n<= n+k by NAT_1:11;
A9: Segm n c= Segm (n+k) by NAT_1:39,NAT_1:11;
A10:n+k-'0 = n+k- 0;
    thus for b be bag of n+(k+1) holds b in Support P iff b|n in Support p &
    for i st i >= n holds b.i=0
    proof
      let b be bag of n+(k+1);
A11:  ((0,n+k)-cut b)|n = (b|(n+k))|n by A8,HILB10_2:3
      .= b|n by A9,RELAT_1:74;
      hereby assume
A12:    b in Support P;
        then b.(n+k) = 0 by HILB10_2:7;
        then
A13:    (0,n+k)-cut b in Support q by A12,HILB10_2:9;
        hence b|n in Support p by A5,A11;
        thus for i st i >= n holds b.i=0
        proof
          let i such that
A14:      i >= n;
          per cases by XXREAL_0:1;
          suppose i < n+k;
            then i in Segm (n+k) by NAT_1:44;
            then
A15:        (b|(n+k)).i = b.i by FUNCT_1:49;
            ((0,n+k)-cut b).i = 0 by A13,A5,A14;
            hence thesis by A15,A8,HILB10_2:3;
          end;
          suppose i = n+k;
            hence thesis by A12,HILB10_2:7;
          end;
          suppose i > n+k;
            then i >= n+k+1 by NAT_1:13;
            then not i in Segm(n+k+1) by NAT_1:44;
            then not i in dom b;
            hence thesis by FUNCT_1:def 2;
          end;
        end;
      end;
      assume
A16:  b|n in Support p & for i st i >= n holds b.i=0;
      for i st i >= n holds ((0,n+k)-cut b).i=0
      proof
        let i such that
A17:    i >=n;
A18:    ((0,n+k)-cut b).i = (b|(n+k)).i by A8,HILB10_2:3;
        per cases;
        suppose i in n+k;
          then (b|(n+k)).i = b.i by FUNCT_1:49;
          hence thesis by A17,A18,A16;
        end;
        suppose not i in n+k;
          then not i in dom (0,n+k)-cut b by A10;
          hence thesis by FUNCT_1:def 2;
        end;
      end;
      then
A19:  ((0,n+k)-cut b) in Support q by A10,A5,A16,A11;
      b.(n+k)= 0 by A16,NAT_1:11;
      hence b in Support P by HILB10_2:9,A19;
    end;
    thus for b be bag of n+(k+1) st b in Support P holds
    P.b = p.(b|n)
    proof
      let b be bag of n+(k+1) such that
A20:  b in Support P;
A21:  ((0,n+k)-cut b)|n = (b|(n+k))|n by A8,HILB10_2:3
      .= b|n by A9,RELAT_1:74;
      b.(n+k) = 0 by A20,HILB10_2:7;
      then
A22:  (0,n+k)-cut b in Support q by A20,HILB10_2:9;
      n+k+1 = n+(k+1);
      then b = (0,n+k)-cut b bag_extend (b.(n+k)) by HILB10_2:4
      .= (0,n+k)-cut b bag_extend 0 by A20,HILB10_2:7;
      hence P.b = q.((0,n+k)-cut b) by HILB10_2:6,A10
      .= p. (b|n) by A6,A22,A21;
    end;
    let x be Function of n, L,y be Function of n+k1, L such that
A23: y|n=x;
A24: rng (@y|(n+k) ) c= the carrier of L by RELAT_1:def 19;
    len (@y) = n+k1 & n+k < n+k+1 by CARD_1:def 7,NAT_1:13;
    then dom (@y|(n+k)) = n+k by AFINSQ_1:54;
    then reconsider Y= @y|(n+k) as Function of n+k,L by A24,FUNCT_2:2;
    Segm n c= Segm (n+k) by NAT_1:39,11;
    then
A25:Y |n = x by A23,RELAT_1:74;
    thus eval(P,y) = eval(q,Y) by HILB10_2:18
    .= eval(p,x) by A7,A25;
  end;
  P[k] from NAT_1:sch 2(A1,A3);
  hence thesis;
end;
