:: RVSUM_1 semantic presentation

Lemma20: for a, b being real number holds multreal . a,b = a * b
proof end;

Lemma25: for a, b being complex number holds multcomplex . a,b = a * b
proof end;

theorem Th1: :: RVSUM_1:1
canceled;

theorem Th2: :: RVSUM_1:2
canceled;

theorem Th3: :: RVSUM_1:3
0 is_a_unity_wrt addreal by BINOP_2:2, SETWISEO:22;

definition
redefine func diffreal -> Relation of [:REAL ,REAL :], REAL equals :: RVSUM_1:def 1
addreal * (id REAL ),compreal ;
compatibility
for b1 being Relation of [:REAL ,REAL :], REAL holds
( b1 = diffreal iff b1 = addreal * (id REAL ),compreal )
proof end;
correctness
;
end;

:: deftheorem Def1 defines diffreal RVSUM_1:def 1 :
diffreal = addreal * (id REAL ),compreal ;

Lemma45: for r1, r2 being Element of REAL holds diffreal . r1,r2 = r1 - r2
by BINOP_2:def 10;

definition
func sqrreal -> UnOp of REAL means :Def2: :: RVSUM_1:def 2
for r being Element of REAL holds it . r = r ^2 ;
existence
ex b1 being UnOp of REAL st
for r being Element of REAL holds b1 . r = r ^2
proof end;
uniqueness
for b1, b2 being UnOp of REAL st ( for r being Element of REAL holds b1 . r = r ^2 ) & ( for r being Element of REAL holds b2 . r = r ^2 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 defines sqrreal RVSUM_1:def 2 :
for b1 being UnOp of REAL holds
( b1 = sqrreal iff for r being Element of REAL holds b1 . r = r ^2 );

theorem Th4: :: RVSUM_1:4
canceled;

theorem Th5: :: RVSUM_1:5
canceled;

theorem Th6: :: RVSUM_1:6
canceled;

theorem Th7: :: RVSUM_1:7
canceled;

theorem Th8: :: RVSUM_1:8
canceled;

theorem Th9: :: RVSUM_1:9
canceled;

theorem Th10: :: RVSUM_1:10
canceled;

theorem Th11: :: RVSUM_1:11
canceled;

theorem Th12: :: RVSUM_1:12
canceled;

theorem Th13: :: RVSUM_1:13
1 is_a_unity_wrt multreal by BINOP_2:7, SETWISEO:22;

theorem Th14: :: RVSUM_1:14
canceled;

theorem Th15: :: RVSUM_1:15
canceled;

theorem Th16: :: RVSUM_1:16
multreal is_distributive_wrt addreal
proof end;

theorem Th17: :: RVSUM_1:17
sqrreal is_distributive_wrt multreal
proof end;

definition
let x be real number ;
func c1 multreal -> UnOp of REAL equals :: RVSUM_1:def 3
multreal [;] x,(id REAL );
coherence
multreal [;] x,(id REAL ) is UnOp of REAL
proof end;
end;

:: deftheorem Def3 defines multreal RVSUM_1:def 3 :
for x being real number holds x multreal = multreal [;] x,(id REAL );

Lemma55: for r, x being Element of REAL holds (multreal [;] r,(id REAL )) . x = r * x
proof end;

theorem Th18: :: RVSUM_1:18
canceled;

theorem Th19: :: RVSUM_1:19
for r, x being Element of REAL holds (r multreal ) . x = r * x by ;

theorem Th20: :: RVSUM_1:20
for r being Element of REAL holds r multreal is_distributive_wrt addreal by , FINSEQOP:55;

theorem Th21: :: RVSUM_1:21
compreal is_an_inverseOp_wrt addreal
proof end;

theorem Th22: :: RVSUM_1:22
addreal has_an_inverseOp by , FINSEQOP:def 2;

theorem Th23: :: RVSUM_1:23
the_inverseOp_wrt addreal = compreal by , , FINSEQOP:def 3;

theorem Th24: :: RVSUM_1:24
compreal is_distributive_wrt addreal by , , FINSEQOP:67;

definition
let F1 be FinSequence of REAL ;
let F2 be FinSequence of REAL ;
func c1 + c2 -> FinSequence of REAL equals :: RVSUM_1:def 4
addreal .: F1,F2;
correctness
coherence
addreal .: F1,F2 is FinSequence of REAL
;
;
commutativity
for b1, F1, F2 being FinSequence of REAL st b1 = addreal .: F1,F2 holds
b1 = addreal .: F2,F1
proof end;
end;

:: deftheorem Def4 defines + RVSUM_1:def 4 :
for F1, F2 being FinSequence of REAL holds F1 + F2 = addreal .: F1,F2;

theorem Th25: :: RVSUM_1:25
canceled;

theorem Th26: :: RVSUM_1:26
for i being Element of NAT
for F1, F2 being FinSequence of REAL st i in dom (F1 + F2) holds
(F1 + F2) . i = (F1 . i) + (F2 . i)
proof end;

definition
let i be Element of NAT ;
let R1 be Element of i -tuples_on REAL ;
let R2 be Element of i -tuples_on REAL ;
redefine func + as c2 + c3 -> Element of a1 -tuples_on REAL ;
coherence
R1 + R2 is Element of i -tuples_on REAL
by FINSEQ_2:140;
end;

theorem Th27: :: RVSUM_1:27
for i, j being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds (R1 + R2) . j = (R1 . j) + (R2 . j)
proof end;

theorem Th28: :: RVSUM_1:28
for F being FinSequence of REAL holds (<*> REAL ) + F = <*> REAL by FINSEQ_2:87;

theorem Th29: :: RVSUM_1:29
for r1, r2 being Element of REAL holds <*r1*> + <*r2*> = <*(r1 + r2)*>
proof end;

theorem Th30: :: RVSUM_1:30
for i being Element of NAT
for r1, r2 being Element of REAL holds (i |-> r1) + (i |-> r2) = i |-> (r1 + r2)
proof end;

theorem Th31: :: RVSUM_1:31
canceled;

theorem Th32: :: RVSUM_1:32
for i being Element of NAT
for R1, R2, R3 being Element of i -tuples_on REAL holds R1 + (R2 + R3) = (R1 + R2) + R3 by FINSEQOP:29;

theorem Th33: :: RVSUM_1:33
for i being Element of NAT
for R being Element of i -tuples_on REAL holds R + (i |-> 0) = R by BINOP_2:2, FINSEQOP:57;

definition
let F be FinSequence of REAL ;
func - c1 -> FinSequence of REAL equals :: RVSUM_1:def 5
compreal * F;
correctness
coherence
compreal * F is FinSequence of REAL
;
;
involutiveness
for b1, b2 being FinSequence of REAL st b1 = compreal * b2 holds
b2 = compreal * b1
proof end;
end;

:: deftheorem Def5 defines - RVSUM_1:def 5 :
for F being FinSequence of REAL holds - F = compreal * F;

theorem Th34: :: RVSUM_1:34
for F being FinSequence of REAL holds dom F = dom (- F)
proof end;

theorem Th35: :: RVSUM_1:35
for i being Element of NAT
for F being FinSequence of REAL holds (- F) . i = - (F . i)
proof end;

definition
let i be Element of NAT ;
let R be Element of i -tuples_on REAL ;
redefine func - as - c2 -> Element of a1 -tuples_on REAL ;
coherence
- R is Element of i -tuples_on REAL
by FINSEQ_2:133;
end;

theorem Th36: :: RVSUM_1:36
for i, j being Element of NAT
for r being Element of REAL
for R being Element of i -tuples_on REAL st r = R . j holds
(- R) . j = - r by ;

theorem Th37: :: RVSUM_1:37
- (<*> REAL ) = <*> REAL by FINSEQ_2:38;

theorem Th38: :: RVSUM_1:38
for r being Element of REAL holds - <*r*> = <*(- r)*>
proof end;

theorem Th39: :: RVSUM_1:39
for i being Element of NAT
for r being Element of REAL holds - (i |-> r) = i |-> (- r)
proof end;

theorem Th40: :: RVSUM_1:40
for i being Element of NAT
for R being Element of i -tuples_on REAL holds R + (- R) = i |-> 0 by , , BINOP_2:2, FINSEQOP:77;

theorem Th41: :: RVSUM_1:41
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL st R1 + R2 = i |-> 0 holds
R1 = - R2 by , , BINOP_2:2, FINSEQOP:78;

theorem Th42: :: RVSUM_1:42
canceled;

theorem Th43: :: RVSUM_1:43
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL st - R1 = - R2 holds
R1 = R2
proof end;

theorem Th44: :: RVSUM_1:44
for i being Element of NAT
for R1, R, R2 being Element of i -tuples_on REAL st R1 + R = R2 + R holds
R1 = R2
proof end;

theorem Th45: :: RVSUM_1:45
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds - (R1 + R2) = (- R1) + (- R2)
proof end;

definition
let F1 be FinSequence of REAL ;
let F2 be FinSequence of REAL ;
func c1 - c2 -> FinSequence of REAL equals :: RVSUM_1:def 6
diffreal .: F1,F2;
coherence
diffreal .: F1,F2 is FinSequence of REAL
;
end;

:: deftheorem Def6 defines - RVSUM_1:def 6 :
for F1, F2 being FinSequence of REAL holds F1 - F2 = diffreal .: F1,F2;

theorem Th46: :: RVSUM_1:46
canceled;

theorem Th47: :: RVSUM_1:47
for i being Element of NAT
for F1, F2 being FinSequence of REAL st i in dom (F1 - F2) holds
(F1 - F2) . i = (F1 . i) - (F2 . i)
proof end;

definition
let i be Element of NAT ;
let R1 be Element of i -tuples_on REAL ;
let R2 be Element of i -tuples_on REAL ;
redefine func - as c2 - c3 -> Element of a1 -tuples_on REAL ;
coherence
R1 - R2 is Element of i -tuples_on REAL
by FINSEQ_2:140;
end;

theorem Th48: :: RVSUM_1:48
for i, j being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds (R1 - R2) . j = (R1 . j) - (R2 . j)
proof end;

theorem Th49: :: RVSUM_1:49
for F being FinSequence of REAL holds
( (<*> REAL ) - F = <*> REAL & F - (<*> REAL ) = <*> REAL ) by FINSEQ_2:87;

theorem Th50: :: RVSUM_1:50
for r1, r2 being Element of REAL holds <*r1*> - <*r2*> = <*(r1 - r2)*>
proof end;

theorem Th51: :: RVSUM_1:51
for i being Element of NAT
for r1, r2 being Element of REAL holds (i |-> r1) - (i |-> r2) = i |-> (r1 - r2)
proof end;

theorem Th52: :: RVSUM_1:52
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds R1 - R2 = R1 + (- R2) by FINSEQOP:89;

theorem Th53: :: RVSUM_1:53
for i being Element of NAT
for R being Element of i -tuples_on REAL holds R - (i |-> 0) = R
proof end;

theorem Th54: :: RVSUM_1:54
for i being Element of NAT
for R being Element of i -tuples_on REAL holds (i |-> 0) - R = - R
proof end;

theorem Th55: :: RVSUM_1:55
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds R1 - (- R2) = R1 + R2
proof end;

theorem Th56: :: RVSUM_1:56
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds - (R1 - R2) = R2 - R1
proof end;

theorem Th57: :: RVSUM_1:57
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds - (R1 - R2) = (- R1) + R2
proof end;

theorem Th58: :: RVSUM_1:58
for i being Element of NAT
for R being Element of i -tuples_on REAL holds R - R = i |-> 0
proof end;

theorem Th59: :: RVSUM_1:59
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL st R1 - R2 = i |-> 0 holds
R1 = R2
proof end;

theorem Th60: :: RVSUM_1:60
for i being Element of NAT
for R1, R2, R3 being Element of i -tuples_on REAL holds (R1 - R2) - R3 = R1 - (R2 + R3)
proof end;

theorem Th61: :: RVSUM_1:61
for i being Element of NAT
for R1, R2, R3 being Element of i -tuples_on REAL holds R1 + (R2 - R3) = (R1 + R2) - R3
proof end;

theorem Th62: :: RVSUM_1:62
for i being Element of NAT
for R1, R2, R3 being Element of i -tuples_on REAL holds R1 - (R2 - R3) = (R1 - R2) + R3
proof end;

theorem Th63: :: RVSUM_1:63
for i being Element of NAT
for R1, R being Element of i -tuples_on REAL holds R1 = (R1 + R) - R
proof end;

theorem Th64: :: RVSUM_1:64
for i being Element of NAT
for R1, R being Element of i -tuples_on REAL holds R1 = (R1 - R) + R
proof end;

definition
let r be real number ;
let F be FinSequence of REAL ;
func c1 * c2 -> FinSequence of REAL equals :: RVSUM_1:def 7
(r multreal ) * F;
coherence
(r multreal ) * F is FinSequence of REAL
;
end;

:: deftheorem Def7 defines * RVSUM_1:def 7 :
for r being real number
for F being FinSequence of REAL holds r * F = (r multreal ) * F;

theorem Th65: :: RVSUM_1:65
for r being Element of REAL
for F being FinSequence of REAL holds dom (r * F) = dom F
proof end;

theorem Th66: :: RVSUM_1:66
for i being Element of NAT
for r being Element of REAL
for F being FinSequence of REAL holds (r * F) . i = r * (F . i)
proof end;

definition
let i be Element of NAT ;
let r be real number ;
let R be Element of i -tuples_on REAL ;
redefine func * as c2 * c3 -> Element of a1 -tuples_on REAL ;
coherence
r * R is Element of i -tuples_on REAL
by FINSEQ_2:133;
end;

theorem Th67: :: RVSUM_1:67
for i, j being Element of NAT
for r being Element of REAL
for R being Element of i -tuples_on REAL holds (r * R) . j = r * (R . j) by ;

theorem Th68: :: RVSUM_1:68
for r being Element of REAL holds r * (<*> REAL ) = <*> REAL by FINSEQ_2:38;

theorem Th69: :: RVSUM_1:69
for r, r1 being Element of REAL holds r * <*r1*> = <*(r * r1)*>
proof end;

theorem Th70: :: RVSUM_1:70
for i being Element of NAT
for r1, r2 being Element of REAL holds r1 * (i |-> r2) = i |-> (r1 * r2)
proof end;

theorem Th71: :: RVSUM_1:71
for i being Element of NAT
for r1, r2 being Element of REAL
for R being Element of i -tuples_on REAL holds (r1 * r2) * R = r1 * (r2 * R)
proof end;

theorem Th72: :: RVSUM_1:72
for i being Element of NAT
for r1, r2 being Element of REAL
for R being Element of i -tuples_on REAL holds (r1 + r2) * R = (r1 * R) + (r2 * R)
proof end;

theorem Th73: :: RVSUM_1:73
for i being Element of NAT
for r being Element of REAL
for R1, R2 being Element of i -tuples_on REAL holds r * (R1 + R2) = (r * R1) + (r * R2)
proof end;

theorem Th74: :: RVSUM_1:74
for i being Element of NAT
for R being Element of i -tuples_on REAL holds 1 * R = R
proof end;

theorem Th75: :: RVSUM_1:75
for i being Element of NAT
for R being Element of i -tuples_on REAL holds 0 * R = i |-> 0
proof end;

theorem Th76: :: RVSUM_1:76
for i being Element of NAT
for R being Element of i -tuples_on REAL holds (- 1) * R = - R
proof end;

definition
let F be FinSequence of REAL ;
func sqr c1 -> FinSequence of REAL equals :: RVSUM_1:def 8
sqrreal * F;
coherence
sqrreal * F is FinSequence of REAL
;
end;

:: deftheorem Def8 defines sqr RVSUM_1:def 8 :
for F being FinSequence of REAL holds sqr F = sqrreal * F;

theorem Th77: :: RVSUM_1:77
for F being FinSequence of REAL holds dom (sqr F) = dom F
proof end;

theorem Th78: :: RVSUM_1:78
for i being Element of NAT
for F being FinSequence of REAL holds (sqr F) . i = (F . i) ^2
proof end;

definition
let i be Element of NAT ;
let R be Element of i -tuples_on REAL ;
redefine func sqr as sqr c2 -> Element of a1 -tuples_on REAL ;
coherence
sqr R is Element of i -tuples_on REAL
by FINSEQ_2:133;
end;

theorem Th79: :: RVSUM_1:79
for i, j being Element of NAT
for R being Element of i -tuples_on REAL holds (sqr R) . j = (R . j) ^2 by ;

theorem Th80: :: RVSUM_1:80
sqr (<*> REAL ) = <*> REAL by FINSEQ_2:38;

theorem Th81: :: RVSUM_1:81
for r being Element of REAL holds sqr <*r*> = <*(r ^2 )*>
proof end;

theorem Th82: :: RVSUM_1:82
for i being Element of NAT
for r being Element of REAL holds sqr (i |-> r) = i |-> (r ^2 )
proof end;

theorem Th83: :: RVSUM_1:83
for i being Element of NAT
for R being Element of i -tuples_on REAL holds sqr (- R) = sqr R
proof end;

theorem Th84: :: RVSUM_1:84
for i being Element of NAT
for r being Element of REAL
for R being Element of i -tuples_on REAL holds sqr (r * R) = (r ^2 ) * (sqr R)
proof end;

definition
let F1 be FinSequence of REAL ;
let F2 be FinSequence of REAL ;
func mlt c1,c2 -> FinSequence of REAL equals :: RVSUM_1:def 9
multreal .: F1,F2;
coherence
multreal .: F1,F2 is FinSequence of REAL
;
commutativity
for b1, F1, F2 being FinSequence of REAL st b1 = multreal .: F1,F2 holds
b1 = multreal .: F2,F1
proof end;
end;

:: deftheorem Def9 defines mlt RVSUM_1:def 9 :
for F1, F2 being FinSequence of REAL holds mlt F1,F2 = multreal .: F1,F2;

theorem Th85: :: RVSUM_1:85
canceled;

theorem Th86: :: RVSUM_1:86
for i being Element of NAT
for F1, F2 being FinSequence of REAL st i in dom (mlt F1,F2) holds
(mlt F1,F2) . i = (F1 . i) * (F2 . i)
proof end;

definition
let i be Element of NAT ;
let R1 be Element of i -tuples_on REAL ;
let R2 be Element of i -tuples_on REAL ;
redefine func mlt as mlt c2,c3 -> Element of a1 -tuples_on REAL ;
coherence
mlt R1,R2 is Element of i -tuples_on REAL
by FINSEQ_2:140;
end;

theorem Th87: :: RVSUM_1:87
for i, j being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds (mlt R1,R2) . j = (R1 . j) * (R2 . j)
proof end;

theorem Th88: :: RVSUM_1:88
for F being FinSequence of REAL holds mlt (<*> REAL ),F = <*> REAL by FINSEQ_2:87;

theorem Th89: :: RVSUM_1:89
for r1, r2 being Element of REAL holds mlt <*r1*>,<*r2*> = <*(r1 * r2)*>
proof end;

theorem Th90: :: RVSUM_1:90
canceled;

theorem Th91: :: RVSUM_1:91
for i being Element of NAT
for R1, R2, R3 being Element of i -tuples_on REAL holds mlt R1,(mlt R2,R3) = mlt (mlt R1,R2),R3 by FINSEQOP:29;

theorem Th92: :: RVSUM_1:92
for i being Element of NAT
for r being Element of REAL
for R being Element of i -tuples_on REAL holds mlt (i |-> r),R = r * R
proof end;

theorem Th93: :: RVSUM_1:93
for i being Element of NAT
for r1, r2 being Element of REAL holds mlt (i |-> r1),(i |-> r2) = i |-> (r1 * r2)
proof end;

theorem Th94: :: RVSUM_1:94
for i being Element of NAT
for r being Element of REAL
for R1, R2 being Element of i -tuples_on REAL holds r * (mlt R1,R2) = mlt (r * R1),R2 by FINSEQOP:27;

theorem Th95: :: RVSUM_1:95
canceled;

theorem Th96: :: RVSUM_1:96
for i being Element of NAT
for r being Element of REAL
for R being Element of i -tuples_on REAL holds r * R = mlt (i |-> r),R by ;

theorem Th97: :: RVSUM_1:97
for i being Element of NAT
for R being Element of i -tuples_on REAL holds sqr R = mlt R,R
proof end;

theorem Th98: :: RVSUM_1:98
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds sqr (R1 + R2) = ((sqr R1) + (2 * (mlt R1,R2))) + (sqr R2)
proof end;

theorem Th99: :: RVSUM_1:99
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds sqr (R1 - R2) = ((sqr R1) - (2 * (mlt R1,R2))) + (sqr R2)
proof end;

theorem Th100: :: RVSUM_1:100
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds sqr (mlt R1,R2) = mlt (sqr R1),(sqr R2) by , FINSEQOP:52;

definition
let F be FinSequence of REAL ;
func Sum c1 -> Real equals :: RVSUM_1:def 10
addreal $$ F;
coherence
addreal $$ F is Real
;
end;

:: deftheorem Def10 defines Sum RVSUM_1:def 10 :
for F being FinSequence of REAL holds Sum F = addreal $$ F;

theorem Th101: :: RVSUM_1:101
canceled;

theorem Th102: :: RVSUM_1:102
Sum (<*> REAL ) = 0 by BINOP_2:2, FINSOP_1:11;

theorem Th103: :: RVSUM_1:103
for r being Element of REAL holds Sum <*r*> = r by FINSOP_1:12;

theorem Th104: :: RVSUM_1:104
for r being Element of REAL
for F being FinSequence of REAL holds Sum (F ^ <*r*>) = (Sum F) + r
proof end;

theorem Th105: :: RVSUM_1:105
for F1, F2 being FinSequence of REAL holds Sum (F1 ^ F2) = (Sum F1) + (Sum F2)
proof end;

theorem Th106: :: RVSUM_1:106
for r being Element of REAL
for F being FinSequence of REAL holds Sum (<*r*> ^ F) = r + (Sum F)
proof end;

theorem Th107: :: RVSUM_1:107
for r1, r2 being Element of REAL holds Sum <*r1,r2*> = r1 + r2
proof end;

theorem Th108: :: RVSUM_1:108
for r1, r2, r3 being Element of REAL holds Sum <*r1,r2,r3*> = (r1 + r2) + r3
proof end;

theorem Th109: :: RVSUM_1:109
for R being Element of 0 -tuples_on REAL holds Sum R = 0 by Th3, FINSEQ_2:113;

theorem Th110: :: RVSUM_1:110
for i being Element of NAT
for r being Element of REAL holds Sum (i |-> r) = i * r
proof end;

theorem Th111: :: RVSUM_1:111
for i being Element of NAT holds Sum (i |-> 0) = 0
proof end;

theorem Th112: :: RVSUM_1:112
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL st ( for j being Element of NAT st j in Seg i holds
R1 . j <= R2 . j ) holds
Sum R1 <= Sum R2
proof end;

theorem Th113: :: RVSUM_1:113
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL st ( for j being Element of NAT st j in Seg i holds
R1 . j <= R2 . j ) & ex j being Element of NAT st
( j in Seg i & R1 . j < R2 . j ) holds
Sum R1 < Sum R2
proof end;

theorem Th114: :: RVSUM_1:114
for F being FinSequence of REAL st ( for i being Element of NAT st i in dom F holds
0 <= F . i ) holds
0 <= Sum F
proof end;

theorem Th115: :: RVSUM_1:115
for F being FinSequence of REAL st ( for i being Element of NAT st i in dom F holds
0 <= F . i ) & ex i being Element of NAT st
( i in dom F & 0 < F . i ) holds
0 < Sum F
proof end;

theorem Th116: :: RVSUM_1:116
for F being FinSequence of REAL holds 0 <= Sum (sqr F)
proof end;

theorem Th117: :: RVSUM_1:117
for r being Element of REAL
for F being FinSequence of REAL holds Sum (r * F) = r * (Sum F)
proof end;

theorem Th118: :: RVSUM_1:118
for F being FinSequence of REAL holds Sum (- F) = - (Sum F)
proof end;

theorem Th119: :: RVSUM_1:119
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds Sum (R1 + R2) = (Sum R1) + (Sum R2)
proof end;

theorem Th120: :: RVSUM_1:120
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds Sum (R1 - R2) = (Sum R1) - (Sum R2)
proof end;

theorem Th121: :: RVSUM_1:121
for i being Element of NAT
for R being Element of i -tuples_on REAL st Sum (sqr R) = 0 holds
R = i |-> 0
proof end;

theorem Th122: :: RVSUM_1:122
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds (Sum (mlt R1,R2)) ^2 <= (Sum (sqr R1)) * (Sum (sqr R2))
proof end;

definition
let F be Relation;
attr a1 is complex-yielding means :Def11: :: RVSUM_1:def 11
rng F c= COMPLEX ;
end;

:: deftheorem Def11 defines complex-yielding RVSUM_1:def 11 :
for F being Relation holds
( F is complex-yielding iff rng F c= COMPLEX );

registration
cluster -> real-yielding FinSequence of REAL ;
coherence
for b1 being FinSequence of REAL holds b1 is real-yielding
proof end;
cluster -> complex-yielding FinSequence of COMPLEX ;
coherence
for b1 being FinSequence of COMPLEX holds b1 is complex-yielding
proof end;
cluster real-yielding -> complex-yielding set ;
coherence
for b1 being FinSequence st b1 is real-yielding holds
b1 is complex-yielding
proof end;
cluster real-yielding complex-yielding set ;
existence
ex b1 being FinSequence st
( b1 is real-yielding & b1 is complex-yielding )
proof end;
end;

definition
let F be complex-yielding FinSequence;
func Product c1 -> complex number means :Def12: :: RVSUM_1:def 12
ex f being FinSequence of COMPLEX st
( f = F & it = multcomplex $$ f );
existence
ex b1 being complex number ex f being FinSequence of COMPLEX st
( f = F & b1 = multcomplex $$ f )
proof end;
uniqueness
for b1, b2 being complex number st ex f being FinSequence of COMPLEX st
( f = F & b1 = multcomplex $$ f ) & ex f being FinSequence of COMPLEX st
( f = F & b2 = multcomplex $$ f ) holds
b1 = b2
;
end;

:: deftheorem Def12 defines Product RVSUM_1:def 12 :
for F being complex-yielding FinSequence
for b2 being complex number holds
( b2 = Product F iff ex f being FinSequence of COMPLEX st
( f = F & b2 = multcomplex $$ f ) );

definition
let F be FinSequence of COMPLEX ;
redefine func Product as Product c1 -> Element of COMPLEX ;
coherence
Product F is Element of COMPLEX
by XCMPLX_0:def 2;
end;

registration
let F be real-yielding FinSequence;
cluster Product a1 -> complex real ;
coherence
Product F is real
proof end;
end;

theorem Th123: :: RVSUM_1:123
for F being FinSequence of REAL holds Product F = multreal $$ F
proof end;

registration
cluster empty -> complex-yielding set ;
coherence
for b1 being FinSequence st b1 is empty holds
b1 is complex-yielding
proof end;
end;

Lemma143: for F being empty FinSequence holds Product F = 1
proof end;

theorem Th124: :: RVSUM_1:124
Product (<*> REAL ) = 1 by ;

registration
let r be complex number ;
cluster <*a1*> -> FinSequence-like complex-yielding ;
coherence
( <*r*> is complex-yielding & <*r*> is FinSequence-like )
proof end;
end;

registration
let r1 be complex number , r2 be complex number ;
cluster <*a1,a2*> -> FinSequence-like complex-yielding ;
coherence
( <*r1,r2*> is complex-yielding & <*r1,r2*> is FinSequence-like )
proof end;
end;

registration
let r1 be complex number , r2 be complex number , r3 be complex number ;
cluster <*a1,a2,a3*> -> FinSequence-like complex-yielding ;
coherence
( <*r1,r2,r3*> is complex-yielding & <*r1,r2,r3*> is FinSequence-like )
proof end;
end;

theorem Th125: :: RVSUM_1:125
for r being complex number holds Product <*r*> = r
proof end;

registration
let f be complex-yielding FinSequence, g be complex-yielding FinSequence;
cluster a1 ^ a2 -> complex-yielding ;
coherence
f ^ g is complex-yielding
proof end;
end;

theorem Th126: :: RVSUM_1:126
for F being complex-yielding FinSequence
for r being complex number holds Product (F ^ <*r*>) = (Product F) * r
proof end;

theorem Th127: :: RVSUM_1:127
for F1, F2 being complex-yielding FinSequence holds Product (F1 ^ F2) = (Product F1) * (Product F2)
proof end;

theorem Th128: :: RVSUM_1:128
for r being Element of REAL
for F being FinSequence of REAL holds Product (<*r*> ^ F) = r * (Product F)
proof end;

theorem Th129: :: RVSUM_1:129
for r1, r2 being complex number holds Product <*r1,r2*> = r1 * r2
proof end;

theorem Th130: :: RVSUM_1:130
for r1, r2, r3 being complex number holds Product <*r1,r2,r3*> = (r1 * r2) * r3
proof end;

theorem Th131: :: RVSUM_1:131
for R being Element of 0 -tuples_on REAL holds Product R = 1 by , FINSEQ_2:113;

registration
let j be Element of NAT ;
let r be real number ;
cluster a1 |-> a2 -> real-yielding complex-yielding ;
coherence
j |-> r is real-yielding
proof end;
end;

theorem Th132: :: RVSUM_1:132
for i being Element of NAT holds Product (i |-> 1) = 1
proof end;

Lemma158: for p being complex-yielding FinSequence st len p <> 0 holds
ex q being complex-yielding FinSequence ex d being complex number st p = q ^ <*d*>
proof end;

theorem Th133: :: RVSUM_1:133
for F being complex-yielding FinSequence holds
( ex k being Element of NAT st
( k in dom F & F . k = 0 ) iff Product F = 0 )
proof end;

theorem Th134: :: RVSUM_1:134
for i, j being Element of NAT
for r being Element of REAL holds Product ((i + j) |-> r) = (Product (i |-> r)) * (Product (j |-> r))
proof end;

theorem Th135: :: RVSUM_1:135
for i, j being Element of NAT
for r being Element of REAL holds Product ((i * j) |-> r) = Product (j |-> (Product (i |-> r)))
proof end;

theorem Th136: :: RVSUM_1:136
for i being Element of NAT
for r1, r2 being Element of REAL holds Product (i |-> (r1 * r2)) = (Product (i |-> r1)) * (Product (i |-> r2))
proof end;

theorem Th137: :: RVSUM_1:137
for i being Element of NAT
for R1, R2 being Element of i -tuples_on REAL holds Product (mlt R1,R2) = (Product R1) * (Product R2)
proof end;

theorem Th138: :: RVSUM_1:138
for i being Element of NAT
for r being Element of REAL
for R being Element of i -tuples_on REAL holds Product (r * R) = (Product (i |-> r)) * (Product R)
proof end;

theorem Th139: :: RVSUM_1:139
for i being Element of NAT
for R being Element of i -tuples_on REAL holds Product (sqr R) = (Product R) ^2
proof end;

definition
let i be Nat;
let z be Element of COMPLEX ;
redefine func |-> as c1 |-> c2 -> FinSequence of COMPLEX ;
coherence
i |-> z is FinSequence of COMPLEX
proof end;
end;

theorem Th140: :: RVSUM_1:140
for F being FinSequence of COMPLEX holds Product F = multcomplex $$ F
proof end;

theorem Th141: :: RVSUM_1:141
for i, j being Element of NAT
for z being Element of COMPLEX holds Product ((i + j) |-> z) = (Product (i |-> z)) * (Product (j |-> z))
proof end;

theorem Th142: :: RVSUM_1:142
for i, j being Element of NAT
for z being Element of COMPLEX holds Product ((i * j) |-> z) = Product (j |-> (Product (i |-> z)))
proof end;

theorem Th143: :: RVSUM_1:143
for i being Element of NAT
for z1, z2 being Element of COMPLEX holds Product (i |-> (z1 * z2)) = (Product (i |-> z1)) * (Product (i |-> z2))
proof end;