:: UPROOTS semantic presentation
theorem Th1: :: UPROOTS:1
for b
1 being
natural number holds
( not ( not b
1 is
empty & not b
1 = 1 & not b
1 > 1 ) & not ( not ( not b
1 = 1 & not b
1 > 1 ) & b
1 is
empty ) )
theorem Th2: :: UPROOTS:2
theorem Th3: :: UPROOTS:3
:: deftheorem Def1 defines canFS UPROOTS:def 1 :
theorem Th4: :: UPROOTS:4
theorem Th5: :: UPROOTS:5
theorem Th6: :: UPROOTS:6
theorem Th7: :: UPROOTS:7
:: deftheorem Def2 defines -bag UPROOTS:def 2 :
theorem Th8: :: UPROOTS:8
theorem Th9: :: UPROOTS:9
theorem Th10: :: UPROOTS:10
theorem Th11: :: UPROOTS:11
theorem Th12: :: UPROOTS:12
:: deftheorem Def3 defines Sum UPROOTS:def 3 :
:: deftheorem Def4 defines degree UPROOTS:def 4 :
theorem Th13: :: UPROOTS:13
theorem Th14: :: UPROOTS:14
theorem Th15: :: UPROOTS:15
theorem Th16: :: UPROOTS:16
theorem Th17: :: UPROOTS:17
for b
1 being
set for b
2, b
3, b
4 being
Rbag of b
1 holds
( b
2 = b
3 + b
4 implies
Sum b
2 = (Sum b3) + (Sum b4) )
theorem Th18: :: UPROOTS:18
:: deftheorem Def5 defines non-zero UPROOTS:def 5 :
theorem Th19: :: UPROOTS:19
theorem Th20: :: UPROOTS:20
theorem Th21: :: UPROOTS:21
theorem Th22: :: UPROOTS:22
theorem Th23: :: UPROOTS:23
theorem Th24: :: UPROOTS:24
theorem Th25: :: UPROOTS:25
theorem Th26: :: UPROOTS:26
theorem Th27: :: UPROOTS:27
theorem Th28: :: UPROOTS:28
theorem Th29: :: UPROOTS:29
theorem Th30: :: UPROOTS:30
theorem Th31: :: UPROOTS:31
theorem Th32: :: UPROOTS:32
theorem Th33: :: UPROOTS:33
theorem Th34: :: UPROOTS:34
theorem Th35: :: UPROOTS:35
theorem Th36: :: UPROOTS:36
theorem Th37: :: UPROOTS:37
theorem Th38: :: UPROOTS:38
theorem Th39: :: UPROOTS:39
theorem Th40: :: UPROOTS:40
theorem Th41: :: UPROOTS:41
theorem Th42: :: UPROOTS:42
theorem Th43: :: UPROOTS:43
:: deftheorem Def6 defines poly_shift UPROOTS:def 6 :
theorem Th44: :: UPROOTS:44
theorem Th45: :: UPROOTS:45
theorem Th46: :: UPROOTS:46
theorem Th47: :: UPROOTS:47
theorem Th48: :: UPROOTS:48
definition
let c
1 be non
degenerated comRing;
let c
2 be
Element of c
1;
let c
3 be
Polynomial of c
1;
assume E50:
c
2 is_a_root_of c
3
;
func poly_quotient c
3,c
2 -> Polynomial of a
1 means :
Def7:
:: UPROOTS:def 7
(
(len a4) + 1
= len a
3 & ( for b
1 being
Nat holds a
4 . b
1 = eval (poly_shift a3,(b1 + 1)),a
2 ) )
if len a
3 > 0
otherwise a
4 = 0_. a
1;
existence
( not ( len c3 > 0 & ( for b1 being Polynomial of c1 holds
not ( (len b1) + 1 = len c3 & ( for b2 being Nat holds b1 . b2 = eval (poly_shift c3,(b2 + 1)),c2 ) ) ) ) & not ( not len c3 > 0 & ( for b1 being Polynomial of c1 holds
not b1 = 0_. c1 ) ) )
uniqueness
for b1, b2 being Polynomial of c1 holds
( ( len c3 > 0 & (len b1) + 1 = len c3 & ( for b3 being Nat holds b1 . b3 = eval (poly_shift c3,(b3 + 1)),c2 ) & (len b2) + 1 = len c3 & ( for b3 being Nat holds b2 . b3 = eval (poly_shift c3,(b3 + 1)),c2 ) implies b1 = b2 ) & ( not len c3 > 0 & b1 = 0_. c1 & b2 = 0_. c1 implies b1 = b2 ) )
consistency
for b1 being Polynomial of c1 holds
verum
;
end;
:: deftheorem Def7 defines poly_quotient UPROOTS:def 7 :
theorem Th49: :: UPROOTS:49
theorem Th50: :: UPROOTS:50
theorem Th51: :: UPROOTS:51
theorem Th52: :: UPROOTS:52
theorem Th53: :: UPROOTS:53
E55:
now
let c
1 be
domRing;
let c
2 be
non-zero Polynomial of c
1;
c
2 <> 0_. c
1
by Def5;
then
len c
2 <> 0
by POLYNOM4:8;
then
len c
2 > 0
;
then E56:
len c
2 >= 0
+ 1
by NAT_1:38;
defpred S
1[
Nat] means for b
1 being
Polynomial of c
1 holds
(
len b
1 = a
1 implies (
Roots b
1 is
finite & ex b
2 being
Nat st
( b
2 = Card (Roots b1) & b
2 < len b
1 ) ) );
E57:
S
1[1]
E58:
for b
1 being
Nat holds
( b
1 >= 1 & S
1[b
1] implies S
1[b
1 + 1] )
proof
let c
3 be
Nat;
assume that E59:
c
3 >= 1
and E60:
S
1[c
3]
;
let c
4 be
Polynomial of c
1;
assume E61:
len c
4 = c
3 + 1
;
then E62:
len c
4 > 1
by E59, NAT_1:38;
per cases
not ( not c4 is with_roots & c4 is with_roots )
;
suppose
c
4 is
with_roots
;
then consider c
5 being
Element of c
1 such that E63:
c
5 is_a_root_of c
4
by POLYNOM5:def 7;
E64:
len c
4 > 0
by E62;
E65:
c
4 = <%(- c5),(1. c1)%> *' (poly_quotient c4,c5)
by E63, Th52;
set c
6 =
<%(- c5),(1. c1)%>;
set c
7 =
poly_quotient c
4,c
5;
E66:
(len (poly_quotient c4,c5)) + 1
= len c
4
by E63, E64, Def7;
then E67:
len (poly_quotient c4,c5) = c
3
by E61;
then E68:
Roots (poly_quotient c4,c5) is
finite
by E60;
E69:
Roots <%(- c5),(1. c1)%> = {c5}
by Th50;
Roots c
4 = (Roots <%(- c5),(1. c1)%>) \/ (Roots (poly_quotient c4,c5))
by E65, Th25;
hence
Roots c
4 is
finite
by E68, E69, FINSET_1:14;
consider c
8 being
Nat such that E70:
c
8 = Card (Roots (poly_quotient c4,c5))
and E71:
c
8 < len (poly_quotient c4,c5)
by E60, E67;
reconsider c
9 =
Roots (poly_quotient c4,c5) as
finite set by E60, E67;
reconsider c
10 =
Roots <%(- c5),(1. c1)%> as
finite set by E69;
reconsider c
11 = c
9 \/ c
10 as
finite set ;
take c
12 =
card c
11;
thus
c
12 = Card (Roots c4)
by E65, Th25;
card c
10 = 1
by E69, CARD_1:79;
then E72:
card c
11 <= c
8 + 1
by E70, CARD_2:62;
c
8 + 1
< c
3 + 1
by E61, E66, E71, XREAL_1:10;
hence
c
12 < len c
4
by E61, E72, XREAL_1:2;
end;
end;
end;
for b
1 being
Nat holds
( b
1 >= 1 implies S
1[b
1] )
from NAT_1:sch 9(E57, E58);
hence
(
Roots c
2 is
finite & ex b
1 being
Nat st
( b
1 = Card (Roots c2) & b
1 < len c
2 ) )
by E56;
end;
:: deftheorem Def8 defines multiplicity UPROOTS:def 8 :
theorem Th54: :: UPROOTS:54
theorem Th55: :: UPROOTS:55
:: deftheorem Def9 defines BRoots UPROOTS:def 9 :
theorem Th56: :: UPROOTS:56
theorem Th57: :: UPROOTS:57
theorem Th58: :: UPROOTS:58
theorem Th59: :: UPROOTS:59
theorem Th60: :: UPROOTS:60
theorem Th61: :: UPROOTS:61
:: deftheorem Def10 defines fpoly_mult_root UPROOTS:def 10 :
:: deftheorem Def11 defines poly_with_roots UPROOTS:def 11 :
theorem Th62: :: UPROOTS:62
theorem Th63: :: UPROOTS:63
theorem Th64: :: UPROOTS:64
theorem Th65: :: UPROOTS:65
theorem Th66: :: UPROOTS:66
theorem Th67: :: UPROOTS:67
theorem Th68: :: UPROOTS:68
theorem Th69: :: UPROOTS:69