
theorem lemphi2b:
for F being Field,
    E being FieldExtension of F
for T being non empty finite Subset of E
for p being Polynomial of (card T),F
for x being T-evaluating Function of (card T),E
holds Ext_eval(p,x) in the carrier of RAdj(F,T)
proof
let F be Field, E be FieldExtension of F, T be non empty finite Subset of E,
    p being Polynomial of (card T),F;
let x be T-evaluating Function of (card T),E;
set n = card T, R = F;
A0: F is Subring of E by FIELD_4:def 1;
defpred P[Nat] means
  for p being Polynomial of (card T),F st card(Support p) = $1
  holds Ext_eval(p,x) in the carrier of RAdj(F,T);
A1: ex k being Element of NAT st card(Support p) = k;
A2: for k being Nat st P[k] holds P[k + 1]
  proof
    let k be Nat;
    assume
A3: P[k];
    let p be Polynomial of n,R;
    assume
A4: card(Support p) = k + 1;
    set sgp = SgmX(BagOrder n, Support p);
    set bg = sgp/.(len sgp);
A5: BagOrder n linearly_orders Support p by POLYNOM2:18;
    Support p <> {} by A4;
    then 1 <= len sgp by NAT_1:14;
    then len sgp in Seg(len sgp) by FINSEQ_1:1;
    then
A6: len sgp in dom sgp by FINSEQ_1:def 3;
    then sgp/.(len sgp) = sgp.(len sgp) by PARTFUN1:def 6;
    then bg in rng sgp by A6,FUNCT_1:def 3;
    then
A7: bg in Support p by A5,PRE_POLY:def 2;
    then
A8: p.bg <> 0.R by POLYNOM1:def 4;
    set r2 = 0_(n,R)+*(bg,p.bg);
    set r1 = p+*(bg,0.R);
    reconsider bg as bag of n;
    dom p = Bags n by FUNCT_2:def 1;
    then
A9: r1 = p+*(bg.-->0.R) by FUNCT_7:def 3;
    reconsider r1 as Function of Bags n,the carrier of R;
    for u being object holds u in Support r1 implies u in Support p
    proof
      let u be object;
      assume
A10:  u in Support r1;
      then reconsider u as Element of Bags n;
      now
        assume
A11:    u = bg;
        then u in dom(bg.-->0.R) by TARSKI:def 1;
        then r1.u = (bg.-->0.R).bg by A9,A11,FUNCT_4:13;
        then r1.u = 0.R by FUNCOP_1:72;
        hence contradiction by A10,POLYNOM1:def 4;
      end;
      then not u in dom(bg.-->0.R) by TARSKI:def 1;
      then p.u = r1.u by A9,FUNCT_4:11;
      then p.u <> 0.R by A10,POLYNOM1:def 4;
      hence thesis by POLYNOM1:def 4;
    end;
    then Support r1 c= Support p;
    then reconsider r1 as Polynomial of n,R by POLYNOM1:def 5;
A12: dom p = Bags n by FUNCT_2:def 1;
A13: for u being object holds u in Support p implies u in Support r1 \/ {bg}
    proof
      let u be object;
      assume
A14:  u in Support p;
      then reconsider u as Element of Bags n;
A15:  p.u <> 0.R by A14,POLYNOM1:def 4;
      per cases;
      suppose
        u = bg;
        then u in {bg} by TARSKI:def 1;
        hence thesis by XBOOLE_0:def 3;
      end;
      suppose
        u <> bg;
        then not u in dom(bg.-->0.R) by TARSKI:def 1;
        then r1.u = p.u by A9,FUNCT_4:11;
        then u in Support r1 by A15,POLYNOM1:def 4;
        hence thesis by XBOOLE_0:def 3;
      end;
    end;
    bg in dom(bg.-->0.R) by TARSKI:def 1;
    then r1.bg = (bg.-->0.R).bg by A9,FUNCT_4:13;
    then
A16: r1.bg = 0.R by FUNCOP_1:72;
    then
A17: not bg in Support r1 by POLYNOM1:def 4;
    for u being object holds u in Support r1 \/ {bg} implies u in Support p
    proof
      let u be object;
      assume
A18:  u in Support r1 \/ {bg};
      per cases by A18,XBOOLE_0:def 3;
      suppose
A19:    u in Support r1;
        then reconsider u as Element of Bags n;
        u <> bg by A16,A19,POLYNOM1:def 4;
        then not u in dom(bg.-->0.R) by TARSKI:def 1;
        then
A20:    r1.u = p.u by A9,FUNCT_4:11;
        r1.u <> 0.R by A19,POLYNOM1:def 4;
        hence thesis by A20,POLYNOM1:def 4;
      end;
      suppose
        u in {bg};
        hence thesis by A7,TARSKI:def 1;
      end;
    end;
    then Support p = Support r1 \/ {bg} by A13,TARSKI:2;
    then
A21: k + 1 = card(Support r1) + 1 by A4,A17,CARD_2:41;
    dom 0_(n,R) = Bags n by FUNCT_2:def 1;
    then
A22: r2 = 0_(n,R)+*(bg.-->p.bg) by FUNCT_7:def 3;
    reconsider r2 as Function of Bags n,the carrier of R;
A23: for u being object holds u in Support r2 implies u in {bg}
    proof
      let u be object;
      assume
A24:  u in Support r2;
      then reconsider u as Element of Bags n;
A25:  r2.u <> 0.R by A24,POLYNOM1:def 4;
      now
        assume u <> bg;
        then not u in dom(bg.-->p.bg) by TARSKI:def 1;
        then r2.u = 0_(n,R).u by A22,FUNCT_4:11;
        hence contradiction by A25,POLYNOM1:22;
      end;
      hence thesis by TARSKI:def 1;
    end;
A50: for u being object holds u in {bg} implies u in Support r2
    proof
      let u be object;
      bg in dom(bg.-->p.bg) by TARSKI:def 1;
      then r2.bg = (bg.-->p.bg).bg by A22,FUNCT_4:13;
      then
A26:  r2.bg = p.bg by FUNCOP_1:72;
      assume u in {bg};
      then u = bg by TARSKI:def 1;
      hence thesis by A8,A26,POLYNOM1:def 4;
    end;
    then Support r2 = {bg} by A23,TARSKI:2;
    then reconsider r2 as Polynomial of n,R by POLYNOM1:def 5;
A28: for u being object st u in Bags n holds (r1+r2).u = p.u
    proof
      let u be object;
      assume u in Bags n;
      then reconsider u as bag of n;
      per cases;
      suppose
A29:    u = bg;
        bg in dom(bg.-->p.bg) by TARSKI:def 1;
        then r2.bg = (bg.-->p.bg).bg by A22,FUNCT_4:13;
        then
A30:    r2.bg = p.bg by FUNCOP_1:72;
        u in dom(bg.-->0.R) by A29,TARSKI:def 1;
        then
A31:    r1.u = (bg.-->0.R).bg by A9,A29,FUNCT_4:13;
        (r1+r2).u = r1.u + r2.u by POLYNOM1:15
          .= 0.R + p.bg by A29,A31,A30,FUNCOP_1:72
          .= p.bg;
        hence thesis by A29;
      end;
      suppose
A32:   u <> bg;
       then
A33:    not u in dom(bg.-->0.R) by TARSKI:def 1;
        not u in dom(bg.-->p.bg) by A32,TARSKI:def 1;
        then r2.u = 0_(n,R).u by A22,FUNCT_4:11;
        then
A34:    r2.u = 0.R by POLYNOM1:22;
        (r1+r2).u = r1.u + r2.u by POLYNOM1:15
          .= p.u by A9,A33,A34,FUNCT_4:11;
        hence thesis;
      end;
    end;
reconsider a = Ext_eval(r1,x) as Element of RAdj(F,T) by A3,A21;
reconsider c = Ext_eval(r2,x) as Element of RAdj(F,T) by A50,A23,TARSKI:2,Lm7;
    dom(r1 + r2) = Bags n by FUNCT_2:def 1; then
    Ext_eval(p,x)
       = Ext_eval(r1+r2,x) by A12,A28,FUNCT_1:2
      .= Ext_eval(r1,x) + Ext_eval(r2,x) by A0,FIELD_11:19
      .= a + c by FIELD_6:15;
    hence Ext_eval(p,x) in the carrier of RAdj(F,T);
  end;
A36: P[0]
  proof
    let p be Polynomial of n,R;
    assume card(Support p) = 0;
    then Support p = {};
    then p = 0_(n,R) by FIELD_11:5;
    then Ext_eval(p,x) = 0.E by FIELD_11:16
                      .= 0.RAdj(F,T) by FIELD_6:def 4;
    hence Ext_eval(p,x) in the carrier of RAdj(F,T);
  end;
  for k being Nat holds P[k] from NAT_1:sch 2(A36,A2);
  hence thesis by A1;
end;
