
theorem Th15:
  for L be non empty ZeroStr for p be Polynomial of L holds len
  Leading-Monomial(p) = len p
proof
  let L be non empty ZeroStr;
  let p be Polynomial of L;
  set r = Leading-Monomial(p);
A1: Leading-Monomial(p) = 0_.(L)+*(len p-'1,p.(len p-'1)) by Th11;
  per cases;
  suppose
    len p > 0;
    then
A2: len p >= 0+1 by NAT_1:13;
    len p-'1 in NAT;
    then
A3: len p-'1 in dom 0_.(L) by NORMSP_1:12;
A4: now
      let m be Nat;
      assume
A5:   m is_at_least_length_of r;
      assume len p > m;
      then len p >= m+1 by NAT_1:13;
      then len p-1 >= m+1-1 by XREAL_1:9;
      then len p-'1 >= m by XREAL_0:def 2;
      then r.(len p-'1) = 0.L by A5;
      then
A6:   p.(len p-'1) = 0.L by A1,A3,FUNCT_7:31;
      len p = len p-'1+1 by A2,XREAL_1:235;
      hence contradiction by A6,ALGSEQ_1:10;
    end;
A7: len p-1 >= 0 by A2,XREAL_1:19;
    len p is_at_least_length_of r
    proof
      let i be Nat;
A8:   i in NAT by ORDINAL1:def 12;
      assume i >= len p;
      then i+1 > len p by NAT_1:13;
      then i+1-1 > len p-1 by XREAL_1:9;
      then i <> len p-'1 by A7,XREAL_0:def 2;
      hence r.i = (0_.(L)).i by A1,FUNCT_7:32
        .= 0.L by A8,FUNCOP_1:7;
    end;
    hence thesis by A4,ALGSEQ_1:def 3;
  end;
  suppose
A9: len p = 0;
    hence len Leading-Monomial(p) = len (0_.(L)) by Th12
      .= len p by A9,Th5;
  end;
end;
