let X be RealHilbertSpace; :: thesis: for M being Subspace of X
for x being Point of X st the carrier of M is closed Subset of (TopSpaceNorm (RUSp2RNSp X)) holds
ex m0 being Point of X st
( m0 in M & ( for m being Point of X st m in M holds
||.(x - m0).|| <= ||.(x - m).|| ) )

let M be Subspace of X; :: thesis: for x being Point of X st the carrier of M is closed Subset of (TopSpaceNorm (RUSp2RNSp X)) holds
ex m0 being Point of X st
( m0 in M & ( for m being Point of X st m in M holds
||.(x - m0).|| <= ||.(x - m).|| ) )

let x be Point of X; :: thesis: ( the carrier of M is closed Subset of (TopSpaceNorm (RUSp2RNSp X)) implies ex m0 being Point of X st
( m0 in M & ( for m being Point of X st m in M holds
||.(x - m0).|| <= ||.(x - m).|| ) ) )

assume A1: the carrier of M is closed Subset of (TopSpaceNorm (RUSp2RNSp X)) ; :: thesis: ex m0 being Point of X st
( m0 in M & ( for m being Point of X st m in M holds
||.(x - m0).|| <= ||.(x - m).|| ) )

per cases ( x in M or not x in M ) ;
suppose A3: x in M ; :: thesis: ex m0 being Point of X st
( m0 in M & ( for m being Point of X st m in M holds
||.(x - m0).|| <= ||.(x - m).|| ) )

take m0 = x; :: thesis: ( m0 in M & ( for m being Point of X st m in M holds
||.(x - m0).|| <= ||.(x - m).|| ) )

thus m0 in M by A3; :: thesis: for m being Point of X st m in M holds
||.(x - m0).|| <= ||.(x - m).||

let m be Point of X; :: thesis: ( m in M implies ||.(x - m0).|| <= ||.(x - m).|| )
assume m in M ; :: thesis: ||.(x - m0).|| <= ||.(x - m).||
x - m0 = 0. X by RLVECT_1:15;
then ||.(x - m0).|| = 0 by BHSP_1:26;
hence ||.(x - m0).|| <= ||.(x - m).|| by BHSP_1:28; :: thesis: verum
end;
suppose not x in M ; :: thesis: ex m0 being Point of X st
( m0 in M & ( for m being Point of X st m in M holds
||.(x - m0).|| <= ||.(x - m).|| ) )

set B = { ||.(x - m).|| where m is Point of X : m in M } ;
0. X in M by RUSUB_1:11;
then A4: ||.(x - (0. X)).|| in { ||.(x - m).|| where m is Point of X : m in M } ;
{ ||.(x - m).|| where m is Point of X : m in M } c= REAL
proof
let r be object ; :: according to TARSKI:def 3 :: thesis: ( not r in { ||.(x - m).|| where m is Point of X : m in M } or r in REAL )
assume r in { ||.(x - m).|| where m is Point of X : m in M } ; :: thesis: r in REAL
then ex m being Point of X st
( r = ||.(x - m).|| & m in M ) ;
hence r in REAL by XREAL_0:def 1; :: thesis: verum
end;
then reconsider B = { ||.(x - m).|| where m is Point of X : m in M } as real-membered set ;
reconsider r0 = 0 as Real ;
A5: now :: thesis: for r being ExtReal st r in B holds
r0 <= r
let r be ExtReal; :: thesis: ( r in B implies r0 <= r )
assume r in B ; :: thesis: r0 <= r
then ex m being Point of X st
( r = ||.(x - m).|| & m in M ) ;
hence r0 <= r by BHSP_1:28; :: thesis: verum
end;
A6: B is bounded_below
proof
reconsider r0 = 0 as Real ;
take r0 ; :: according to XXREAL_2:def 9 :: thesis: r0 is LowerBound of B
let r be ExtReal; :: according to XXREAL_2:def 2 :: thesis: ( not r in B or r0 <= r )
assume r in B ; :: thesis: r0 <= r
then ex m being Point of X st
( r = ||.(x - m).|| & m in M ) ;
hence r0 <= r by BHSP_1:28; :: thesis: verum
end;
set delta = lower_bound B;
reconsider B = B as non empty real-membered bounded_below set by A6, A4;
A7: lower_bound B = inf B ;
r0 is LowerBound of B by A5, XXREAL_2:def 2;
then A8: r0 <= lower_bound B by A7, XXREAL_2:def 4;
defpred S1[ Nat, Real] means ( $2 in B & |.($2 - (lower_bound B)).| < 1 / ($1 + 1) );
A9: for n being Element of NAT ex y being Element of REAL st S1[n,y]
proof
let n be Element of NAT ; :: thesis: ex y being Element of REAL st S1[n,y]
consider r being Real such that
A10: ( r in B & r < (lower_bound B) + (1 / (n + 1)) ) by SEQ_4:def 2;
lower_bound B <= r by A10, SEQ_4:def 2;
then (lower_bound B) - (1 / (n + 1)) < r - 0 by XREAL_1:15;
then r in { r where r is Real : ( (lower_bound B) - (1 / (n + 1)) < r & r < (lower_bound B) + (1 / (n + 1)) ) } by A10;
then A11: r in ].((lower_bound B) - (1 / (n + 1))),((lower_bound B) + (1 / (n + 1))).[ by RCOMP_1:def 2;
reconsider r = r as Element of REAL by XREAL_0:def 1;
take r ; :: thesis: S1[n,r]
thus ( r in B & |.(r - (lower_bound B)).| < 1 / (n + 1) ) by A10, A11, RCOMP_1:1; :: thesis: verum
end;
consider seq being Function of NAT,REAL such that
A12: for n being Element of NAT holds S1[n,seq . n] from FUNCT_2:sch 3(A9);
reconsider seq = seq as Real_Sequence ;
A13: for p being Real st 0 < p holds
ex n being Nat st
for m being Nat st n <= m holds
|.((seq . m) - (lower_bound B)).| < p
proof
let p be Real; :: thesis: ( 0 < p implies ex n being Nat st
for m being Nat st n <= m holds
|.((seq . m) - (lower_bound B)).| < p )

assume A14: 0 < p ; :: thesis: ex n being Nat st
for m being Nat st n <= m holds
|.((seq . m) - (lower_bound B)).| < p

consider n being Nat such that
A15: p " < n by SEQ_4:3;
(p ") + 0 < n + 1 by XREAL_1:8, A15;
then A16: (n + 1) " < (p ") " by XREAL_1:88, A14;
take n ; :: thesis: for m being Nat st n <= m holds
|.((seq . m) - (lower_bound B)).| < p

let m be Nat; :: thesis: ( n <= m implies |.((seq . m) - (lower_bound B)).| < p )
assume n <= m ; :: thesis: |.((seq . m) - (lower_bound B)).| < p
then n + 1 <= m + 1 by XREAL_1:7;
then A17: 1 / (m + 1) <= 1 / (n + 1) by XREAL_1:118;
m is Element of NAT by ORDINAL1:def 12;
then |.((seq . m) - (lower_bound B)).| < 1 / (n + 1) by XXREAL_0:2, A17, A12;
hence |.((seq . m) - (lower_bound B)).| < p by A16, XXREAL_0:2; :: thesis: verum
end;
then A18: seq is convergent ;
then lim seq = lower_bound B by SEQ_2:def 7, A13;
then A20: ( seq (#) seq is convergent & lim (seq (#) seq) = (lower_bound B) * (lower_bound B) ) by SEQ_2:15, A18;
defpred S2[ Nat, Point of X] means ( $2 in M & seq . $1 = ||.($2 - x).|| );
A21: for n being Element of NAT ex y being Element of the carrier of X st S2[n,y]
proof
let n be Element of NAT ; :: thesis: ex y being Element of the carrier of X st S2[n,y]
seq . n in B by A12;
then consider y being Point of X such that
A22: ( seq . n = ||.(x - y).|| & y in M ) ;
take y ; :: thesis: S2[n,y]
thus y in M by A22; :: thesis: seq . n = ||.(y - x).||
thus seq . n = ||.(- (y - x)).|| by A22, RLVECT_1:33
.= ||.(y - x).|| by BHSP_1:31 ; :: thesis: verum
end;
consider xseq being Function of NAT, the carrier of X such that
A23: for n being Element of NAT holds S2[n,xseq . n] from FUNCT_2:sch 3(A21);
reconsider xseq = xseq as sequence of X ;
for n being Element of NAT holds seq . n = ||.(xseq - x).|| . n
proof
let n be Element of NAT ; :: thesis: seq . n = ||.(xseq - x).|| . n
thus seq . n = ||.((xseq . n) - x).|| by A23
.= ||.((xseq - x) . n).|| by NORMSP_1:def 4
.= ||.(xseq - x).|| . n by BHSP_2:def 3 ; :: thesis: verum
end;
then A24: seq = ||.(xseq - x).|| by FUNCT_2:63;
A26: rng xseq c= the carrier of M
proof
let z be object ; :: according to TARSKI:def 3 :: thesis: ( not z in rng xseq or z in the carrier of M )
assume z in rng xseq ; :: thesis: z in the carrier of M
then consider i being Element of NAT such that
A25: z = xseq . i by FUNCT_2:113;
thus z in the carrier of M by A25, STRUCT_0:def 5, A23; :: thesis: verum
end;
A27: now :: thesis: for i, j being Nat holds ||.((xseq . i) - (xseq . j)).|| ^2 <= ((2 * ((seq (#) seq) . i)) + (2 * ((seq (#) seq) . j))) - (4 * ((lower_bound B) ^2))
let i, j be Nat; :: thesis: ||.((xseq . i) - (xseq . j)).|| ^2 <= ((2 * ((seq (#) seq) . i)) + (2 * ((seq (#) seq) . j))) - (4 * ((lower_bound B) ^2))
set u = (xseq . i) - x;
set v = (xseq . j) - x;
A28: ((xseq . i) - x) - ((xseq . j) - x) = (((xseq . i) - x) - (xseq . j)) + x by RLVECT_1:29
.= ((xseq . i) - (x + (xseq . j))) + x by RLVECT_1:27
.= (((xseq . i) - (xseq . j)) - x) + x by RLVECT_1:27
.= (xseq . i) - (xseq . j) by RLVECT_4:1 ;
((xseq . i) - x) + ((xseq . j) - x) = ((xseq . i) + ((- x) + (xseq . j))) - x by RLVECT_1:def 3
.= (((xseq . i) + (xseq . j)) - x) - x by RLVECT_1:def 3
.= (((xseq . i) + (xseq . j)) - (1 * x)) - x by RLVECT_1:def 8
.= (((xseq . i) + (xseq . j)) - (1 * x)) - (1 * x) by RLVECT_1:def 8
.= ((xseq . i) + (xseq . j)) - ((1 * x) + (1 * x)) by RLVECT_1:27
.= ((xseq . i) + (xseq . j)) - ((1 + 1) * x) by RLVECT_1:def 6
.= ((1 * (xseq . i)) + (xseq . j)) - (2 * x) by RLVECT_1:def 8
.= ((1 * (xseq . i)) + (1 * (xseq . j))) - (2 * x) by RLVECT_1:def 8
.= ((2 * (1 / 2)) * ((xseq . i) + (xseq . j))) - (2 * x) by RLVECT_1:def 5
.= (2 * ((1 / 2) * ((xseq . i) + (xseq . j)))) - (2 * x) by RLVECT_1:def 7
.= 2 * (((1 / 2) * ((xseq . i) + (xseq . j))) - x) by RLVECT_1:34 ;
then A29: ||.(((xseq . i) - x) + ((xseq . j) - x)).|| ^2 = (|.2.| * ||.(((1 / 2) * ((xseq . i) + (xseq . j))) - x).||) ^2 by BHSP_1:27
.= (|.2.| ^2) * (||.(((1 / 2) * ((xseq . i) + (xseq . j))) - x).|| ^2)
.= (2 ^2) * (||.(((1 / 2) * ((xseq . i) + (xseq . j))) - x).|| ^2) by ABSVALUE:def 1
.= (2 * 2) * (||.(((1 / 2) * ((xseq . i) + (xseq . j))) - x).|| ^2) ;
A30: ( i is Element of NAT & j is Element of NAT ) by ORDINAL1:def 12;
then ( xseq . i in M & xseq . j in M ) by A23;
then (xseq . i) + (xseq . j) in M by RUSUB_1:14;
then (1 / 2) * ((xseq . i) + (xseq . j)) in M by RUSUB_1:15;
then ||.(x - ((1 / 2) * ((xseq . i) + (xseq . j)))).|| in B ;
then ||.(- (x - ((1 / 2) * ((xseq . i) + (xseq . j))))).|| in B by BHSP_1:31;
then ||.(((1 / 2) * ((xseq . i) + (xseq . j))) - x).|| in B by RLVECT_1:33;
then lower_bound B <= ||.(((1 / 2) * ((xseq . i) + (xseq . j))) - x).|| by SEQ_4:def 2;
then (lower_bound B) ^2 <= ||.(((1 / 2) * ((xseq . i) + (xseq . j))) - x).|| ^2 by A8, SQUARE_1:15;
then A31: 4 * ((lower_bound B) ^2) <= ||.(((xseq . i) - x) + ((xseq . j) - x)).|| ^2 by A29, XREAL_1:64;
(||.(((xseq . i) - x) + ((xseq . j) - x)).|| ^2) + (||.(((xseq . i) - x) - ((xseq . j) - x)).|| ^2) = (2 * (||.((xseq . i) - x).|| ^2)) + (2 * (||.((xseq . j) - x).|| ^2)) by BHSP_5:5;
then A32: ((||.(((xseq . i) - x) + ((xseq . j) - x)).|| ^2) + (||.(((xseq . i) - x) - ((xseq . j) - x)).|| ^2)) - (||.(((xseq . i) - x) + ((xseq . j) - x)).|| ^2) <= ((2 * (||.((xseq . i) - x).|| ^2)) + (2 * (||.((xseq . j) - x).|| ^2))) - (4 * ((lower_bound B) ^2)) by XREAL_1:13, A31;
A33: ( ||.((xseq . i) - x).|| = seq . i & ||.((xseq . j) - x).|| = seq . j ) by A23, A30;
then ||.((xseq . i) - x).|| ^2 = (seq (#) seq) . i by SEQ_1:8;
hence ||.((xseq . i) - (xseq . j)).|| ^2 <= ((2 * ((seq (#) seq) . i)) + (2 * ((seq (#) seq) . j))) - (4 * ((lower_bound B) ^2)) by A28, A32, SEQ_1:8, A33; :: thesis: verum
end;
for r being Real st r > 0 holds
ex k being Nat st
for n, m being Nat st n >= k & m >= k holds
||.((xseq . n) - (xseq . m)).|| < r
proof
let r be Real; :: thesis: ( r > 0 implies ex k being Nat st
for n, m being Nat st n >= k & m >= k holds
||.((xseq . n) - (xseq . m)).|| < r )

assume A35: r > 0 ; :: thesis: ex k being Nat st
for n, m being Nat st n >= k & m >= k holds
||.((xseq . n) - (xseq . m)).|| < r

set r1 = r / 2;
A36: ( 0 < r / 2 & r / 2 < r ) by A35, XREAL_1:216;
set r2 = (r / 2) / 2;
consider k being Nat such that
A38: for i being Nat st k <= i holds
|.(((seq (#) seq) . i) - ((lower_bound B) ^2)).| < ((r / 2) / 2) ^2 by SEQ_2:def 7, A20, A35;
take k ; :: thesis: for n, m being Nat st n >= k & m >= k holds
||.((xseq . n) - (xseq . m)).|| < r

let i, j be Nat; :: thesis: ( i >= k & j >= k implies ||.((xseq . i) - (xseq . j)).|| < r )
assume A39: ( i >= k & j >= k ) ; :: thesis: ||.((xseq . i) - (xseq . j)).|| < r
A40: ||.((xseq . i) - (xseq . j)).|| ^2 <= ((2 * ((seq (#) seq) . i)) + (2 * ((seq (#) seq) . j))) - (4 * ((lower_bound B) ^2)) by A27;
|.(((seq (#) seq) . i) - ((lower_bound B) ^2)).| < ((r / 2) / 2) ^2 by A38, A39;
then (seq (#) seq) . i in ].(((lower_bound B) ^2) - (((r / 2) / 2) ^2)),(((lower_bound B) ^2) + (((r / 2) / 2) ^2)).[ by RCOMP_1:1;
then (seq (#) seq) . i in { r where r is Real : ( ((lower_bound B) ^2) - (((r / 2) / 2) ^2) < r & r < ((lower_bound B) ^2) + (((r / 2) / 2) ^2) ) } by RCOMP_1:def 2;
then ex r being Real st
( r = (seq (#) seq) . i & ((lower_bound B) ^2) - (((r / 2) / 2) ^2) < r & r < ((lower_bound B) ^2) + (((r / 2) / 2) ^2) ) ;
then A41: 2 * ((seq (#) seq) . i) < 2 * (((lower_bound B) ^2) + (((r / 2) / 2) ^2)) by XREAL_1:68;
|.(((seq (#) seq) . j) - ((lower_bound B) ^2)).| < ((r / 2) / 2) ^2 by A38, A39;
then (seq (#) seq) . j in ].(((lower_bound B) ^2) - (((r / 2) / 2) ^2)),(((lower_bound B) ^2) + (((r / 2) / 2) ^2)).[ by RCOMP_1:1;
then (seq (#) seq) . j in { r where r is Real : ( ((lower_bound B) ^2) - (((r / 2) / 2) ^2) < r & r < ((lower_bound B) ^2) + (((r / 2) / 2) ^2) ) } by RCOMP_1:def 2;
then ex r being Real st
( r = (seq (#) seq) . j & ((lower_bound B) ^2) - (((r / 2) / 2) ^2) < r & r < ((lower_bound B) ^2) + (((r / 2) / 2) ^2) ) ;
then 2 * ((seq (#) seq) . j) < 2 * (((lower_bound B) ^2) + (((r / 2) / 2) ^2)) by XREAL_1:68;
then (2 * ((seq (#) seq) . i)) + (2 * ((seq (#) seq) . j)) < ((2 * ((lower_bound B) ^2)) + (2 * (((r / 2) / 2) ^2))) + ((2 * ((lower_bound B) ^2)) + (2 * (((r / 2) / 2) ^2))) by A41, XREAL_1:8;
then ((2 * ((seq (#) seq) . i)) + (2 * ((seq (#) seq) . j))) - (4 * ((lower_bound B) ^2)) < ((((2 * ((lower_bound B) ^2)) + (2 * (((r / 2) / 2) ^2))) + (2 * ((lower_bound B) ^2))) + (2 * (((r / 2) / 2) ^2))) - (4 * ((lower_bound B) ^2)) by XREAL_1:14;
then A42: ||.((xseq . i) - (xseq . j)).|| ^2 < (2 * ((r / 2) / 2)) ^2 by A40, XXREAL_0:2;
||.((xseq . i) - (xseq . j)).|| <= 2 * ((r / 2) / 2) by A42, SQUARE_1:16, A35;
hence ||.((xseq . i) - (xseq . j)).|| < r by A36, XXREAL_0:2; :: thesis: verum
end;
then A43: xseq is convergent by BHSP_3:def 4, BHSP_3:2;
A46: ||.(x - (lim xseq)).|| = ||.(- ((lim xseq) - x)).|| by RLVECT_1:33
.= ||.((lim xseq) - x).|| by BHSP_1:31
.= lim seq by A24, A43, BHSP_2:34
.= lower_bound B by A18, SEQ_2:def 7, A13 ;
take lim xseq ; :: thesis: ( lim xseq in M & ( for m being Point of X st m in M holds
||.(x - (lim xseq)).|| <= ||.(x - m).|| ) )

thus lim xseq in M by A43, A26, STRUCT_0:def 5, A1, Th12; :: thesis: for m being Point of X st m in M holds
||.(x - (lim xseq)).|| <= ||.(x - m).||

let m be Point of X; :: thesis: ( m in M implies ||.(x - (lim xseq)).|| <= ||.(x - m).|| )
assume m in M ; :: thesis: ||.(x - (lim xseq)).|| <= ||.(x - m).||
then ||.(x - m).|| in B ;
hence ||.(x - (lim xseq)).|| <= ||.(x - m).|| by A46, SEQ_4:def 2; :: thesis: verum
end;
end;