:: Hilbert Space of Complex Sequences
:: by Noboru Endou
::
:: Copyright (c) 2004-2019 Association of Mizar Users

Lm1: for seq being Complex_Sequence holds Partial_Sums (seq *') = (Partial_Sums seq) *'
proof end;

Lm2: for a, b being Real holds 0 <= (a ^2) + (b ^2)
proof end;

Lm3: for z1, z2 being Complex st (Re z1) * (Im z2) = (Re z2) * (Im z1) & ((Re z1) * (Re z2)) + ((Im z1) * (Im z2)) >= 0 holds
|.(z1 + z2).| = |.z1.| + |.z2.|

proof end;

Lm4: for seq being Complex_Sequence
for n being Nat st ( for i being Nat holds
( (Re seq) . i >= 0 & (Im seq) . i = 0 ) ) holds
|.(Partial_Sums seq).| . n = () . n

proof end;

Lm5: for seq being Complex_Sequence st seq is summable holds
Sum (seq *') = (Sum seq) *'

proof end;

Lm6: for seq being Complex_Sequence st seq is absolutely_summable holds
|.(Sum seq).| <= Sum |.seq.|

proof end;

Lm7: for seq being Complex_Sequence st seq is summable & ( for n being Nat holds
( (Re seq) . n >= 0 & (Im seq) . n = 0 ) ) holds
|.(Sum seq).| = Sum |.seq.|

proof end;

Lm8: for seq being Complex_Sequence
for n being Nat holds
( (Re (seq (#) (seq *'))) . n >= 0 & (Im (seq (#) (seq *'))) . n = 0 )

proof end;

Lm9: for x being set holds
( x is Element of Complex_l2_Space iff ( x is Complex_Sequence & |.().| (#) |.().| is summable ) )

proof end;

Lm10:
proof end;

Lm12: for u, v being VECTOR of Complex_l2_Space holds u + v = () + ()
proof end;

Lm13: for r being Complex
for u being VECTOR of Complex_l2_Space holds r * u = r (#) ()

proof end;

Lm14: for u being VECTOR of Complex_l2_Space holds
( - u = - () & seq_id (- u) = - () )

proof end;

Lm15: for u, v being VECTOR of Complex_l2_Space holds u - v = () - ()
proof end;

Lm16: for v, w being VECTOR of Complex_l2_Space holds |.().| (#) |.().| is summable
proof end;

Lm18: for seq being Complex_Sequence holds |.seq.| = |.(seq *').|
proof end;

Lm19: for x being set holds
( x is Element of Complex_l2_Space iff ( x is Complex_Sequence & () (#) (() *') is absolutely_summable ) )

proof end;

theorem :: CSSPACE2:1
( the carrier of Complex_l2_Space = the_set_of_l2ComplexSequences & ( for x being set holds
( x is Element of Complex_l2_Space iff ( x is Complex_Sequence & |.().| (#) |.().| is summable ) ) ) & ( for x being set holds
( x is Element of Complex_l2_Space iff ( x is Complex_Sequence & () (#) (() *') is absolutely_summable ) ) ) & 0. Complex_l2_Space = CZeroseq & ( for u being VECTOR of Complex_l2_Space holds u = seq_id u ) & ( for u, v being VECTOR of Complex_l2_Space holds u + v = () + () ) & ( for r being Complex
for u being VECTOR of Complex_l2_Space holds r * u = r (#) () ) & ( for u being VECTOR of Complex_l2_Space holds
( - u = - () & seq_id (- u) = - () ) ) & ( for u, v being VECTOR of Complex_l2_Space holds u - v = () - () ) & ( for v, w being VECTOR of Complex_l2_Space holds
( |.().| (#) |.().| is summable & ( for v, w being VECTOR of Complex_l2_Space holds v .|. w = Sum (() (#) (() *')) ) ) ) ) by ;

theorem Th2: :: CSSPACE2:2
for x, y, z being Point of Complex_l2_Space
for a being Complex holds
( ( x .|. x = 0 implies x = 0. Complex_l2_Space ) & ( x = 0. Complex_l2_Space implies x .|. x = 0 ) & Re (x .|. x) >= 0 & Im (x .|. x) = 0 & x .|. y = (y .|. x) *' & (x + y) .|. z = (x .|. z) + (y .|. z) & (a * x) .|. y = a * (x .|. y) )
proof end;

registration end;

Lm20: for x, y being Complex holds 2 * |.(x * y).| <= () + ()
proof end;

Lm21: for x, y being Complex holds
( |.(x + y).| * |.(x + y).| <= ((2 * |.x.|) * |.x.|) + ((2 * |.y.|) * |.y.|) & |.x.| * |.x.| <= ((2 * |.(x - y).|) * |.(x - y).|) + ((2 * |.y.|) * |.y.|) )

proof end;

Lm22: for c being Complex
for seq being Complex_Sequence st seq is convergent holds
for rseq being Real_Sequence st ( for m being Nat holds rseq . m = |.((seq . m) - c).| * |.((seq . m) - c).| ) holds
( rseq is convergent & lim rseq = |.((lim seq) - c).| * |.((lim seq) - c).| )

proof end;

Lm23: for c being Complex
for seq1 being Real_Sequence
for seq being Complex_Sequence st seq is convergent & seq1 is convergent holds
for rseq being Real_Sequence st ( for i being Nat holds rseq . i = (|.((seq . i) - c).| * |.((seq . i) - c).|) + (seq1 . i) ) holds
( rseq is convergent & lim rseq = (|.((lim seq) - c).| * |.((lim seq) - c).|) + (lim seq1) )

proof end;

registration
coherence
proof end;
end;

registration
existence
ex b1 being ComplexUnitarySpace st b1 is complete
proof end;
end;

definition end;

theorem :: CSSPACE2:3
for z1, z2 being Complex st (Re z1) * (Im z2) = (Re z2) * (Im z1) & ((Re z1) * (Re z2)) + ((Im z1) * (Im z2)) >= 0 holds
|.(z1 + z2).| = |.z1.| + |.z2.| by Lm3;

theorem :: CSSPACE2:4
for x, y being Complex holds 2 * |.(x * y).| <= () + () by Lm20;

theorem :: CSSPACE2:5
for x, y being Complex holds
( |.(x + y).| * |.(x + y).| <= ((2 * |.x.|) * |.x.|) + ((2 * |.y.|) * |.y.|) & |.x.| * |.x.| <= ((2 * |.(x - y).|) * |.(x - y).|) + ((2 * |.y.|) * |.y.|) ) by Lm21;

theorem :: CSSPACE2:6
canceled;

::\$CT
theorem :: CSSPACE2:7
for seq being Complex_Sequence holds Partial_Sums (seq *') = (Partial_Sums seq) *' by Lm1;

theorem :: CSSPACE2:8
for seq being Complex_Sequence
for n being Nat st ( for i being Nat holds
( (Re seq) . i >= 0 & (Im seq) . i = 0 ) ) holds
|.(Partial_Sums seq).| . n = () . n by Lm4;

theorem :: CSSPACE2:9
for seq being Complex_Sequence st seq is summable holds
Sum (seq *') = (Sum seq) *' by Lm5;

theorem :: CSSPACE2:10
for seq being Complex_Sequence st seq is absolutely_summable holds
|.(Sum seq).| <= Sum |.seq.| by Lm6;

theorem :: CSSPACE2:11
for seq being Complex_Sequence st seq is summable & ( for n being Nat holds
( (Re seq) . n >= 0 & (Im seq) . n = 0 ) ) holds
|.(Sum seq).| = Sum |.seq.| by Lm7;

theorem :: CSSPACE2:12
for seq being Complex_Sequence
for n being Nat holds
( (Re (seq (#) (seq *'))) . n >= 0 & (Im (seq (#) (seq *'))) . n = 0 ) by Lm8;

theorem :: CSSPACE2:13
for seq being Complex_Sequence st seq is absolutely_summable & Sum |.seq.| = 0 holds
for n being Nat holds seq . n = 0c
proof end;

theorem :: CSSPACE2:14
for seq being Complex_Sequence holds |.seq.| = |.(seq *').| by Lm18;

theorem :: CSSPACE2:15
for c being Complex
for seq being Complex_Sequence st seq is convergent holds
for rseq being Real_Sequence st ( for m being Nat holds rseq . m = |.((seq . m) - c).| * |.((seq . m) - c).| ) holds
( rseq is convergent & lim rseq = |.((lim seq) - c).| * |.((lim seq) - c).| ) by Lm22;

theorem :: CSSPACE2:16
for c being Complex
for seq1 being Real_Sequence
for seq being Complex_Sequence st seq is convergent & seq1 is convergent holds
for rseq being Real_Sequence st ( for i being Nat holds rseq . i = (|.((seq . i) - c).| * |.((seq . i) - c).|) + (seq1 . i) ) holds
( rseq is convergent & lim rseq = (|.((lim seq) - c).| * |.((lim seq) - c).|) + (lim seq1) ) by Lm23;