:: RVSUM_1 semantic presentation

Lemma1: for b1, b2 being real number holds multreal . b1,b2 = b1 * b2
proof end;

Lemma2: for b1, b2 being complex number holds multcomplex . b1,b2 = b1 * b2
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 ;

Lemma4: for b1, b2 being Element of REAL holds diffreal . b1,b2 = b1 - b2
by BINOP_2:def 10;

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

:: deftheorem Def2 defines sqrreal RVSUM_1:def 2 :
for b1 being UnOp of REAL holds
( b1 = sqrreal iff for b2 being Element of REAL holds b1 . b2 = b2 ^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 c1 be real number ;
func c1 multreal -> UnOp of REAL equals :: RVSUM_1:def 3
multreal [;] a1,(id REAL );
coherence
multreal [;] c1,(id REAL ) is UnOp of REAL
proof end;
end;

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

Lemma8: for b1, b2 being Element of REAL holds (multreal [;] b1,(id REAL )) . b2 = b1 * b2
proof end;

theorem Th18: :: RVSUM_1:18
canceled;

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

theorem Th20: :: RVSUM_1:20
for b1 being Element of REAL holds b1 multreal is_distributive_wrt addreal by Th16, 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 Th21, FINSEQOP:def 2;

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

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

definition
let c1, c2 be FinSequence of REAL ;
func c1 + c2 -> FinSequence of REAL equals :: RVSUM_1:def 4
addreal .: a1,a2;
correctness
coherence
addreal .: c1,c2 is FinSequence of REAL
;
;
commutativity
for b1, b2, b3 being FinSequence of REAL holds
( b1 = addreal .: b2,b3 implies b1 = addreal .: b3,b2 )
proof end;
end;

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

theorem Th25: :: RVSUM_1:25
canceled;

theorem Th26: :: RVSUM_1:26
for b1 being Nat
for b2, b3 being FinSequence of REAL holds
( b1 in dom (b2 + b3) implies (b2 + b3) . b1 = (b2 . b1) + (b3 . b1) )
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of c1 -tuples_on REAL ;
redefine func + as c2 + c3 -> Element of a1 -tuples_on REAL ;
coherence
c2 + c3 is Element of c1 -tuples_on REAL
by FINSEQ_2:140;
end;

theorem Th27: :: RVSUM_1:27
for b1, b2 being Nat
for b3, b4 being Element of b1 -tuples_on REAL holds (b3 + b4) . b2 = (b3 . b2) + (b4 . b2)
proof end;

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

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

theorem Th30: :: RVSUM_1:30
for b1 being Nat
for b2, b3 being Element of REAL holds (b1 |-> b2) + (b1 |-> b3) = b1 |-> (b2 + b3)
proof end;

theorem Th31: :: RVSUM_1:31
canceled;

theorem Th32: :: RVSUM_1:32
for b1 being Nat
for b2, b3, b4 being Element of b1 -tuples_on REAL holds b2 + (b3 + b4) = (b2 + b3) + b4 by FINSEQOP:29;

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

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

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

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

theorem Th35: :: RVSUM_1:35
for b1 being Nat
for b2 being FinSequence of REAL holds (- b2) . b1 = - (b2 . b1)
proof end;

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

theorem Th36: :: RVSUM_1:36
for b1, b2 being Nat
for b3 being Element of REAL
for b4 being Element of b1 -tuples_on REAL holds
( b3 = b4 . b2 implies (- b4) . b2 = - b3 ) by Th35;

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

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

theorem Th39: :: RVSUM_1:39
for b1 being Nat
for b2 being Element of REAL holds - (b1 |-> b2) = b1 |-> (- b2)
proof end;

theorem Th40: :: RVSUM_1:40
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds b2 + (- b2) = b1 |-> 0 by Th22, Th23, BINOP_2:2, FINSEQOP:77;

theorem Th41: :: RVSUM_1:41
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds
( b2 + b3 = b1 |-> 0 implies b2 = - b3 ) by Th22, Th23, BINOP_2:2, FINSEQOP:78;

theorem Th42: :: RVSUM_1:42
canceled;

theorem Th43: :: RVSUM_1:43
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds
( - b2 = - b3 implies b2 = b3 )
proof end;

theorem Th44: :: RVSUM_1:44
for b1 being Nat
for b2, b3, b4 being Element of b1 -tuples_on REAL holds
( b2 + b3 = b4 + b3 implies b2 = b4 )
proof end;

theorem Th45: :: RVSUM_1:45
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds - (b2 + b3) = (- b2) + (- b3)
proof end;

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

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

theorem Th46: :: RVSUM_1:46
canceled;

theorem Th47: :: RVSUM_1:47
for b1 being Nat
for b2, b3 being FinSequence of REAL holds
( b1 in dom (b2 - b3) implies (b2 - b3) . b1 = (b2 . b1) - (b3 . b1) )
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of c1 -tuples_on REAL ;
redefine func - as c2 - c3 -> Element of a1 -tuples_on REAL ;
coherence
c2 - c3 is Element of c1 -tuples_on REAL
by FINSEQ_2:140;
end;

theorem Th48: :: RVSUM_1:48
for b1, b2 being Nat
for b3, b4 being Element of b1 -tuples_on REAL holds (b3 - b4) . b2 = (b3 . b2) - (b4 . b2)
proof end;

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

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

theorem Th51: :: RVSUM_1:51
for b1 being Nat
for b2, b3 being Element of REAL holds (b1 |-> b2) - (b1 |-> b3) = b1 |-> (b2 - b3)
proof end;

theorem Th52: :: RVSUM_1:52
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds b2 - b3 = b2 + (- b3) by FINSEQOP:89;

theorem Th53: :: RVSUM_1:53
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds b2 - (b1 |-> 0) = b2
proof end;

theorem Th54: :: RVSUM_1:54
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds (b1 |-> 0) - b2 = - b2
proof end;

theorem Th55: :: RVSUM_1:55
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds b2 - (- b3) = b2 + b3
proof end;

theorem Th56: :: RVSUM_1:56
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds - (b2 - b3) = b3 - b2
proof end;

theorem Th57: :: RVSUM_1:57
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds - (b2 - b3) = (- b2) + b3
proof end;

theorem Th58: :: RVSUM_1:58
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds b2 - b2 = b1 |-> 0
proof end;

theorem Th59: :: RVSUM_1:59
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds
( b2 - b3 = b1 |-> 0 implies b2 = b3 )
proof end;

theorem Th60: :: RVSUM_1:60
for b1 being Nat
for b2, b3, b4 being Element of b1 -tuples_on REAL holds (b2 - b3) - b4 = b2 - (b3 + b4)
proof end;

theorem Th61: :: RVSUM_1:61
for b1 being Nat
for b2, b3, b4 being Element of b1 -tuples_on REAL holds b2 + (b3 - b4) = (b2 + b3) - b4
proof end;

theorem Th62: :: RVSUM_1:62
for b1 being Nat
for b2, b3, b4 being Element of b1 -tuples_on REAL holds b2 - (b3 - b4) = (b2 - b3) + b4
proof end;

theorem Th63: :: RVSUM_1:63
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds b2 = (b2 + b3) - b3
proof end;

theorem Th64: :: RVSUM_1:64
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds b2 = (b2 - b3) + b3
proof end;

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

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

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

theorem Th66: :: RVSUM_1:66
for b1 being Nat
for b2 being Element of REAL
for b3 being FinSequence of REAL holds (b2 * b3) . b1 = b2 * (b3 . b1)
proof end;

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

theorem Th67: :: RVSUM_1:67
for b1, b2 being Nat
for b3 being Element of REAL
for b4 being Element of b1 -tuples_on REAL holds (b3 * b4) . b2 = b3 * (b4 . b2) by Th66;

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

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

theorem Th70: :: RVSUM_1:70
for b1 being Nat
for b2, b3 being Element of REAL holds b2 * (b1 |-> b3) = b1 |-> (b2 * b3)
proof end;

theorem Th71: :: RVSUM_1:71
for b1 being Nat
for b2, b3 being Element of REAL
for b4 being Element of b1 -tuples_on REAL holds (b2 * b3) * b4 = b2 * (b3 * b4)
proof end;

theorem Th72: :: RVSUM_1:72
for b1 being Nat
for b2, b3 being Element of REAL
for b4 being Element of b1 -tuples_on REAL holds (b2 + b3) * b4 = (b2 * b4) + (b3 * b4)
proof end;

theorem Th73: :: RVSUM_1:73
for b1 being Nat
for b2 being Element of REAL
for b3, b4 being Element of b1 -tuples_on REAL holds b2 * (b3 + b4) = (b2 * b3) + (b2 * b4)
proof end;

theorem Th74: :: RVSUM_1:74
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds 1 * b2 = b2
proof end;

theorem Th75: :: RVSUM_1:75
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds 0 * b2 = b1 |-> 0
proof end;

theorem Th76: :: RVSUM_1:76
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds (- 1) * b2 = - b2
proof end;

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

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

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

theorem Th78: :: RVSUM_1:78
for b1 being Nat
for b2 being FinSequence of REAL holds (sqr b2) . b1 = (b2 . b1) ^2
proof end;

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

theorem Th79: :: RVSUM_1:79
for b1, b2 being Nat
for b3 being Element of b1 -tuples_on REAL holds (sqr b3) . b2 = (b3 . b2) ^2 by Th78;

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

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

theorem Th82: :: RVSUM_1:82
for b1 being Nat
for b2 being Element of REAL holds sqr (b1 |-> b2) = b1 |-> (b2 ^2 )
proof end;

theorem Th83: :: RVSUM_1:83
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds sqr (- b2) = sqr b2
proof end;

theorem Th84: :: RVSUM_1:84
for b1 being Nat
for b2 being Element of REAL
for b3 being Element of b1 -tuples_on REAL holds sqr (b2 * b3) = (b2 ^2 ) * (sqr b3)
proof end;

definition
let c1, c2 be FinSequence of REAL ;
func mlt c1,c2 -> FinSequence of REAL equals :: RVSUM_1:def 9
multreal .: a1,a2;
coherence
multreal .: c1,c2 is FinSequence of REAL
;
commutativity
for b1, b2, b3 being FinSequence of REAL holds
( b1 = multreal .: b2,b3 implies b1 = multreal .: b3,b2 )
proof end;
end;

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

theorem Th85: :: RVSUM_1:85
canceled;

theorem Th86: :: RVSUM_1:86
for b1 being Nat
for b2, b3 being FinSequence of REAL holds
( b1 in dom (mlt b2,b3) implies (mlt b2,b3) . b1 = (b2 . b1) * (b3 . b1) )
proof end;

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

theorem Th87: :: RVSUM_1:87
for b1, b2 being Nat
for b3, b4 being Element of b1 -tuples_on REAL holds (mlt b3,b4) . b2 = (b3 . b2) * (b4 . b2)
proof end;

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

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

theorem Th90: :: RVSUM_1:90
canceled;

theorem Th91: :: RVSUM_1:91
for b1 being Nat
for b2, b3, b4 being Element of b1 -tuples_on REAL holds mlt b2,(mlt b3,b4) = mlt (mlt b2,b3),b4 by FINSEQOP:29;

theorem Th92: :: RVSUM_1:92
for b1 being Nat
for b2 being Element of REAL
for b3 being Element of b1 -tuples_on REAL holds mlt (b1 |-> b2),b3 = b2 * b3
proof end;

theorem Th93: :: RVSUM_1:93
for b1 being Nat
for b2, b3 being Element of REAL holds mlt (b1 |-> b2),(b1 |-> b3) = b1 |-> (b2 * b3)
proof end;

theorem Th94: :: RVSUM_1:94
for b1 being Nat
for b2 being Element of REAL
for b3, b4 being Element of b1 -tuples_on REAL holds b2 * (mlt b3,b4) = mlt (b2 * b3),b4 by FINSEQOP:27;

theorem Th95: :: RVSUM_1:95
canceled;

theorem Th96: :: RVSUM_1:96
for b1 being Nat
for b2 being Element of REAL
for b3 being Element of b1 -tuples_on REAL holds b2 * b3 = mlt (b1 |-> b2),b3 by Th92;

theorem Th97: :: RVSUM_1:97
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds sqr b2 = mlt b2,b2
proof end;

theorem Th98: :: RVSUM_1:98
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds sqr (b2 + b3) = ((sqr b2) + (2 * (mlt b2,b3))) + (sqr b3)
proof end;

theorem Th99: :: RVSUM_1:99
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds sqr (b2 - b3) = ((sqr b2) - (2 * (mlt b2,b3))) + (sqr b3)
proof end;

theorem Th100: :: RVSUM_1:100
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds sqr (mlt b2,b3) = mlt (sqr b2),(sqr b3) by Th17, FINSEQOP:52;

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

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

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 b1 being Element of REAL holds Sum <*b1*> = b1 by FINSOP_1:12;

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

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

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

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

theorem Th108: :: RVSUM_1:108
for b1, b2, b3 being Element of REAL holds Sum <*b1,b2,b3*> = (b1 + b2) + b3
proof end;

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

theorem Th110: :: RVSUM_1:110
for b1 being Nat
for b2 being Element of REAL holds Sum (b1 |-> b2) = b1 * b2
proof end;

theorem Th111: :: RVSUM_1:111
for b1 being Nat holds Sum (b1 |-> 0) = 0
proof end;

theorem Th112: :: RVSUM_1:112
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds
( ( for b4 being Nat holds
( b4 in Seg b1 implies b2 . b4 <= b3 . b4 ) ) implies Sum b2 <= Sum b3 )
proof end;

theorem Th113: :: RVSUM_1:113
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds
not ( ( for b4 being Nat holds
( b4 in Seg b1 implies b2 . b4 <= b3 . b4 ) ) & ex b4 being Nat st
( b4 in Seg b1 & b2 . b4 < b3 . b4 ) & not Sum b2 < Sum b3 )
proof end;

theorem Th114: :: RVSUM_1:114
for b1 being FinSequence of REAL holds
( ( for b2 being Nat holds
( b2 in dom b1 implies 0 <= b1 . b2 ) ) implies 0 <= Sum b1 )
proof end;

theorem Th115: :: RVSUM_1:115
for b1 being FinSequence of REAL holds
not ( ( for b2 being Nat holds
( b2 in dom b1 implies 0 <= b1 . b2 ) ) & ex b2 being Nat st
( b2 in dom b1 & 0 < b1 . b2 ) & not 0 < Sum b1 )
proof end;

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

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

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

theorem Th119: :: RVSUM_1:119
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds Sum (b2 + b3) = (Sum b2) + (Sum b3)
proof end;

theorem Th120: :: RVSUM_1:120
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds Sum (b2 - b3) = (Sum b2) - (Sum b3)
proof end;

theorem Th121: :: RVSUM_1:121
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds
( Sum (sqr b2) = 0 implies b2 = b1 |-> 0 )
proof end;

theorem Th122: :: RVSUM_1:122
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds (Sum (mlt b2,b3)) ^2 <= (Sum (sqr b2)) * (Sum (sqr b3))
proof end;

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

:: deftheorem Def11 defines complex-yielding RVSUM_1:def 11 :
for b1 being Relation holds
( b1 is complex-yielding iff rng b1 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 holds
( b1 is real-yielding implies 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 c1 be complex-yielding FinSequence;
func Product c1 -> complex number means :Def12: :: RVSUM_1:def 12
ex b1 being FinSequence of COMPLEX st
( b1 = a1 & a2 = multcomplex $$ b1 );
existence
ex b1 being complex number ex b2 being FinSequence of COMPLEX st
( b2 = c1 & b1 = multcomplex $$ b2 )
proof end;
uniqueness
for b1, b2 being complex number holds
( ex b3 being FinSequence of COMPLEX st
( b3 = c1 & b1 = multcomplex $$ b3 ) & ex b3 being FinSequence of COMPLEX st
( b3 = c1 & b2 = multcomplex $$ b3 ) implies b1 = b2 )
;
end;

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

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

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

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

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

Lemma62: for b1 being empty FinSequence holds Product b1 = 1
proof end;

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

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

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

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

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

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

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

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

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

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

theorem Th130: :: RVSUM_1:130
for b1, b2, b3 being complex number holds Product <*b1,b2,b3*> = (b1 * b2) * b3
proof end;

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

registration
let c1 be Nat;
let c2 be real number ;
cluster a1 |-> a2 -> real-yielding complex-yielding ;
coherence
c1 |-> c2 is real-yielding
proof end;
end;

theorem Th132: :: RVSUM_1:132
for b1 being Nat holds Product (b1 |-> 1) = 1
proof end;

Lemma68: for b1 being complex-yielding FinSequence holds
not ( len b1 <> 0 & ( for b2 being complex-yielding FinSequence
for b3 being complex number holds
not b1 = b2 ^ <*b3*> ) )
proof end;

theorem Th133: :: RVSUM_1:133
for b1 being complex-yielding FinSequence holds
( ex b2 being Nat st
( b2 in dom b1 & b1 . b2 = 0 ) iff Product b1 = 0 )
proof end;

theorem Th134: :: RVSUM_1:134
for b1, b2 being Nat
for b3 being Element of REAL holds Product ((b1 + b2) |-> b3) = (Product (b1 |-> b3)) * (Product (b2 |-> b3))
proof end;

theorem Th135: :: RVSUM_1:135
for b1, b2 being Nat
for b3 being Element of REAL holds Product ((b1 * b2) |-> b3) = Product (b2 |-> (Product (b1 |-> b3)))
proof end;

theorem Th136: :: RVSUM_1:136
for b1 being Nat
for b2, b3 being Element of REAL holds Product (b1 |-> (b2 * b3)) = (Product (b1 |-> b2)) * (Product (b1 |-> b3))
proof end;

theorem Th137: :: RVSUM_1:137
for b1 being Nat
for b2, b3 being Element of b1 -tuples_on REAL holds Product (mlt b2,b3) = (Product b2) * (Product b3)
proof end;

theorem Th138: :: RVSUM_1:138
for b1 being Nat
for b2 being Element of REAL
for b3 being Element of b1 -tuples_on REAL holds Product (b2 * b3) = (Product (b1 |-> b2)) * (Product b3)
proof end;

theorem Th139: :: RVSUM_1:139
for b1 being Nat
for b2 being Element of b1 -tuples_on REAL holds Product (sqr b2) = (Product b2) ^2
proof end;