
theorem
  for n being Ordinal, L being right_zeroed add-associative
  right_complementable well-unital distributive non trivial doubleLoopStr, a
being Element of L, b being bag of n, x being Function of n,L holds eval(Monom(
  a,b),x) = a * eval(b,x)
proof
  let n be Ordinal, L be right_zeroed add-associative right_complementable
  well-unital distributive non trivial doubleLoopStr, a be Element of L, b be
  bag of n, x be Function of n,L;
  set m = Monom(a,b);
  now
    per cases;
    case
      a <> 0.L;
      then
A1:   a is non zero;
      thus eval(m,x) = coefficient(m) * eval(term(m),x) by Th12
        .= a * eval(term(m),x) by Th9
        .= a * eval(b,x) by A1,Th10;
    end;
    case
A2:   a = 0.L;
      for b9 being bag of n holds m.b9 = 0.L
      proof
        let b9 be bag of n;
        now
          per cases;
          case
A3:         b9 = b;
A4:         b in Bags n by PRE_POLY:def 12;
A5:         b in dom(b .--> a) by TARSKI:def 1;
            dom(0_(n,L)) = dom((Bags n) --> 0.L) by POLYNOM1:def 8
              .= Bags n;
            then m = 0_(n,L)+*(b .--> a) by A4,FUNCT_7:def 3;
            hence m.b9 = (b .--> a).b by A3,A5,FUNCT_4:13
              .= 0.L by A2,FUNCOP_1:72;
          end;
          case
            b9 <> b;
            hence m.b9 = 0_(n,L).b9 by FUNCT_7:32
              .= 0.L by POLYNOM1:22;
          end;
        end;
        hence thesis;
      end;
      then
A6:   m.(term(m)) = 0.L;
      thus eval(m,x) = coefficient(m) * eval(term(m),x) by Th12
        .= 0.L by A6
        .= a * eval(b,x) by A2;
    end;
  end;
  hence thesis;
end;
