:: UPROOTS semantic presentation
theorem Th1: :: UPROOTS:1
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
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 c1 be non
degenerated comRing;
let c2 be
Element of
c1;
let c3 be
Polynomial of
c1;
assume E50:
c2 is_a_root_of c3
;
func poly_quotient c3,
c2 -> Polynomial of
a1 means :
Def7:
:: UPROOTS:def 7
(
(len a4) + 1
= len a3 & ( for
b1 being
Nat holds
a4 . b1 = eval (poly_shift a3,(b1 + 1)),
a2 ) )
if len a3 > 0
otherwise a4 = 0_. a1;
existence
( ( len c3 > 0 implies ex b1 being Polynomial of c1 st
( (len b1) + 1 = len c3 & ( for b2 being Nat holds b1 . b2 = eval (poly_shift c3,(b2 + 1)),c2 ) ) ) & ( not len c3 > 0 implies ex b1 being Polynomial of c1 st 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 c1 be
domRing;
let c2 be
non-zero Polynomial of
c1;
c2 <> 0_. c1
by Def5;
then
len c2 <> 0
by POLYNOM4:8;
then
len c2 > 0
;
then E56:
len c2 >= 0
+ 1
by NAT_1:38;
defpred S1[
Nat]
means for
b1 being
Polynomial of
c1 st
len b1 = a1 holds
(
Roots b1 is
finite & ex
b2 being
Nat st
(
b2 = Card (Roots b1) &
b2 < len b1 ) );
E57:
S1[1]
E58:
for
b1 being
Nat st
b1 >= 1 &
S1[
b1] holds
S1[
b1 + 1]
proof
let c3 be
Nat;
assume that E59:
c3 >= 1
and E60:
S1[
c3]
;
let c4 be
Polynomial of
c1;
assume E61:
len c4 = c3 + 1
;
then E62:
len c4 > 1
by E59, NAT_1:38;
per cases
( c4 is with_roots or not c4 is with_roots )
;
suppose
c4 is
with_roots
;
then consider c5 being
Element of
c1 such that E63:
c5 is_a_root_of c4
by POLYNOM5:def 7;
E64:
len c4 > 0
by E62;
E65:
c4 = <%(- c5),(1. c1)%> *' (poly_quotient c4,c5)
by E63, Th52;
set c6 =
<%(- c5),(1. c1)%>;
set c7 =
poly_quotient c4,
c5;
E66:
(len (poly_quotient c4,c5)) + 1
= len c4
by E63, E64, Def7;
then E67:
len (poly_quotient c4,c5) = c3
by E61;
then E68:
Roots (poly_quotient c4,c5) is
finite
by E60;
E69:
Roots <%(- c5),(1. c1)%> = {c5}
by Th50;
Roots c4 = (Roots <%(- c5),(1. c1)%>) \/ (Roots (poly_quotient c4,c5))
by E65, Th25;
hence
Roots c4 is
finite
by E68, E69, FINSET_1:14;
consider c8 being
Nat such that E70:
c8 = Card (Roots (poly_quotient c4,c5))
and E71:
c8 < len (poly_quotient c4,c5)
by E60, E67;
reconsider c9 =
Roots (poly_quotient c4,c5) as
finite set by E60, E67;
reconsider c10 =
Roots <%(- c5),(1. c1)%> as
finite set by E69;
reconsider c11 =
c9 \/ c10 as
finite set ;
take c12 =
card c11;
thus
c12 = Card (Roots c4)
by E65, Th25;
card c10 = 1
by E69, CARD_1:79;
then E72:
card c11 <= c8 + 1
by E70, CARD_2:62;
c8 + 1
< c3 + 1
by E61, E66, E71, XREAL_1:10;
hence
c12 < len c4
by E61, E72, XREAL_1:2;
end;
end;
end;
for
b1 being
Nat st
b1 >= 1 holds
S1[
b1]
from INT_2:sch 1(E57, E58);
hence
(
Roots c2 is
finite & ex
b1 being
Nat st
(
b1 = Card (Roots c2) &
b1 < len c2 ) )
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