let n, ni be non empty Element of NAT ; :: thesis: ( ni < n & ni divides n implies ex f being FinSequence of the carrier of (Polynom-Ring F_Complex ) ex p being Polynomial of F_Complex st
( p = Product f & dom f = Seg n & ( for i being non empty Element of NAT st i in Seg n holds
( ( ( not i divides n or i divides ni or i = n ) implies f . i = <%(1_ F_Complex )%> ) & ( i divides n & not i divides ni & i <> n implies f . i = cyclotomic_poly i ) ) ) & unital_poly F_Complex ,n = ((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' p ) )
assume that
A1:
ni < n
and
A2:
ni divides n
; :: thesis: ex f being FinSequence of the carrier of (Polynom-Ring F_Complex ) ex p being Polynomial of F_Complex st
( p = Product f & dom f = Seg n & ( for i being non empty Element of NAT st i in Seg n holds
( ( ( not i divides n or i divides ni or i = n ) implies f . i = <%(1_ F_Complex )%> ) & ( i divides n & not i divides ni & i <> n implies f . i = cyclotomic_poly i ) ) ) & unital_poly F_Complex ,n = ((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' p )
set cPRFC = the carrier of (Polynom-Ring F_Complex );
set cMGFC = the carrier of (MultGroup F_Complex );
defpred S1[ set , set ] means ex d being non empty Nat st
( $1 = d & ( ( not d divides n or d divides ni or d = n ) implies $2 = <%(1_ F_Complex )%> ) & ( d divides n & not d divides ni & d <> n implies $2 = cyclotomic_poly d ) );
consider f being FinSequence of the carrier of (Polynom-Ring F_Complex ) such that
A8:
dom f = Seg n
and
A9:
for i being Nat st i in Seg n holds
S1[i,f . i]
from FINSEQ_1:sch 5(A3);
take
f
; :: thesis: ex p being Polynomial of F_Complex st
( p = Product f & dom f = Seg n & ( for i being non empty Element of NAT st i in Seg n holds
( ( ( not i divides n or i divides ni or i = n ) implies f . i = <%(1_ F_Complex )%> ) & ( i divides n & not i divides ni & i <> n implies f . i = cyclotomic_poly i ) ) ) & unital_poly F_Complex ,n = ((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' p )
set rbp = { y where y is Element of the carrier of (MultGroup F_Complex ) : ( ord y divides n & not ord y divides ni & ord y <> n ) } ;
A11:
{ y where y is Element of the carrier of (MultGroup F_Complex ) : ( ord y divides n & not ord y divides ni & ord y <> n ) } c= n -roots_of_1
A12:
ni -roots_of_1 c= n -roots_of_1
by A2, Th31;
A13:
n -roots_of_1 c= the carrier of (MultGroup F_Complex )
by Th35;
reconsider rbp = { y where y is Element of the carrier of (MultGroup F_Complex ) : ( ord y divides n & not ord y divides ni & ord y <> n ) } as finite Subset of F_Complex by A11, XBOOLE_1:1;
set bp = rbp,1 -bag ;
Product f = poly_with_roots (rbp,1 -bag )
by A8, A10, Th57;
then reconsider p = Product f as Polynomial of F_Complex ;
take
p
; :: thesis: ( p = Product f & dom f = Seg n & ( for i being non empty Element of NAT st i in Seg n holds
( ( ( not i divides n or i divides ni or i = n ) implies f . i = <%(1_ F_Complex )%> ) & ( i divides n & not i divides ni & i <> n implies f . i = cyclotomic_poly i ) ) ) & unital_poly F_Complex ,n = ((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' p )
thus
p = Product f
; :: thesis: ( dom f = Seg n & ( for i being non empty Element of NAT st i in Seg n holds
( ( ( not i divides n or i divides ni or i = n ) implies f . i = <%(1_ F_Complex )%> ) & ( i divides n & not i divides ni & i <> n implies f . i = cyclotomic_poly i ) ) ) & unital_poly F_Complex ,n = ((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' p )
thus
dom f = Seg n
by A8; :: thesis: ( ( for i being non empty Element of NAT st i in Seg n holds
( ( ( not i divides n or i divides ni or i = n ) implies f . i = <%(1_ F_Complex )%> ) & ( i divides n & not i divides ni & i <> n implies f . i = cyclotomic_poly i ) ) ) & unital_poly F_Complex ,n = ((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' p )
thus
for i being non empty Element of NAT st i in Seg n holds
( ( ( not i divides n or i divides ni or i = n ) implies f . i = <%(1_ F_Complex )%> ) & ( i divides n & not i divides ni & i <> n implies f . i = cyclotomic_poly i ) )
by A10; :: thesis: unital_poly F_Complex ,n = ((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' p
set b = (n -roots_of_1 ),1 -bag ;
set bi = (ni -roots_of_1 ),1 -bag ;
consider rbn being non empty finite Subset of F_Complex such that
A14:
rbn = { y where y is Element of the carrier of (MultGroup F_Complex ) : ord y = n }
and
A15:
cyclotomic_poly n = poly_with_roots (rbn,1 -bag )
by Def5;
set bn = rbn,1 -bag ;
set rbibn = (ni -roots_of_1 ) \/ rbn;
reconsider rbibn = (ni -roots_of_1 ) \/ rbn as finite Subset of F_Complex ;
set bibn = rbibn,1 -bag ;
ni -roots_of_1 misses rbn
then A22:
((ni -roots_of_1 ),1 -bag ) + (rbn,1 -bag ) = ((ni -roots_of_1 ) \/ rbn),1 -bag
by UPROOTS:12;
A23:
unital_poly F_Complex ,ni = poly_with_roots ((ni -roots_of_1 ),1 -bag )
by Th50;
then A29:
n -roots_of_1 = rbibn \/ rbp
by TARSKI:2;
rbibn misses rbp
then A34:
(n -roots_of_1 ),1 -bag = (rbibn,1 -bag ) + (rbp,1 -bag )
by A29, UPROOTS:12;
unital_poly F_Complex ,n =
poly_with_roots ((n -roots_of_1 ),1 -bag )
by Th50
.=
(poly_with_roots (rbibn,1 -bag )) *' (poly_with_roots (rbp,1 -bag ))
by A34, UPROOTS:66
.=
((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' (poly_with_roots (rbp,1 -bag ))
by A15, A22, A23, UPROOTS:66
;
hence
unital_poly F_Complex ,n = ((unital_poly F_Complex ,ni) *' (cyclotomic_poly n)) *' p
by A8, A10, Th57; :: thesis: verum