:: TOPALG_5 semantic presentation

set c1 = |[0,0]|;

set c2 = the carrier of I[01] ;

set c3 = the carrier of R^1 ;

Lemma1: 0 in INT
by INT_1:def 1;

Lemma2: 0 in the carrier of I[01]
by JORDAN5A:2;

then Lemma3: {0} c= the carrier of I[01]
by ZFMISC_1:37;

Lemma4: 0 in {0}
by TARSKI:def 1;

Lemma5: the carrier of [:I[01] ,I[01] :] = [:the carrier of I[01] ,the carrier of I[01] :]
by BORSUK_1:def 5;

reconsider c4 = 0, c5 = 1 as Point of I[01] by BORSUK_1:def 17, BORSUK_1:def 18;

Lemma6: [#] I[01] = the carrier of I[01]
;

Lemma7: I[01] | ([#] I[01] ) = I[01]
by TSEP_1:3;

Lemma8: 1 - 0 <= 1
;

Lemma9: (3 / 2) - (1 / 2) <= 1
;

registration
cluster -> integer Element of the carrier of INT.Group ;
coherence
for b1 being Element of INT.Group holds b1 is integer
by INT_1:def 2, GR_CY_1:def 4;
end;

registration
cluster INT.Group -> infinite ;
coherence
not INT.Group is finite
proof end;
end;

registration
let c6 be infinite 1-sorted ;
cluster the carrier of a1 -> infinite ;
coherence
not the carrier of c6 is finite
by GROUP_1:def 14;
end;

theorem Th1: :: TOPALG_5:1
for b1, b2, b3 being real number st b1 <= b2 & 0 < b3 holds
for b4 being Point of (Closed-Interval-MSpace b1,b2) holds
( Ball b4,b3 = [.b1,b2.] or Ball b4,b3 = [.b1,(b4 + b3).[ or Ball b4,b3 = ].(b4 - b3),b2.] or Ball b4,b3 = ].(b4 - b3),(b4 + b3).[ )
proof end;

theorem Th2: :: TOPALG_5:2
for b1, b2 being real number st b1 <= b2 holds
ex b3 being Basis of Closed-Interval-TSpace b1,b2 st
( ex b4 being ManySortedSet of (Closed-Interval-TSpace b1,b2) st
for b5 being Point of (Closed-Interval-MSpace b1,b2) holds
( b4 . b5 = { (Ball b5,(1 / b6)) where B is Nat : b6 <> 0 } & b3 = Union b4 ) & ( for b4 being Subset of (Closed-Interval-TSpace b1,b2) st b4 in b3 holds
b4 is connected ) )
proof end;

theorem Th3: :: TOPALG_5:3
for b1 being TopStruct
for b2 being Subset of b1
for b3 being Point of b1 st b3 in b2 holds
skl b3,b2 c= b2
proof end;

registration
let c6 be TopSpace;
let c7 be open Subset of c6;
cluster a1 | a2 -> open ;
coherence
c6 | c7 is open
proof end;
end;

theorem Th4: :: TOPALG_5:4
for b1 being TopSpace
for b2 being SubSpace of b1
for b3 being Subset of b1
for b4 being Subset of b2 st b3 = b4 holds
b1 | b3 = b2 | b4
proof end;

theorem Th5: :: TOPALG_5:5
for b1, b2 being TopSpace
for b3, b4 being Subset of b2
for b5, b6 being Subset of b1 st TopStruct(# the carrier of b1,the topology of b1 #) = TopStruct(# the carrier of b2,the topology of b2 #) & b3 = b5 & b4 = b6 & b3,b4 are_separated holds
b5,b6 are_separated
proof end;

theorem Th6: :: TOPALG_5:6
for b1, b2 being TopSpace st TopStruct(# the carrier of b1,the topology of b1 #) = TopStruct(# the carrier of b2,the topology of b2 #) & b1 is connected holds
b2 is connected
proof end;

theorem Th7: :: TOPALG_5:7
for b1, b2 being TopSpace
for b3 being Subset of b1
for b4 being Subset of b2 st TopStruct(# the carrier of b1,the topology of b1 #) = TopStruct(# the carrier of b2,the topology of b2 #) & b3 = b4 & b3 is connected holds
b4 is connected
proof end;

theorem Th8: :: TOPALG_5:8
for b1, b2 being non empty TopSpace
for b3 being Point of b1
for b4 being Point of b2
for b5 being a_neighborhood of b3 st TopStruct(# the carrier of b1,the topology of b1 #) = TopStruct(# the carrier of b2,the topology of b2 #) & b3 = b4 holds
b5 is a_neighborhood of b4
proof end;

theorem Th9: :: TOPALG_5:9
for b1, b2 being non empty TopSpace
for b3 being Subset of b1
for b4 being Subset of b2
for b5 being a_neighborhood of b3 st TopStruct(# the carrier of b1,the topology of b1 #) = TopStruct(# the carrier of b2,the topology of b2 #) & b3 = b4 holds
b5 is a_neighborhood of b4
proof end;

theorem Th10: :: TOPALG_5:10
for b1, b2 being non empty TopSpace
for b3, b4 being Subset of b2
for b5 being Function of b1,b2 st b5 is_homeomorphism & b3 is_a_component_of b4 holds
b5 " b3 is_a_component_of b5 " b4
proof end;

theorem Th11: :: TOPALG_5:11
for b1 being non empty TopSpace
for b2 being non empty SubSpace of b1
for b3 being non empty Subset of b1
for b4 being non empty Subset of b2 st b3 = b4 & b3 is locally_connected holds
b4 is locally_connected
proof end;

theorem Th12: :: TOPALG_5:12
for b1, b2 being non empty TopSpace st TopStruct(# the carrier of b1,the topology of b1 #) = TopStruct(# the carrier of b2,the topology of b2 #) & b1 is locally_connected holds
b2 is locally_connected
proof end;

theorem Th13: :: TOPALG_5:13
for b1 being non empty TopSpace holds
( b1 is locally_connected iff [#] b1 is locally_connected )
proof end;

Lemma21: for b1 being non empty TopSpace
for b2 being non empty open SubSpace of b1 st b1 is locally_connected holds
TopStruct(# the carrier of b2,the topology of b2 #) is locally_connected
proof end;

theorem Th14: :: TOPALG_5:14
for b1 being non empty TopSpace
for b2 being non empty open SubSpace of b1 st b1 is locally_connected holds
b2 is locally_connected
proof end;

theorem Th15: :: TOPALG_5:15
for b1, b2 being non empty TopSpace st b1,b2 are_homeomorphic & b1 is locally_connected holds
b2 is locally_connected
proof end;

theorem Th16: :: TOPALG_5:16
for b1 being non empty TopSpace st ex b2 being Basis of b1 st
for b3 being Subset of b1 st b3 in b2 holds
b3 is connected holds
b1 is locally_connected
proof end;

theorem Th17: :: TOPALG_5:17
for b1, b2 being real number st b1 <= b2 holds
Closed-Interval-TSpace b1,b2 is locally_connected
proof end;

registration
cluster I[01] -> locally_connected ;
coherence
I[01] is locally_connected
by Th17, TOPMETR:27;
end;

registration
let c6 be non empty open Subset of I[01] ;
cluster I[01] | a1 -> locally_connected open ;
coherence
I[01] | c6 is locally_connected
by Th14;
end;

definition
let c6 be real number ;
func ExtendInt c1 -> Function of I[01] ,R^1 means :Def1: :: TOPALG_5:def 1
for b1 being Point of I[01] holds a2 . b1 = a1 * b1;
existence
ex b1 being Function of I[01] ,R^1 st
for b2 being Point of I[01] holds b1 . b2 = c6 * b2
proof end;
uniqueness
for b1, b2 being Function of I[01] ,R^1 st ( for b3 being Point of I[01] holds b1 . b3 = c6 * b3 ) & ( for b3 being Point of I[01] holds b2 . b3 = c6 * b3 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def1 defines ExtendInt TOPALG_5:def 1 :
for b1 being real number
for b2 being Function of I[01] ,R^1 holds
( b2 = ExtendInt b1 iff for b3 being Point of I[01] holds b2 . b3 = b1 * b3 );

registration
let c6 be real number ;
cluster ExtendInt a1 -> continuous ;
coherence
ExtendInt c6 is continuous
proof end;
end;

definition
let c6 be real number ;
redefine func ExtendInt as ExtendInt c1 -> Path of R^1 0, R^1 a1;
coherence
ExtendInt c6 is Path of R^1 0, R^1 c6
proof end;
end;

definition
let c6, c7, c8 be non empty TopSpace;
let c9 be Function of [:c6,c7:],c8;
let c10 be Point of c7;
func Prj1 c5,c4 -> Function of a1,a3 means :Def2: :: TOPALG_5:def 2
for b1 being Point of a1 holds a6 . b1 = a4 . b1,a5;
existence
ex b1 being Function of c6,c8 st
for b2 being Point of c6 holds b1 . b2 = c9 . b2,c10
proof end;
uniqueness
for b1, b2 being Function of c6,c8 st ( for b3 being Point of c6 holds b1 . b3 = c9 . b3,c10 ) & ( for b3 being Point of c6 holds b2 . b3 = c9 . b3,c10 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 defines Prj1 TOPALG_5:def 2 :
for b1, b2, b3 being non empty TopSpace
for b4 being Function of [:b1,b2:],b3
for b5 being Point of b2
for b6 being Function of b1,b3 holds
( b6 = Prj1 b5,b4 iff for b7 being Point of b1 holds b6 . b7 = b4 . b7,b5 );

definition
let c6, c7, c8 be non empty TopSpace;
let c9 be Function of [:c6,c7:],c8;
let c10 be Point of c6;
func Prj2 c5,c4 -> Function of a2,a3 means :Def3: :: TOPALG_5:def 3
for b1 being Point of a2 holds a6 . b1 = a4 . a5,b1;
existence
ex b1 being Function of c7,c8 st
for b2 being Point of c7 holds b1 . b2 = c9 . c10,b2
proof end;
uniqueness
for b1, b2 being Function of c7,c8 st ( for b3 being Point of c7 holds b1 . b3 = c9 . c10,b3 ) & ( for b3 being Point of c7 holds b2 . b3 = c9 . c10,b3 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines Prj2 TOPALG_5:def 3 :
for b1, b2, b3 being non empty TopSpace
for b4 being Function of [:b1,b2:],b3
for b5 being Point of b1
for b6 being Function of b2,b3 holds
( b6 = Prj2 b5,b4 iff for b7 being Point of b2 holds b6 . b7 = b4 . b5,b7 );

registration
let c6, c7, c8 be non empty TopSpace;
let c9 be continuous Function of [:c6,c7:],c8;
let c10 be Point of c7;
cluster Prj1 a5,a4 -> continuous ;
coherence
Prj1 c10,c9 is continuous
proof end;
end;

registration
let c6, c7, c8 be non empty TopSpace;
let c9 be continuous Function of [:c6,c7:],c8;
let c10 be Point of c6;
cluster Prj2 a5,a4 -> continuous ;
coherence
Prj2 c10,c9 is continuous
proof end;
end;

theorem Th18: :: TOPALG_5:18
for b1 being non empty TopSpace
for b2, b3 being Point of b1
for b4, b5 being Path of b2,b3
for b6 being Homotopy of b4,b5
for b7 being Point of I[01] st b6 is continuous holds
Prj1 b7,b6 is continuous
proof end;

theorem Th19: :: TOPALG_5:19
for b1 being non empty TopSpace
for b2, b3 being Point of b1
for b4, b5 being Path of b2,b3
for b6 being Homotopy of b4,b5
for b7 being Point of I[01] st b6 is continuous holds
Prj2 b7,b6 is continuous
proof end;

set c6 = Tunit_circle 2;

set c7 = the carrier of (Tunit_circle 2);

E28: now
Tunit_circle 2 = Tcircle (0.REAL 2),1 by TOPREALB:def 7;
hence the carrier of (Tunit_circle 2) = Sphere |[0,0]|,1 by TOPREALB:9, EUCLID:58;
end;

Lemma29: dom CircleMap = REAL
by FUNCT_2:def 1, TOPMETR:24;

definition
let c8 be real number ;
func cLoop c1 -> Function of I[01] ,(Tunit_circle 2) means :Def4: :: TOPALG_5:def 4
for b1 being Point of I[01] holds a2 . b1 = |[(cos (((2 * PI ) * a1) * b1)),(sin (((2 * PI ) * a1) * b1))]|;
existence
ex b1 being Function of I[01] ,(Tunit_circle 2) st
for b2 being Point of I[01] holds b1 . b2 = |[(cos (((2 * PI ) * c8) * b2)),(sin (((2 * PI ) * c8) * b2))]|
proof end;
uniqueness
for b1, b2 being Function of I[01] ,(Tunit_circle 2) st ( for b3 being Point of I[01] holds b1 . b3 = |[(cos (((2 * PI ) * c8) * b3)),(sin (((2 * PI ) * c8) * b3))]| ) & ( for b3 being Point of I[01] holds b2 . b3 = |[(cos (((2 * PI ) * c8) * b3)),(sin (((2 * PI ) * c8) * b3))]| ) holds
b1 = b2
proof end;
end;

:: deftheorem Def4 defines cLoop TOPALG_5:def 4 :
for b1 being real number
for b2 being Function of I[01] ,(Tunit_circle 2) holds
( b2 = cLoop b1 iff for b3 being Point of I[01] holds b2 . b3 = |[(cos (((2 * PI ) * b1) * b3)),(sin (((2 * PI ) * b1) * b3))]| );

theorem Th20: :: TOPALG_5:20
for b1 being real number holds cLoop b1 = CircleMap * (ExtendInt b1)
proof end;

definition
let c8 be Integer;
redefine func cLoop as cLoop c1 -> Loop of c[10] ;
coherence
cLoop c8 is Loop of c[10]
proof end;
end;

Lemma32: ex b1 being Subset-Family of (Tunit_circle 2) st
( b1 is_a_cover_of Tunit_circle 2 & b1 is open & ( for b2 being Subset of (Tunit_circle 2) st b2 in b1 holds
ex b3 being mutually-disjoint open Subset-Family of R^1 st
( union b3 = CircleMap " b2 & ( for b4 being Subset of R^1 st b4 in b3 holds
for b5 being Function of (R^1 | b4),((Tunit_circle 2) | b2) st b5 = CircleMap | b4 holds
b5 is_homeomorphism ) ) ) )
proof end;

Lemma33: the carrier of (Sspace 0[01] ) = {0}
by BORSUK_1:def 17, TEX_2:def 4;

then Lemma34: [#] (Sspace 0[01] ) = {0}
;

Lemma35: for b1, b2 being real number
for b3 being Subset-Family of (Closed-Interval-TSpace b1,b2)
for b4 being IntervalCover of b3
for b5 being IntervalCoverPts of b4 st b3 is_a_cover_of Closed-Interval-TSpace b1,b2 & b3 is open & b3 is connected & b1 <= b2 holds
not b5 is empty
proof end;

theorem Th21: :: TOPALG_5:21
for b1 being Subset-Family of (Tunit_circle 2) st b1 is_a_cover_of Tunit_circle 2 & b1 is open holds
for b2 being non empty TopSpace
for b3 being continuous Function of [:b2,I[01] :],(Tunit_circle 2)
for b4 being Point of b2 ex b5 being non empty FinSequence of REAL st
( b5 . 1 = 0 & b5 . (len b5) = 1 & b5 is increasing & ex b6 being open Subset of b2 st
( b4 in b6 & ( for b7 being natural number st b7 in dom b5 & b7 + 1 in dom b5 holds
ex b8 being non empty Subset of (Tunit_circle 2) st
( b8 in b1 & b3 .: [:b6,[.(b5 . b7),(b5 . (b7 + 1)).]:] c= b8 ) ) ) )
proof end;

theorem Th22: :: TOPALG_5:22
for b1 being non empty TopSpace
for b2 being Function of [:b1,I[01] :],(Tunit_circle 2)
for b3 being Function of [:b1,(Sspace 0[01] ):],R^1 st b2 is continuous & b3 is continuous & b2 | [:the carrier of b1,{0}:] = CircleMap * b3 holds
ex b4 being Function of [:b1,I[01] :],R^1 st
( b4 is continuous & b2 = CircleMap * b4 & b4 | [:the carrier of b1,{0}:] = b3 & ( for b5 being Function of [:b1,I[01] :],R^1 st b5 is continuous & b2 = CircleMap * b5 & b5 | [:the carrier of b1,{0}:] = b3 holds
b4 = b5 ) )
proof end;

theorem Th23: :: TOPALG_5:23
for b1, b2 being Point of (Tunit_circle 2)
for b3 being Point of R^1
for b4 being Path of b1,b2 st b3 in CircleMap " {b1} holds
ex b5 being Function of I[01] ,R^1 st
( b5 . 0 = b3 & b4 = CircleMap * b5 & b5 is continuous & ( for b6 being Function of I[01] ,R^1 st b6 is continuous & b4 = CircleMap * b6 & b6 . 0 = b3 holds
b5 = b6 ) )
proof end;

theorem Th24: :: TOPALG_5:24
for b1, b2 being Point of (Tunit_circle 2)
for b3, b4 being Path of b1,b2
for b5 being Homotopy of b3,b4
for b6 being Point of R^1 st b3,b4 are_homotopic & b6 in CircleMap " {b1} holds
ex b7 being Point of R^1 ex b8, b9 being Path of b6,b7ex b10 being Homotopy of b8,b9 st
( b8,b9 are_homotopic & b5 = CircleMap * b10 & b7 in CircleMap " {b2} & ( for b11 being Homotopy of b8,b9 st b5 = CircleMap * b11 holds
b10 = b11 ) )
proof end;

definition
func Ciso -> Function of INT.Group ,(pi_1 (Tunit_circle 2),c[10] ) means :Def5: :: TOPALG_5:def 5
for b1 being Integer holds a1 . b1 = Class (EqRel (Tunit_circle 2),c[10] ),(cLoop b1);
existence
ex b1 being Function of INT.Group ,(pi_1 (Tunit_circle 2),c[10] ) st
for b2 being Integer holds b1 . b2 = Class (EqRel (Tunit_circle 2),c[10] ),(cLoop b2)
proof end;
uniqueness
for b1, b2 being Function of INT.Group ,(pi_1 (Tunit_circle 2),c[10] ) st ( for b3 being Integer holds b1 . b3 = Class (EqRel (Tunit_circle 2),c[10] ),(cLoop b3) ) & ( for b3 being Integer holds b2 . b3 = Class (EqRel (Tunit_circle 2),c[10] ),(cLoop b3) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines Ciso TOPALG_5:def 5 :
for b1 being Function of INT.Group ,(pi_1 (Tunit_circle 2),c[10] ) holds
( b1 = Ciso iff for b2 being Integer holds b1 . b2 = Class (EqRel (Tunit_circle 2),c[10] ),(cLoop b2) );

theorem Th25: :: TOPALG_5:25
for b1 being Integer
for b2 being Path of R^1 0, R^1 b1 holds Ciso . b1 = Class (EqRel (Tunit_circle 2),c[10] ),(CircleMap * b2)
proof end;

definition
redefine func Ciso as Ciso -> Homomorphism of INT.Group ,(pi_1 (Tunit_circle 2),c[10] );
coherence
Ciso is Homomorphism of INT.Group ,(pi_1 (Tunit_circle 2),c[10] )
proof end;
end;

registration
cluster Ciso -> one-to-one onto ;
coherence
( Ciso is one-to-one & Ciso is onto )
proof end;
end;

theorem Th26: :: TOPALG_5:26
Ciso is being_isomorphism
proof end;

Lemma43: for b1 being real positive number
for b2 being Point of (TOP-REAL 2)
for b3 being Point of (Tcircle b2,b1) holds INT.Group , pi_1 (Tcircle b2,b1),b3 are_isomorphic
proof end;

theorem Th27: :: TOPALG_5:27
for b1 being being_simple_closed_curve SubSpace of TOP-REAL 2
for b2 being Point of b1 holds INT.Group , pi_1 b1,b2 are_isomorphic
proof end;

registration
let c8 be being_simple_closed_curve SubSpace of TOP-REAL 2;
let c9 be Point of c8;
cluster FundamentalGroup a1,a2 -> infinite ;
coherence
not pi_1 c8,c9 is finite
proof end;
end;