set cFC = the carrier of F_Complex ;
set cPRFC = the carrier of (Polynom-Ring F_Complex );
A1:
- (1_ F_Complex ) = - 1
by COMPLFLD:4, COMPLFLD:10;
deffunc H1( non empty Element of NAT ) -> Polynomial of F_Complex = cyclotomic_poly $1;
defpred S1[ non empty Element of NAT ] means ( ( H1($1) . 0 = 1 or H1($1) . 0 = - 1 ) & ( for i being Element of NAT holds H1($1) . i is integer ) );
A2:
now let k be non
empty Element of
NAT ;
:: thesis: ( ( for n being non empty Element of NAT st n < k holds
S1[n] ) implies S1[b1] )assume A3:
for
n being non
empty Element of
NAT st
n < k holds
S1[
n]
;
:: thesis: S1[b1]A4:
1
<= k
by Lm1;
per cases
( k = 1 or k > 1 )
by A4, XXREAL_0:1;
suppose A6:
k > 1
;
:: thesis: S1[b1]consider f being
FinSequence of the
carrier of
(Polynom-Ring F_Complex ),
p being
Polynomial of
F_Complex such that A7:
p = Product f
and A8:
dom f = Seg k
and A9:
for
i being non
empty Element of
NAT st
i in Seg k holds
( ( ( not
i divides k or
i = k ) implies
f . i = <%(1_ F_Complex )%> ) & (
i divides k &
i <> k implies
f . i = H1(
i) ) )
and A10:
unital_poly F_Complex ,
k = (cyclotomic_poly k) *' p
by Th54;
A11:
k = len f
by A8, FINSEQ_1:def 3;
defpred S2[
Nat,
set ]
means ex
g being
FinSequence of the
carrier of
(Polynom-Ring F_Complex ) ex
p being
Polynomial of
F_Complex st
(
g = f | (Seg $1) &
p = Product g & $2
= p & (
p . 0 = 1 or
p . 0 = - 1 ) & ( for
j being
Element of
NAT holds
p . j is
integer ) );
defpred S3[
Element of
NAT ]
means ( $1
in Seg (len f) implies ex
x being
set st
S2[$1,
x] );
A14:
S3[
0 ]
by FINSEQ_1:3;
A15:
for
l being
Element of
NAT st
S3[
l] holds
S3[
l + 1]
proof
let l be
Element of
NAT ;
:: thesis: ( S3[l] implies S3[l + 1] )
assume A16:
S3[
l]
;
:: thesis: S3[l + 1]
assume A17:
l + 1
in Seg (len f)
;
:: thesis: ex x being set st S2[l + 1,x]
per cases
( l = 0 or 0 < l )
;
suppose A18:
l = 0
;
:: thesis: ex x being set st S2[l + 1,x]reconsider g =
f | (Seg (l + 1)) as
FinSequence of the
carrier of
(Polynom-Ring F_Complex ) by FINSEQ_1:23;
reconsider p =
Product g as
Polynomial of
F_Complex by POLYNOM3:def 12;
take
p
;
:: thesis: S2[l + 1,p]take
g
;
:: thesis: ex p being Polynomial of F_Complex st
( g = f | (Seg (l + 1)) & p = Product g & p = p & ( p . 0 = 1 or p . 0 = - 1 ) & ( for j being Element of NAT holds p . j is integer ) )take
p
;
:: thesis: ( g = f | (Seg (l + 1)) & p = Product g & p = p & ( p . 0 = 1 or p . 0 = - 1 ) & ( for j being Element of NAT holds p . j is integer ) )thus
(
g = f | (Seg (l + 1)) &
p = Product g &
p = p )
;
:: thesis: ( ( p . 0 = 1 or p . 0 = - 1 ) & ( for j being Element of NAT holds p . j is integer ) )reconsider fl1 =
f . (l + 1) as
Element of the
carrier of
(Polynom-Ring F_Complex ) by A8, A11, A17, FINSEQ_2:13;
<*> the
carrier of
(Polynom-Ring F_Complex ) = f | (Seg 0 )
;
then g =
(<*> the carrier of (Polynom-Ring F_Complex )) ^ <*(f . (l + 1))*>
by A8, A11, A17, A18, FINSEQ_5:11
.=
<*(f . (l + 1))*>
by FINSEQ_1:47
;
then A19:
p = fl1
by FINSOP_1:12;
( 1
divides k & 1
<> k )
by A6, NAT_D:6;
then A20:
f . 1
= H1(1)
by A9, A11, A17, A18;
hence
(
p . 0 = 1 or
p . 0 = - 1 )
by A1, A18, A19, Th52, POLYNOM5:39;
:: thesis: for j being Element of NAT holds p . j is integer let j be
Element of
NAT ;
:: thesis: p . j is integer thus
p . j is
integer
:: thesis: verum end; suppose
0 < l
;
:: thesis: ex x being set st S2[l + 1,x]then A21:
0 + 1
<= l
by NAT_1:13;
A22:
l + 1
<= len f
by A17, FINSEQ_1:3;
l <= l + 1
by NAT_1:12;
then
l <= len f
by A22, XXREAL_0:2;
then consider x being
set such that A23:
S2[
l,
x]
by A16, A21, FINSEQ_1:3;
consider g being
FinSequence of the
carrier of
(Polynom-Ring F_Complex ),
p being
Polynomial of
F_Complex such that A24:
g = f | (Seg l)
and A25:
p = Product g
and
x = p
and A26:
(
p . 0 = 1 or
p . 0 = - 1 )
and A27:
for
j being
Element of
NAT holds
p . j is
integer
by A23;
reconsider g1 =
f | (Seg (l + 1)) as
FinSequence of the
carrier of
(Polynom-Ring F_Complex ) by FINSEQ_1:23;
reconsider p1 =
Product g1 as
Polynomial of
F_Complex by POLYNOM3:def 12;
take
p1
;
:: thesis: S2[l + 1,p1]take
g1
;
:: thesis: ex p being Polynomial of F_Complex st
( g1 = f | (Seg (l + 1)) & p = Product g1 & p1 = p & ( p . 0 = 1 or p . 0 = - 1 ) & ( for j being Element of NAT holds p . j is integer ) )take
p1
;
:: thesis: ( g1 = f | (Seg (l + 1)) & p1 = Product g1 & p1 = p1 & ( p1 . 0 = 1 or p1 . 0 = - 1 ) & ( for j being Element of NAT holds p1 . j is integer ) )thus
(
g1 = f | (Seg (l + 1)) &
p1 = Product g1 &
p1 = p1 )
;
:: thesis: ( ( p1 . 0 = 1 or p1 . 0 = - 1 ) & ( for j being Element of NAT holds p1 . j is integer ) )reconsider fl1 =
f . (l + 1) as
Element of the
carrier of
(Polynom-Ring F_Complex ) by A8, A11, A17, FINSEQ_2:13;
reconsider fl1p =
fl1 as
Polynomial of
F_Complex by POLYNOM3:def 12;
g1 = g ^ <*fl1*>
by A8, A11, A17, A24, FINSEQ_5:11;
then
Product g1 = (Product g) * fl1
by GROUP_4:9;
then A28:
p1 = p *' fl1p
by A25, POLYNOM3:def 12;
reconsider m1 =
- 1 as
Element of
COMPLEX by XCMPLX_0:def 2;
thus
( (
p1 . 0 = 1 or
p1 . 0 = - 1 ) & ( for
j being
Element of
NAT holds
p1 . j is
integer ) )
:: thesis: verumproof
per cases
( not l + 1 divides k or l + 1 = k or ( l + 1 divides k & l + 1 <> k ) )
;
suppose
( not
l + 1
divides k or
l + 1
= k )
;
:: thesis: ( ( p1 . 0 = 1 or p1 . 0 = - 1 ) & ( for j being Element of NAT holds p1 . j is integer ) )then A29:
fl1p = <%(1_ F_Complex )%>
by A9, A11, A17;
consider r being
FinSequence of
F_Complex such that A30:
len r = 0 + 1
and A31:
p1 . 0 = Sum r
and A32:
for
m being
Element of
NAT st
m in dom r holds
r . m = (p . (m -' 1)) * (fl1p . ((0 + 1) -' m))
by A28, POLYNOM3:def 11;
1
in dom r
by A30, FINSEQ_3:27;
then reconsider r1 =
r . 1 as
Element of
F_Complex by FINSEQ_2:13;
r = <*r1*>
by A30, FINSEQ_1:57;
then A33:
p1 . 0 = r1
by A31, RLVECT_1:61;
1
in dom r
by A30, FINSEQ_3:27;
then A34:
p1 . 0 =
(p . (1 -' 1)) * (fl1p . ((0 + 1) -' 1))
by A32, A33
.=
(p . ((0 + 1) -' 1)) * (fl1p . 0 )
by NAT_D:34
.=
(p . 0 ) * (fl1p . 0 )
by NAT_D:34
.=
(p . 0 ) * (1_ F_Complex )
by A29, POLYNOM5:33
;
thus
(
p1 . 0 = 1 or
p1 . 0 = - 1 )
:: thesis: for j being Element of NAT holds p1 . j is integer let j be
Element of
NAT ;
:: thesis: p1 . j is integer consider r being
FinSequence of
F_Complex such that
len r = j + 1
and A35:
p1 . j = Sum r
and A36:
for
m being
Element of
NAT st
m in dom r holds
r . m = (p . (m -' 1)) * (fl1p . ((j + 1) -' m))
by A28, POLYNOM3:def 11;
for
i being
Element of
NAT st
i in dom r holds
r . i is
integer
hence
p1 . j is
integer
by A35, Th5;
:: thesis: verum end; suppose A39:
(
l + 1
divides k &
l + 1
<> k )
;
:: thesis: ( ( p1 . 0 = 1 or p1 . 0 = - 1 ) & ( for j being Element of NAT holds p1 . j is integer ) )then A40:
fl1p = H1(
l + 1)
by A9, A11, A17;
l + 1
<= k
by A39, NAT_D:7;
then A41:
l + 1
< k
by A39, XXREAL_0:1;
consider r being
FinSequence of
F_Complex such that A42:
len r = 0 + 1
and A43:
p1 . 0 = Sum r
and A44:
for
m being
Element of
NAT st
m in dom r holds
r . m = (p . (m -' 1)) * (fl1p . ((0 + 1) -' m))
by A28, POLYNOM3:def 11;
1
in dom r
by A42, FINSEQ_3:27;
then reconsider r1 =
r . 1 as
Element of
F_Complex by FINSEQ_2:13;
reconsider fl1p0 =
fl1p . 0 as
Integer by A3, A40, A41;
r = <*r1*>
by A42, FINSEQ_1:57;
then A45:
p1 . 0 = r1
by A43, RLVECT_1:61;
1
in dom r
by A42, FINSEQ_3:27;
then A46:
p1 . 0 =
(p . (1 -' 1)) * (fl1p . ((0 + 1) -' 1))
by A44, A45
.=
(p . ((0 + 1) -' 1)) * (fl1p . 0 )
by NAT_D:34
.=
(p . 0 ) * (fl1p . 0 )
by NAT_D:34
;
A47:
(
fl1p0 = 1 or
fl1p0 = m1 )
by A3, A40, A41;
thus
(
p1 . 0 = 1 or
p1 . 0 = - 1 )
:: thesis: for j being Element of NAT holds p1 . j is integer let j be
Element of
NAT ;
:: thesis: p1 . j is integer consider r being
FinSequence of
F_Complex such that
len r = j + 1
and A48:
p1 . j = Sum r
and A49:
for
m being
Element of
NAT st
m in dom r holds
r . m = (p . (m -' 1)) * (fl1p . ((j + 1) -' m))
by A28, POLYNOM3:def 11;
for
i being
Element of
NAT st
i in dom r holds
r . i is
integer
hence
p1 . j is
integer
by A48, Th5;
:: thesis: verum end; end;
end; end; end;
end;
for
l being
Element of
NAT holds
S3[
l]
from NAT_1:sch 1(A14, A15);
then A51:
for
l being
Nat st
l in Seg (len f) holds
ex
x being
set st
S2[
l,
x]
;
consider F being
FinSequence such that
dom F = Seg (len f)
and A52:
for
i being
Nat st
i in Seg (len f) holds
S2[
i,
F . i]
from FINSEQ_1:sch 1(A51);
consider g being
FinSequence of the
carrier of
(Polynom-Ring F_Complex ),
p1 being
Polynomial of
F_Complex such that A53:
(
g = f | (Seg k) &
p1 = Product g &
F . k = p1 )
and A54:
( (
p1 . 0 = 1 or
p1 . 0 = - 1 ) & ( for
j being
Element of
NAT holds
p1 . j is
integer ) )
by A11, A52, FINSEQ_1:5;
A55:
p = p1
by A7, A11, A53, FINSEQ_3:55;
consider r being
FinSequence of the
carrier of
F_Complex such that A56:
len r = 0 + 1
and A57:
(unital_poly F_Complex ,k) . 0 = Sum r
and A58:
for
l being
Element of
NAT st
l in dom r holds
r . l = (p . (l -' 1)) * (H1(k) . ((0 + 1) -' l))
by A10, POLYNOM3:def 11;
A59:
(0 + 1) -' 1
= 0
by NAT_D:34;
A60:
1
in dom r
by A56, FINSEQ_3:27;
then reconsider r1 =
r . 1 as
Element of the
carrier of
F_Complex by FINSEQ_2:13;
r = <*r1*>
by A56, FINSEQ_1:57;
then A61:
Sum r =
r . 1
by RLVECT_1:61
.=
(p . 0 ) * (H1(k) . 0 )
by A58, A59, A60
;
A62:
(
H1(
k)
. 0 = 1 or
H1(
k)
. 0 = - 1 )
defpred S4[
Nat]
means H1(
k)
. $1 is
integer ;
A63:
now let m be
Nat;
:: thesis: ( ( for n being Nat st n < m holds
S4[n] ) implies S4[b1] )assume A64:
for
n being
Nat st
n < m holds
S4[
n]
;
:: thesis: S4[b1]reconsider m1 =
m as
Element of
NAT by ORDINAL1:def 13;
consider r being
FinSequence of the
carrier of
F_Complex such that A65:
len r = m + 1
and A66:
(unital_poly F_Complex ,k) . m = Sum r
and A67:
for
l being
Element of
NAT st
l in dom r holds
r . l = (p . (l -' 1)) * (H1(k) . ((m1 + 1) -' l))
by A10, POLYNOM3:def 11;
A68:
1
<= len r
by A65, NAT_1:11;
A69:
(1,1 -cut r) ^ ((1 + 1),(len r) -cut r) = r
by A65, GRAPH_2:9, NAT_1:11;
A70:
1
in dom r
by A68, FINSEQ_3:27;
then reconsider r1 =
r . 1 as
Element of the
carrier of
F_Complex by FINSEQ_2:13;
reconsider r1c =
r1 as
Element of
COMPLEX by COMPLFLD:def 1;
A71:
1,1
-cut r = <*r1*>
by A68, GRAPH_2:6;
set s =
(1 + 1),
(len r) -cut r;
A72:
Sum r = r1 + (Sum ((1 + 1),(len r) -cut r))
by A69, A71, FVSUM_1:89;
reconsider Src =
Sum r as
Element of
COMPLEX by COMPLFLD:def 1;
then reconsider Sr =
Src as
Integer ;
reconsider Ssc =
Sum ((1 + 1),(len r) -cut r) as
Element of
COMPLEX by COMPLFLD:def 1;
now let i be
Element of
NAT ;
:: thesis: ( i in dom ((1 + 1),(len r) -cut r) implies ((1 + 1),(len r) -cut r) . b1 is integer )assume A73:
i in dom ((1 + 1),(len r) -cut r)
;
:: thesis: ((1 + 1),(len r) -cut r) . b1 is integer per cases
( len r < 2 or 1 + 1 <= len r )
;
suppose A74:
1
+ 1
<= len r
;
:: thesis: ((1 + 1),(len r) -cut r) . b1 is integer then A75:
(len ((1 + 1),(len r) -cut r)) + (1 + 1) = (len r) + 1
by GRAPH_2:def 1;
per cases
( m = 0 or m > 0 )
;
suppose A76:
m > 0
;
:: thesis: ((1 + 1),(len r) -cut r) . b1 is integer A77:
( 1
<= i &
i <= len ((1 + 1),(len r) -cut r) )
by A73, FINSEQ_3:27;
i <> 0
by A73, FINSEQ_3:27;
then consider i1 being
Nat such that A78:
i = i1 + 1
by NAT_1:6;
i1 < len ((1 + 1),(len r) -cut r)
by A77, A78, NAT_1:13;
then A79:
((1 + 1),(len r) -cut r) . i =
r . ((1 + 1) + i1)
by A74, A78, GRAPH_2:def 1
.=
r . (1 + i)
by A78
;
(
i <> 0 &
m <> 0 )
by A73, A76, FINSEQ_3:27;
then reconsider cpkmi =
H1(
k)
. (m -' i) as
Integer by A64, NAT_2:11;
reconsider ppi =
p . i as
Integer by A54, A55;
( 1
<= i + 1 &
i + 1
<= (len ((1 + 1),(len r) -cut r)) + 1 )
by A77, NAT_1:11, XREAL_1:8;
then
1
+ i in dom r
by A75, FINSEQ_3:27;
then r . (1 + i) =
(p . ((1 + i) -' 1)) * (H1(k) . ((m + 1) -' (1 + i)))
by A67
.=
(p . ((i + 1) -' 1)) * (H1(k) . (((m + 1) -' 1) -' i))
by NAT_2:32
.=
(p . i) * (H1(k) . (((m + 1) -' 1) -' i))
by NAT_D:34
.=
ppi * cpkmi
by NAT_D:34
;
hence
((1 + 1),(len r) -cut r) . i is
integer
by A79;
:: thesis: verum end; end; end; end; end; then reconsider Ss =
Ssc as
Integer by Th5;
r1c = Sr - Ss
by A72;
then reconsider r1i =
r1 as
Integer ;
A80:
r1i =
(p . (1 -' 1)) * (H1(k) . ((m + 1) -' 1))
by A67, A70
.=
(p . 0 ) * (H1(k) . m1)
by A59, NAT_D:34
;
end;
for
i being
Nat holds
S4[
i]
from NAT_1:sch 4(A63);
hence
S1[
k]
by A62;
:: thesis: verum end; end; end;
for d being non empty Element of NAT holds S1[d]
from UNIROOTS:sch 1(A2);
hence
for d being non empty Element of NAT
for i being Element of NAT holds
( ( (cyclotomic_poly d) . 0 = 1 or (cyclotomic_poly d) . 0 = - 1 ) & (cyclotomic_poly d) . i is integer )
; :: thesis: verum