let F be Field; :: thesis: for p being monic Polynomial of F
for a being Element of F
for n being Nat holds
( p divides (X- a) `^ n iff ex l being Nat st
( l <= n & p = (X- a) `^ l ) )

let p be monic Polynomial of F; :: thesis: for a being Element of F
for n being Nat holds
( p divides (X- a) `^ n iff ex l being Nat st
( l <= n & p = (X- a) `^ l ) )

let a be Element of F; :: thesis: for n being Nat holds
( p divides (X- a) `^ n iff ex l being Nat st
( l <= n & p = (X- a) `^ l ) )

let n be Nat; :: thesis: ( p divides (X- a) `^ n iff ex l being Nat st
( l <= n & p = (X- a) `^ l ) )

reconsider n = n as Element of NAT by ORDINAL1:def 12;
A: now :: thesis: ( p divides (X- a) `^ n implies ex l being Nat st
( l <= n & p = (X- a) `^ l ) )
assume AS: p divides (X- a) `^ n ; :: thesis: ex l being Nat st
( l <= n & p = (X- a) `^ l )

defpred S1[ Nat] means for p being monic Polynomial of F st deg p = $1 & p divides (X- a) `^ n holds
ex l being Nat st p = (X- a) `^ l;
IA: S1[ 0 ]
proof
now :: thesis: for p being monic Polynomial of F st deg p = 0 & p divides (X- a) `^ n holds
ex l being Nat st p = (X- a) `^ l
let p be monic Polynomial of F; :: thesis: ( deg p = 0 & p divides (X- a) `^ n implies ex l being Nat st p = (X- a) `^ l )
assume ( deg p = 0 & p divides (X- a) `^ n ) ; :: thesis: ex l being Nat st p = (X- a) `^ l
then p = 1_. F by FIELD_14:16, RATFUNC1:def 2;
then p = (X- a) `^ 0 by POLYNOM5:15;
hence ex l being Nat st p = (X- a) `^ l ; :: thesis: verum
end;
hence S1[ 0 ] ; :: thesis: verum
end;
IS: now :: thesis: for j being Element of NAT st 0 <= j & j < n & S1[j] holds
S1[j + 1]
let j be Element of NAT ; :: thesis: ( 0 <= j & j < n & S1[j] implies S1[j + 1] )
assume B0: ( 0 <= j & j < n ) ; :: thesis: ( S1[j] implies S1[j + 1] )
assume IV: S1[j] ; :: thesis: S1[j + 1]
now :: thesis: for p being monic Polynomial of F st deg p = j + 1 & p divides (X- a) `^ n holds
ex l being Nat st p = (X- a) `^ l
let p be monic Polynomial of F; :: thesis: ( deg p = j + 1 & p divides (X- a) `^ n implies ex l being Nat st l = (X- a) `^ b2 )
assume C: ( deg p = j + 1 & p divides (X- a) `^ n ) ; :: thesis: ex l being Nat st l = (X- a) `^ b2
then consider q being Polynomial of F such that
A0: p *' q = (X- a) `^ n by RING_4:1;
reconsider q = q as non zero Polynomial of F by A0;
A1: Roots ((X- a) `^ n) = {a} by B0, Lm12b;
per cases ( Roots p = {a} or Roots p <> {a} ) ;
suppose Roots p = {a} ; :: thesis: ex l being Nat st l = (X- a) `^ b2
then a in Roots p by TARSKI:def 1;
then a is_a_root_of p by POLYNOM5:def 10;
then consider q1 being Polynomial of F such that
B1: p = (rpoly (1,a)) *' q1 by HURWITZ:33;
( q1 <> 0_. F & p <> 0_. F ) by B1;
then B2: deg p = (deg (rpoly (1,a))) + (deg q1) by B1, HURWITZ:23
.= 1 + (deg q1) by HURWITZ:27 ;
B3: q1 is monic by B1, FIELD_14:15;
q1 *' ((rpoly (1,a)) *' q) = p *' q by B1, POLYNOM3:33;
then consider l being Nat such that
B4: q1 = (X- a) `^ l by B3, B2, C, IV, A0, RING_4:1;
p = (X- a) `^ (l + 1) by B4, B1, POLYNOM5:19;
hence ex l being Nat st p = (X- a) `^ l ; :: thesis: verum
end;
end;
end;
hence S1[j + 1] ; :: thesis: verum
end;
I: for i being Element of NAT st 0 <= i & i <= n holds
S1[i] from INT_1:sch 7(IA, IS);
deg ((X- a) `^ n) = n by Lm12a;
then A5: deg p <= n by AS, RING_5:13;
then consider l being Nat such that
A6: p = (X- a) `^ l by AS, I;
l <= n by A5, A6, Lm12a;
hence ex l being Nat st
( l <= n & p = (X- a) `^ l ) by A6; :: thesis: verum
end;
now :: thesis: ( ex l being Nat st
( l <= n & p = (X- a) `^ l ) implies p divides (X- a) `^ n )
assume ex l being Nat st
( l <= n & p = (X- a) `^ l ) ; :: thesis: p divides (X- a) `^ n
then consider l being Nat such that
A0: ( l <= n & p = (X- a) `^ l ) ;
consider k being Nat such that
A1: l + k = n by A0, NAT_1:10;
( l is Element of NAT & k is Element of NAT ) by ORDINAL1:def 12;
then p *' ((X- a) `^ k) = (X- a) `^ n by A0, A1, FIELD_14:19;
hence p divides (X- a) `^ n by RING_4:1; :: thesis: verum
end;
hence ( p divides (X- a) `^ n iff ex l being Nat st
( l <= n & p = (X- a) `^ l ) ) by A; :: thesis: verum