:: FINTOPO5 semantic presentation

theorem Th1: :: FINTOPO5:1
for X being set
for Y being non empty set
for f being Function of X,Y
for A being Subset of X st f is one-to-one holds
(f " ) .: (f .: A) = A
proof end;

theorem Th2: :: FINTOPO5:2
for n being Element of NAT holds
( n > 0 iff Seg n <> {} )
proof end;

definition
let FT1 be RelStr , FT2 be RelStr ;
let h be Function of FT1,FT2;
pred c3 is_homeomorphism means :Def1: :: FINTOPO5:def 1
( h is one-to-one & h is onto & ( for x being Element of FT1 holds h .: (the InternalRel of FT1 .: {x}) = the InternalRel of FT2 .: {(h . x)} ) );
end;

:: deftheorem Def1 defines is_homeomorphism FINTOPO5:def 1 :
for FT1, FT2 being RelStr
for h being Function of FT1,FT2 holds
( h is_homeomorphism iff ( h is one-to-one & h is onto & ( for x being Element of FT1 holds h .: (the InternalRel of FT1 .: {x}) = the InternalRel of FT2 .: {(h . x)} ) ) );

theorem Th3: :: FINTOPO5:3
for FT1, FT2 being non empty RelStr
for h being Function of FT1,FT2 st h is_homeomorphism holds
ex g being Function of FT2,FT1 st
( g = h " & g is_homeomorphism )
proof end;

theorem Th4: :: FINTOPO5:4
for FT1, FT2 being non empty RelStr
for h being Function of FT1,FT2
for n being Element of NAT
for x being Element of FT1
for y being Element of FT2 st h is_homeomorphism & y = h . x holds
for z being Element of FT1 holds
( z in U_FT x,n iff h . z in U_FT y,n )
proof end;

theorem Th5: :: FINTOPO5:5
for FT1, FT2 being non empty RelStr
for h being Function of FT1,FT2
for n being Element of NAT
for x being Element of FT1
for y being Element of FT2 st h is_homeomorphism & y = h . x holds
for v being Element of FT2 holds
( (h " ) . v in U_FT x,n iff v in U_FT y,n )
proof end;

theorem Th6: :: FINTOPO5:6
for n being non zero Element of NAT
for f being Function of (FTSL1 n),(FTSL1 n) st f is_continuous 0 holds
ex p being Element of (FTSL1 n) st f . p in U_FT p,0
proof end;

theorem Th7: :: FINTOPO5:7
for T being non empty RelStr
for p being Element of T
for k being Element of NAT st T is filled holds
U_FT p,k c= U_FT p,(k + 1)
proof end;

theorem Th8: :: FINTOPO5:8
for T being non empty RelStr
for p being Element of T
for k being Element of NAT st T is filled holds
U_FT p,0 c= U_FT p,k
proof end;

theorem Th9: :: FINTOPO5:9
for n being non zero Element of NAT
for jn, j, k being Element of NAT
for p being Element of (FTSL1 n) st p = jn holds
( j in U_FT p,k iff ( j in Seg n & abs (jn - j) <= k + 1 ) )
proof end;

theorem Th10: :: FINTOPO5:10
for kc, km being Element of NAT
for n being non zero Element of NAT
for f being Function of (FTSL1 n),(FTSL1 n) st f is_continuous kc & km = [/(kc / 2)\] holds
ex p being Element of (FTSL1 n) st f . p in U_FT p,km
proof end;

definition
let n be Element of NAT , m be Element of NAT ;
func Nbdl2 c1,c2 -> Relation of [:(Seg a1),(Seg a2):] means :Def2: :: FINTOPO5:def 2
for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
it .: {x} = [:((Nbdl1 n) .: {i}),((Nbdl1 m) .: {j}):];
existence
ex b1 being Relation of [:(Seg n),(Seg m):] st
for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
b1 .: {x} = [:((Nbdl1 n) .: {i}),((Nbdl1 m) .: {j}):]
proof end;
uniqueness
for b1, b2 being Relation of [:(Seg n),(Seg m):] st ( for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
b1 .: {x} = [:((Nbdl1 n) .: {i}),((Nbdl1 m) .: {j}):] ) & ( for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
b2 .: {x} = [:((Nbdl1 n) .: {i}),((Nbdl1 m) .: {j}):] ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 defines Nbdl2 FINTOPO5:def 2 :
for n, m being Element of NAT
for b3 being Relation of [:(Seg n),(Seg m):] holds
( b3 = Nbdl2 n,m iff for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
b3 .: {x} = [:((Nbdl1 n) .: {i}),((Nbdl1 m) .: {j}):] );

definition
let n be Element of NAT , m be Element of NAT ;
func FTSL2 c1,c2 -> strict RelStr equals :: FINTOPO5:def 3
RelStr(# [:(Seg n),(Seg m):],(Nbdl2 n,m) #);
coherence
RelStr(# [:(Seg n),(Seg m):],(Nbdl2 n,m) #) is strict RelStr
;
end;

:: deftheorem Def3 defines FTSL2 FINTOPO5:def 3 :
for n, m being Element of NAT holds FTSL2 n,m = RelStr(# [:(Seg n),(Seg m):],(Nbdl2 n,m) #);

registration
let n be non zero Element of NAT , m be non zero Element of NAT ;
cluster FTSL2 a1,a2 -> non empty strict ;
coherence
not FTSL2 n,m is empty
proof end;
end;

theorem Th11: :: FINTOPO5:11
for n, m being non zero Element of NAT holds FTSL2 n,m is filled
proof end;

theorem Th12: :: FINTOPO5:12
for n, m being non zero Element of NAT holds FTSL2 n,m is symmetric
proof end;

theorem Th13: :: FINTOPO5:13
for n being non zero Element of NAT ex h being Function of (FTSL2 n,1),(FTSL1 n) st h is_homeomorphism
proof end;

definition
let n be Element of NAT , m be Element of NAT ;
func Nbds2 c1,c2 -> Relation of [:(Seg a1),(Seg a2):] means :Def4: :: FINTOPO5:def 4
for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
it .: {x} = [:{i},((Nbdl1 m) .: {j}):] \/ [:((Nbdl1 n) .: {i}),{j}:];
existence
ex b1 being Relation of [:(Seg n),(Seg m):] st
for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
b1 .: {x} = [:{i},((Nbdl1 m) .: {j}):] \/ [:((Nbdl1 n) .: {i}),{j}:]
proof end;
uniqueness
for b1, b2 being Relation of [:(Seg n),(Seg m):] st ( for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
b1 .: {x} = [:{i},((Nbdl1 m) .: {j}):] \/ [:((Nbdl1 n) .: {i}),{j}:] ) & ( for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
b2 .: {x} = [:{i},((Nbdl1 m) .: {j}):] \/ [:((Nbdl1 n) .: {i}),{j}:] ) holds
b1 = b2
proof end;
end;

:: deftheorem Def4 defines Nbds2 FINTOPO5:def 4 :
for n, m being Element of NAT
for b3 being Relation of [:(Seg n),(Seg m):] holds
( b3 = Nbds2 n,m iff for x being set st x in [:(Seg n),(Seg m):] holds
for i, j being Element of NAT st x = [i,j] holds
b3 .: {x} = [:{i},((Nbdl1 m) .: {j}):] \/ [:((Nbdl1 n) .: {i}),{j}:] );

definition
let n be Element of NAT , m be Element of NAT ;
func FTSS2 c1,c2 -> strict RelStr equals :: FINTOPO5:def 5
RelStr(# [:(Seg n),(Seg m):],(Nbds2 n,m) #);
coherence
RelStr(# [:(Seg n),(Seg m):],(Nbds2 n,m) #) is strict RelStr
;
end;

:: deftheorem Def5 defines FTSS2 FINTOPO5:def 5 :
for n, m being Element of NAT holds FTSS2 n,m = RelStr(# [:(Seg n),(Seg m):],(Nbds2 n,m) #);

registration
let n be non zero Element of NAT , m be non zero Element of NAT ;
cluster FTSS2 a1,a2 -> non empty strict ;
coherence
not FTSS2 n,m is empty
proof end;
end;

theorem Th14: :: FINTOPO5:14
for n, m being non zero Element of NAT holds FTSS2 n,m is filled
proof end;

theorem Th15: :: FINTOPO5:15
for n, m being non zero Element of NAT holds FTSS2 n,m is symmetric
proof end;

theorem Th16: :: FINTOPO5:16
for n being non zero Element of NAT ex h being Function of (FTSS2 n,1),(FTSL1 n) st h is_homeomorphism
proof end;