
theorem
  for X being set, L being non empty ZeroStr, m being Monomial of X,L
  holds Monom(coefficient(m),term(m)) = m
proof
  let X be set, L be non empty ZeroStr, m be Monomial of X,L;
  per cases by Th6;
  suppose
A1: Support m = {};
A2: now
A3:   term(m) is Element of Bags X by PRE_POLY:def 12;
      assume coefficient(m) <> 0.L;
      hence contradiction by A1,A3,POLYNOM1:def 4;
    end;
A4: m = 0_(X,L) by A1,Th1;
    set m9 = Monom(coefficient(m),term(m));
A5: dom(0_(X,L)) = dom((Bags X) --> 0.L) by POLYNOM1:def 8
      .= Bags X;
A6: EmptyBag X in dom(EmptyBag X .--> 0.L) by TARSKI:def 1;
A7: term(m) = EmptyBag X by A1,Def5;
    then
A8: m9.EmptyBag X = (0_(X,L)+*(EmptyBag X .--> 0.L)).EmptyBag X by A2,A5,
FUNCT_7:def 3
      .= (EmptyBag X .--> 0.L).EmptyBag X by A6,FUNCT_4:13
      .= 0.L by FUNCOP_1:72;
    now
      let x be object;
      assume x in Bags X;
      then reconsider x9= x as Element of Bags X;
      now
        per cases;
        case
          x9 = EmptyBag X;
          hence m9.x9 = 0.L by A8;
        end;
        case
          x <> EmptyBag X;
          then
A9:      not x9 in dom(EmptyBag X .--> 0.L) by TARSKI:def 1;
          m9.x9 = (0_(X,L)+*(EmptyBag X .--> 0.L)).x9 by A7,A2,A5,FUNCT_7:def 3
            .= 0_(X,L).x9 by A9,FUNCT_4:11;
          hence m9.x9 = 0.L by POLYNOM1:22;
        end;
      end;
      hence m.x = m9.x by A4,POLYNOM1:22;
    end;
    hence thesis;
  end;
  suppose
    ex b being bag of X st Support m = {b};
    then consider b being bag of X such that
A10: Support m = {b};
    set a = m.b;
A11: b in dom(b .--> a) by TARSKI:def 1;
    set m9 = Monom(coefficient(m),term(m));
A12: dom(0_(X,L)) = dom((Bags X) --> 0.L) by POLYNOM1:def 8
      .= Bags X;
A13: b in Support m by A10,TARSKI:def 1;
    then a <> 0.L by POLYNOM1:def 4;
    then
A14: term(m) = b by Def5;
A15: now
      let u be object;
      assume
A16:  u in Support(Monom(coefficient(m),term(m)));
      then reconsider u9 = u as Element of Bags X;
      now
        assume u <> b;
        then
A17:    not u9 in dom(b .--> a) by TARSKI:def 1;
        b in dom 0_(X,L) by A12,PRE_POLY:def 12;
        then m9.u9 = (0_(X,L)+*(b .--> a)).u9 by A14,FUNCT_7:def 3
          .= 0_(X,L).u9 by A17,FUNCT_4:11;
        hence m9.u9 = 0.L by POLYNOM1:22;
      end;
      hence u in {b} by A16,POLYNOM1:def 4,TARSKI:def 1;
    end;
    b in Bags X by PRE_POLY:def 12;
    then
A18: m9.b = (0_(X,L)+*(b .--> a)).b by A14,A12,FUNCT_7:def 3
      .= (b .--> a).b by A11,FUNCT_4:13
      .= a by FUNCOP_1:72;
    now
      let u be object;
      assume u in {b};
      then
A19:  u = b by TARSKI:def 1;
      m9.b <> 0.L by A13,A18,POLYNOM1:def 4;
      hence u in Support(Monom(coefficient(m),term(m))) by A13,A19,
POLYNOM1:def 4;
    end;
    then
A20: Support(Monom(coefficient(m),term(m))) = {b} by A15,TARSKI:2;
    now
      let x be object;
      assume x in Bags X;
      then reconsider x9 = x as Element of Bags X;
      now
        per cases;
        case
          x = b;
          hence Monom(coefficient(m),term(m)).x9 = m.x9 by A18;
        end;
        case
A21:      x <> b;
          then
A22:      not x in Support(Monom(coefficient(m),term(m))) by A20,TARSKI:def 1;
          not x in Support m by A10,A21,TARSKI:def 1;
          hence m.x9 = 0.L by POLYNOM1:def 4
            .= Monom(coefficient(m),term(m)).x9 by A22,POLYNOM1:def 4;
        end;
      end;
      hence m.x = Monom(coefficient(m),term(m)).x;
    end;
    hence thesis;
  end;
end;
