let T, S be RealNormSpace; :: thesis: for f being PartFunc of S,T
for Y being Subset of S st Y is compact & f is_continuous_on Y holds
f is_uniformly_continuous_on Y

let f be PartFunc of S,T; :: thesis: for Y being Subset of S st Y is compact & f is_continuous_on Y holds
f is_uniformly_continuous_on Y

let Y be Subset of S; :: thesis: ( Y is compact & f is_continuous_on Y implies f is_uniformly_continuous_on Y )
assume that
A1: Y is compact and
A2: f is_continuous_on Y ; :: thesis: f is_uniformly_continuous_on Y
A3: Y c= dom f by A2, NFCONT_1:def 11;
assume not f is_uniformly_continuous_on Y ; :: thesis: contradiction
then consider r being Real such that
A4: 0 < r and
A5: for s being Real st 0 < s holds
ex x1, x2 being Point of S st
( x1 in Y & x2 in Y & ||.(x1 - x2).|| < s & not ||.((f /. x1) - (f /. x2)).|| < r ) by A3, Def1;
A6: now
let n be Element of NAT ; :: thesis: 0 < 1 / (n + 1)
0 < n + 1 by NAT_1:5;
hence 0 < 1 / (n + 1) by XREAL_1:141; :: thesis: verum
end;
defpred S1[ Element of NAT , Point of S] means ( $2 in Y & ex x2 being Point of S st
( x2 in Y & ||.($2 - x2).|| < 1 / ($1 + 1) & not ||.((f /. $2) - (f /. x2)).|| < r ) );
A7: now
let n be Element of NAT ; :: thesis: ex x1 being Point of S st S1[n,x1]
0 < 1 / (n + 1) by A6;
then consider x1 being Point of S such that
A8: ex x2 being Point of S st
( x1 in Y & x2 in Y & ||.(x1 - x2).|| < 1 / (n + 1) & not ||.((f /. x1) - (f /. x2)).|| < r ) by A5;
take x1 = x1; :: thesis: S1[n,x1]
thus S1[n,x1] by A8; :: thesis: verum
end;
consider s1 being sequence of S such that
A9: for n being Element of NAT holds S1[n,s1 . n] from FUNCT_2:sch 3(A7);
defpred S2[ Element of NAT , Point of S] means ( $2 in Y & ||.((s1 . $1) - $2).|| < 1 / ($1 + 1) & not ||.((f /. (s1 . $1)) - (f /. $2)).|| < r );
A10: for n being Element of NAT ex x2 being Point of S st S2[n,x2] by A9;
consider s2 being sequence of S such that
A11: for n being Element of NAT holds S2[n,s2 . n] from FUNCT_2:sch 3(A10);
A12: now
let p be Real; :: thesis: ( 0 < p implies ex k being Element of NAT st
for m being Element of NAT st k <= m holds
||.(((s1 - s2) . m) - (0. S)).|| < p )

assume A13: 0 < p ; :: thesis: ex k being Element of NAT st
for m being Element of NAT st k <= m holds
||.(((s1 - s2) . m) - (0. S)).|| < p

consider k being Element of NAT such that
A14: p " < k by SEQ_4:10;
A15: 0 < p " by A13;
k < k + 1 by NAT_1:13;
then p " < k + 1 by A14, XXREAL_0:2;
then 1 / (k + 1) < 1 / (p " ) by A15, XREAL_1:78;
then A17: 1 / (k + 1) < p by XCMPLX_1:218;
take k = k; :: thesis: for m being Element of NAT st k <= m holds
||.(((s1 - s2) . m) - (0. S)).|| < p

let m be Element of NAT ; :: thesis: ( k <= m implies ||.(((s1 - s2) . m) - (0. S)).|| < p )
assume A18: k <= m ; :: thesis: ||.(((s1 - s2) . m) - (0. S)).|| < p
k + 1 <= m + 1 by A18, XREAL_1:8;
then A19: 1 / (m + 1) <= 1 / (k + 1) by A14, A15, XREAL_1:120;
A20: ||.(((s1 - s2) . m) - (0. S)).|| = ||.(((s1 . m) - (s2 . m)) - (0. S)).|| by NORMSP_1:def 6
.= ||.((s1 . m) - (s2 . m)).|| by RLVECT_1:26 ;
||.((s1 . m) - (s2 . m)).|| < 1 / (m + 1) by A11;
then ||.((s1 . m) - (s2 . m)).|| < 1 / (k + 1) by A19, XXREAL_0:2;
hence ||.(((s1 - s2) . m) - (0. S)).|| < p by A17, A20, XXREAL_0:2; :: thesis: verum
end;
then A21: s1 - s2 is convergent by NORMSP_1:def 9;
then A22: lim (s1 - s2) = 0. S by A12, NORMSP_1:def 11;
now
let x be set ; :: thesis: ( x in rng s1 implies x in Y )
assume x in rng s1 ; :: thesis: x in Y
then ex n being Element of NAT st x = s1 . n by NFCONT_1:6;
hence x in Y by A9; :: thesis: verum
end;
then A23: rng s1 c= Y by TARSKI:def 3;
then consider q1 being sequence of S such that
A24: ( q1 is subsequence of s1 & q1 is convergent & lim q1 in Y ) by A1, NFCONT_1:def 4;
A25: f | Y is_continuous_in lim q1 by A2, A24, NFCONT_1:def 11;
consider Ns1 being increasing sequence of NAT such that
A26: q1 = s1 * Ns1 by A24, VALUED_0:def 17;
A28: (s1 - s2) * Ns1 is convergent by A21, LOPBAN_3:11;
A29: lim ((s1 - s2) * Ns1) = 0. S by A21, A22, LOPBAN_3:12;
set q2 = q1 - ((s1 - s2) * Ns1);
A30: q1 - ((s1 - s2) * Ns1) is convergent by A24, A28, NORMSP_1:35;
A31: lim (q1 - ((s1 - s2) * Ns1)) = (lim q1) - (0. S) by A24, A28, A29, NORMSP_1:43
.= lim q1 by RLVECT_1:26 ;
now
let n be Element of NAT ; :: thesis: (q1 - ((s1 - s2) * Ns1)) . n = (s2 * Ns1) . n
thus (q1 - ((s1 - s2) * Ns1)) . n = ((s1 * Ns1) . n) - (((s1 - s2) * Ns1) . n) by A26, NORMSP_1:def 6
.= (s1 . (Ns1 . n)) - (((s1 - s2) * Ns1) . n) by FUNCT_2:21
.= (s1 . (Ns1 . n)) - ((s1 - s2) . (Ns1 . n)) by FUNCT_2:21
.= (s1 . (Ns1 . n)) - ((s1 . (Ns1 . n)) - (s2 . (Ns1 . n))) by NORMSP_1:def 6
.= ((s1 . (Ns1 . n)) - (s1 . (Ns1 . n))) + (s2 . (Ns1 . n)) by RLVECT_1:43
.= (0. S) + (s2 . (Ns1 . n)) by RLVECT_1:28
.= s2 . (Ns1 . n) by RLVECT_1:10
.= (s2 * Ns1) . n by FUNCT_2:21 ; :: thesis: verum
end;
then A32: q1 - ((s1 - s2) * Ns1) = s2 * Ns1 by FUNCT_2:113;
then A33: q1 - ((s1 - s2) * Ns1) is subsequence of s2 ;
now
let x be set ; :: thesis: ( x in rng s2 implies x in Y )
assume x in rng s2 ; :: thesis: x in Y
then ex n being Element of NAT st x = s2 . n by NFCONT_1:6;
hence x in Y by A11; :: thesis: verum
end;
then A34: rng s2 c= Y by TARSKI:def 3;
rng q1 c= rng s1 by A24, VALUED_0:21;
then A35: rng q1 c= Y by A23, XBOOLE_1:1;
then rng q1 c= dom f by A3, XBOOLE_1:1;
then rng q1 c= (dom f) /\ Y by A35, XBOOLE_1:19;
then A36: rng q1 c= dom (f | Y) by RELAT_1:90;
then A37: ( (f | Y) /* q1 is convergent & (f | Y) /. (lim q1) = lim ((f | Y) /* q1) ) by A24, A25, NFCONT_1:def 9;
rng (q1 - ((s1 - s2) * Ns1)) c= rng s2 by A33, VALUED_0:21;
then A38: rng (q1 - ((s1 - s2) * Ns1)) c= Y by A34, XBOOLE_1:1;
then rng (q1 - ((s1 - s2) * Ns1)) c= dom f by A3, XBOOLE_1:1;
then rng (q1 - ((s1 - s2) * Ns1)) c= (dom f) /\ Y by A38, XBOOLE_1:19;
then A39: rng (q1 - ((s1 - s2) * Ns1)) c= dom (f | Y) by RELAT_1:90;
then A40: ( (f | Y) /* (q1 - ((s1 - s2) * Ns1)) is convergent & (f | Y) /. (lim q1) = lim ((f | Y) /* (q1 - ((s1 - s2) * Ns1))) ) by A25, A30, A31, NFCONT_1:def 9;
then A41: ((f | Y) /* q1) - ((f | Y) /* (q1 - ((s1 - s2) * Ns1))) is convergent by A37, NORMSP_1:35;
A42: lim (((f | Y) /* q1) - ((f | Y) /* (q1 - ((s1 - s2) * Ns1)))) = ((f | Y) /. (lim q1)) - ((f | Y) /. (lim q1)) by A37, A40, NORMSP_1:43
.= 0. T by RLVECT_1:28 ;
now
let n be Element of NAT ; :: thesis: contradiction
consider k being Element of NAT such that
A43: for m being Element of NAT st k <= m holds
||.(((((f | Y) /* q1) - ((f | Y) /* (q1 - ((s1 - s2) * Ns1)))) . m) - (0. T)).|| < r by A4, A41, A42, NORMSP_1:def 11;
A44: ||.(((((f | Y) /* q1) - ((f | Y) /* (q1 - ((s1 - s2) * Ns1)))) . k) - (0. T)).|| < r by A43;
A45: q1 . k in rng q1 by NFCONT_1:6;
A46: (q1 - ((s1 - s2) * Ns1)) . k in rng (q1 - ((s1 - s2) * Ns1)) by NFCONT_1:6;
||.(((((f | Y) /* q1) - ((f | Y) /* (q1 - ((s1 - s2) * Ns1)))) . k) - (0. T)).|| = ||.((((f | Y) /* q1) - ((f | Y) /* (q1 - ((s1 - s2) * Ns1)))) . k).|| by RLVECT_1:26
.= ||.((((f | Y) /* q1) . k) - (((f | Y) /* (q1 - ((s1 - s2) * Ns1))) . k)).|| by NORMSP_1:def 6
.= ||.(((f | Y) /. (q1 . k)) - (((f | Y) /* (q1 - ((s1 - s2) * Ns1))) . k)).|| by A36, FUNCT_2:186
.= ||.(((f | Y) /. (q1 . k)) - ((f | Y) /. ((q1 - ((s1 - s2) * Ns1)) . k))).|| by A39, FUNCT_2:186
.= ||.((f /. (q1 . k)) - ((f | Y) /. ((q1 - ((s1 - s2) * Ns1)) . k))).|| by A36, A45, PARTFUN2:32
.= ||.((f /. (q1 . k)) - (f /. ((q1 - ((s1 - s2) * Ns1)) . k))).|| by A39, A46, PARTFUN2:32
.= ||.((f /. (s1 . (Ns1 . k))) - (f /. ((s2 * Ns1) . k))).|| by A26, A32, FUNCT_2:21
.= ||.((f /. (s1 . (Ns1 . k))) - (f /. (s2 . (Ns1 . k)))).|| by FUNCT_2:21 ;
hence contradiction by A11, A44; :: thesis: verum
end;
hence contradiction ; :: thesis: verum