:: METRIC_6 semantic presentation

theorem Th1: :: METRIC_6:1
for b1 being MetrSpace
for b2, b3, b4 being Element of b1 holds abs ((dist b2,b3) - (dist b4,b3)) <= dist b2,b4
proof end;

theorem Th2: :: METRIC_6:2
for b1 being non empty set
for b2 being Function of [:b1,b1:], REAL st b2 is_metric_of b1 holds
for b3, b4 being Element of b1 holds 0 <= b2 . b3,b4
proof end;

theorem Th3: :: METRIC_6:3
for b1 being non empty set
for b2 being Function of [:b1,b1:], REAL holds
( b2 is_metric_of b1 iff ( b2 is Reflexive & b2 is discerning & b2 is symmetric & b2 is triangle ) )
proof end;

theorem Th4: :: METRIC_6:4
for b1 being non empty strict MetrSpace holds
( the distance of b1 is Reflexive & the distance of b1 is discerning & the distance of b1 is symmetric & the distance of b1 is triangle )
proof end;

theorem Th5: :: METRIC_6:5
for b1 being non empty set
for b2 being Function of [:b1,b1:], REAL holds
( b2 is_metric_of b1 iff ( b2 is Reflexive & b2 is discerning & ( for b3, b4, b5 being Element of b1 holds b2 . b4,b5 <= (b2 . b3,b4) + (b2 . b3,b5) ) ) )
proof end;

definition
let c1 be non empty set ;
let c2 be Function of [:c1,c1:], REAL ;
canceled;
canceled;
canceled;
func bounded_metric c1,c2 -> Function of [:a1,a1:], REAL means :Def4: :: METRIC_6:def 4
for b1, b2 being Element of a1 holds a3 . b1,b2 = (a2 . b1,b2) / (1 + (a2 . b1,b2));
existence
ex b1 being Function of [:c1,c1:], REAL st
for b2, b3 being Element of c1 holds b1 . b2,b3 = (c2 . b2,b3) / (1 + (c2 . b2,b3))
proof end;
uniqueness
for b1, b2 being Function of [:c1,c1:], REAL st ( for b3, b4 being Element of c1 holds b1 . b3,b4 = (c2 . b3,b4) / (1 + (c2 . b3,b4)) ) & ( for b3, b4 being Element of c1 holds b2 . b3,b4 = (c2 . b3,b4) / (1 + (c2 . b3,b4)) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def1 METRIC_6:def 1 :
canceled;

:: deftheorem Def2 METRIC_6:def 2 :
canceled;

:: deftheorem Def3 METRIC_6:def 3 :
canceled;

:: deftheorem Def4 defines bounded_metric METRIC_6:def 4 :
for b1 being non empty set
for b2, b3 being Function of [:b1,b1:], REAL holds
( b3 = bounded_metric b1,b2 iff for b4, b5 being Element of b1 holds b3 . b4,b5 = (b2 . b4,b5) / (1 + (b2 . b4,b5)) );

theorem Th6: :: METRIC_6:6
for b1 being non empty set
for b2 being Function of [:b1,b1:], REAL st b2 is_metric_of b1 holds
bounded_metric b1,b2 is_metric_of b1
proof end;

theorem Th7: :: METRIC_6:7
canceled;

theorem Th8: :: METRIC_6:8
canceled;

theorem Th9: :: METRIC_6:9
canceled;

theorem Th10: :: METRIC_6:10
for b1 being non empty MetrSpace
for b2 being Element of b1 ex b3 being sequence of b1 st rng b3 = {b2}
proof end;

definition
let c1 be non empty MetrStruct ;
let c2 be sequence of c1;
let c3 be Element of c1;
canceled;
canceled;
canceled;
pred c2 is_convergent_in_metrspace_to c3 means :Def8: :: METRIC_6:def 8
for b1 being Real st 0 < b1 holds
ex b2 being Nat st
for b3 being Nat st b2 <= b3 holds
dist (a2 . b3),a3 < b1;
end;

:: deftheorem Def5 METRIC_6:def 5 :
canceled;

:: deftheorem Def6 METRIC_6:def 6 :
canceled;

:: deftheorem Def7 METRIC_6:def 7 :
canceled;

:: deftheorem Def8 defines is_convergent_in_metrspace_to METRIC_6:def 8 :
for b1 being non empty MetrStruct
for b2 being sequence of b1
for b3 being Element of b1 holds
( b2 is_convergent_in_metrspace_to b3 iff for b4 being Real st 0 < b4 holds
ex b5 being Nat st
for b6 being Nat st b5 <= b6 holds
dist (b2 . b6),b3 < b4 );

definition
let c1 be non empty symmetric triangle MetrStruct ;
let c2 be Subset of c1;
canceled;
redefine attr a2 is bounded means :: METRIC_6:def 10
ex b1 being Realex b2 being Element of a1 st
( 0 < b1 & a2 c= Ball b2,b1 );
compatibility
( c2 is bounded iff ex b1 being Realex b2 being Element of c1 st
( 0 < b1 & c2 c= Ball b2,b1 ) )
proof end;
end;

:: deftheorem Def9 METRIC_6:def 9 :
canceled;

:: deftheorem Def10 defines bounded METRIC_6:def 10 :
for b1 being non empty symmetric triangle MetrStruct
for b2 being Subset of b1 holds
( b2 is bounded iff ex b3 being Realex b4 being Element of b1 st
( 0 < b3 & b2 c= Ball b4,b3 ) );

definition
let c1 be non empty MetrStruct ;
let c2 be sequence of c1;
attr a2 is bounded means :Def11: :: METRIC_6:def 11
ex b1 being Realex b2 being Element of a1 st
( 0 < b1 & rng a2 c= Ball b2,b1 );
end;

:: deftheorem Def11 defines bounded METRIC_6:def 11 :
for b1 being non empty MetrStruct
for b2 being sequence of b1 holds
( b2 is bounded iff ex b3 being Realex b4 being Element of b1 st
( 0 < b3 & rng b2 c= Ball b4,b3 ) );

definition
let c1 be non empty MetrSpace;
let c2 be Subset of c1;
let c3 be sequence of c1;
pred c2 contains_almost_all_sequence c3 means :Def12: :: METRIC_6:def 12
ex b1 being Nat st
for b2 being Nat st b1 <= b2 holds
a3 . b2 in a2;
end;

:: deftheorem Def12 defines contains_almost_all_sequence METRIC_6:def 12 :
for b1 being non empty MetrSpace
for b2 being Subset of b1
for b3 being sequence of b1 holds
( b2 contains_almost_all_sequence b3 iff ex b4 being Nat st
for b5 being Nat st b4 <= b5 holds
b3 . b5 in b2 );

theorem Th11: :: METRIC_6:11
canceled;

theorem Th12: :: METRIC_6:12
canceled;

theorem Th13: :: METRIC_6:13
canceled;

theorem Th14: :: METRIC_6:14
canceled;

theorem Th15: :: METRIC_6:15
canceled;

theorem Th16: :: METRIC_6:16
canceled;

theorem Th17: :: METRIC_6:17
canceled;

theorem Th18: :: METRIC_6:18
canceled;

theorem Th19: :: METRIC_6:19
canceled;

theorem Th20: :: METRIC_6:20
for b1 being non empty MetrSpace
for b2 being sequence of b1 holds
( b2 is bounded iff ex b3 being Realex b4 being Element of b1 st
( 0 < b3 & ( for b5 being Nat holds b2 . b5 in Ball b4,b3 ) ) )
proof end;

theorem Th21: :: METRIC_6:21
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 st b3 is_convergent_in_metrspace_to b2 holds
b3 is convergent
proof end;

theorem Th22: :: METRIC_6:22
for b1 being non empty MetrSpace
for b2 being sequence of b1 st b2 is convergent holds
ex b3 being Element of b1 st b2 is_convergent_in_metrspace_to b3
proof end;

definition
let c1 be non empty MetrSpace;
let c2 be sequence of c1;
let c3 be Element of c1;
canceled;
func dist_to_point c2,c3 -> Real_Sequence means :Def14: :: METRIC_6:def 14
for b1 being Nat holds a4 . b1 = dist (a2 . b1),a3;
existence
ex b1 being Real_Sequence st
for b2 being Nat holds b1 . b2 = dist (c2 . b2),c3
proof end;
uniqueness
for b1, b2 being Real_Sequence st ( for b3 being Nat holds b1 . b3 = dist (c2 . b3),c3 ) & ( for b3 being Nat holds b2 . b3 = dist (c2 . b3),c3 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def13 METRIC_6:def 13 :
canceled;

:: deftheorem Def14 defines dist_to_point METRIC_6:def 14 :
for b1 being non empty MetrSpace
for b2 being sequence of b1
for b3 being Element of b1
for b4 being Real_Sequence holds
( b4 = dist_to_point b2,b3 iff for b5 being Nat holds b4 . b5 = dist (b2 . b5),b3 );

definition
let c1 be non empty MetrSpace;
let c2, c3 be sequence of c1;
func sequence_of_dist c2,c3 -> Real_Sequence means :Def15: :: METRIC_6:def 15
for b1 being Nat holds a4 . b1 = dist (a2 . b1),(a3 . b1);
existence
ex b1 being Real_Sequence st
for b2 being Nat holds b1 . b2 = dist (c2 . b2),(c3 . b2)
proof end;
uniqueness
for b1, b2 being Real_Sequence st ( for b3 being Nat holds b1 . b3 = dist (c2 . b3),(c3 . b3) ) & ( for b3 being Nat holds b2 . b3 = dist (c2 . b3),(c3 . b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def15 defines sequence_of_dist METRIC_6:def 15 :
for b1 being non empty MetrSpace
for b2, b3 being sequence of b1
for b4 being Real_Sequence holds
( b4 = sequence_of_dist b2,b3 iff for b5 being Nat holds b4 . b5 = dist (b2 . b5),(b3 . b5) );

theorem Th23: :: METRIC_6:23
canceled;

theorem Th24: :: METRIC_6:24
canceled;

theorem Th25: :: METRIC_6:25
canceled;

theorem Th26: :: METRIC_6:26
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 st b3 is_convergent_in_metrspace_to b2 holds
lim b3 = b2
proof end;

theorem Th27: :: METRIC_6:27
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 holds
( b3 is_convergent_in_metrspace_to b2 iff ( b3 is convergent & lim b3 = b2 ) )
proof end;

theorem Th28: :: METRIC_6:28
for b1 being non empty MetrSpace
for b2 being sequence of b1 st b2 is convergent holds
ex b3 being Element of b1 st
( b2 is_convergent_in_metrspace_to b3 & lim b2 = b3 )
proof end;

theorem Th29: :: METRIC_6:29
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 holds
( b3 is_convergent_in_metrspace_to b2 iff ( dist_to_point b3,b2 is convergent & lim (dist_to_point b3,b2) = 0 ) )
proof end;

theorem Th30: :: METRIC_6:30
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 st b3 is_convergent_in_metrspace_to b2 holds
for b4 being Real st 0 < b4 holds
Ball b2,b4 contains_almost_all_sequence b3
proof end;

theorem Th31: :: METRIC_6:31
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 st ( for b4 being Real st 0 < b4 holds
Ball b2,b4 contains_almost_all_sequence b3 ) holds
for b4 being Subset of b1 st b2 in b4 & b4 in Family_open_set b1 holds
b4 contains_almost_all_sequence b3
proof end;

theorem Th32: :: METRIC_6:32
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 st ( for b4 being Subset of b1 st b2 in b4 & b4 in Family_open_set b1 holds
b4 contains_almost_all_sequence b3 ) holds
b3 is_convergent_in_metrspace_to b2
proof end;

theorem Th33: :: METRIC_6:33
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 holds
( b3 is_convergent_in_metrspace_to b2 iff for b4 being Real st 0 < b4 holds
Ball b2,b4 contains_almost_all_sequence b3 )
proof end;

theorem Th34: :: METRIC_6:34
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 holds
( b3 is_convergent_in_metrspace_to b2 iff for b4 being Subset of b1 st b2 in b4 & b4 in Family_open_set b1 holds
b4 contains_almost_all_sequence b3 )
proof end;

theorem Th35: :: METRIC_6:35
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3 being sequence of b1 holds
( ( for b4 being Real st 0 < b4 holds
Ball b2,b4 contains_almost_all_sequence b3 ) iff for b4 being Subset of b1 st b2 in b4 & b4 in Family_open_set b1 holds
b4 contains_almost_all_sequence b3 )
proof end;

theorem Th36: :: METRIC_6:36
for b1 being non empty MetrSpace
for b2, b3 being sequence of b1 st b2 is convergent & b3 is convergent holds
dist (lim b2),(lim b3) = lim (sequence_of_dist b2,b3)
proof end;

theorem Th37: :: METRIC_6:37
for b1 being non empty MetrSpace
for b2, b3 being Element of b1
for b4 being sequence of b1 st b4 is_convergent_in_metrspace_to b2 & b4 is_convergent_in_metrspace_to b3 holds
b2 = b3
proof end;

theorem Th38: :: METRIC_6:38
for b1 being non empty MetrSpace
for b2 being sequence of b1 st b2 is constant holds
b2 is convergent
proof end;

theorem Th39: :: METRIC_6:39
for b1 being non empty MetrSpace
for b2 being Element of b1
for b3, b4 being sequence of b1 st b3 is_convergent_in_metrspace_to b2 & b4 is subsequence of b3 holds
b4 is_convergent_in_metrspace_to b2
proof end;

theorem Th40: :: METRIC_6:40
for b1 being non empty MetrSpace
for b2, b3 being sequence of b1 st b2 is Cauchy & b3 is subsequence of b2 holds
b3 is Cauchy
proof end;

theorem Th41: :: METRIC_6:41
canceled;

theorem Th42: :: METRIC_6:42
for b1 being non empty MetrSpace
for b2 being sequence of b1 st b2 is constant holds
b2 is Cauchy
proof end;

theorem Th43: :: METRIC_6:43
for b1 being non empty MetrSpace
for b2 being sequence of b1 st b2 is convergent holds
b2 is bounded
proof end;

theorem Th44: :: METRIC_6:44
for b1 being non empty MetrSpace
for b2 being sequence of b1 st b2 is Cauchy holds
b2 is bounded
proof end;

registration
let c1 be non empty MetrSpace;
cluster V80 -> convergent M5( NAT ,the carrier of a1);
coherence
for b1 being sequence of c1 st b1 is constant holds
b1 is convergent
by Th38;
cluster Cauchy -> bounded M5( NAT ,the carrier of a1);
coherence
for b1 being sequence of c1 st b1 is Cauchy holds
b1 is bounded
by Th44;
end;

registration
let c1 be non empty MetrSpace;
cluster convergent Cauchy V80 bounded M5( NAT ,the carrier of a1);
existence
ex b1 being sequence of c1 st
( b1 is constant & b1 is convergent & b1 is Cauchy & b1 is bounded )
proof end;
end;