Article TOPALG_4, MML version 4.99.1005

:: TOPALG_4:th 1
theorem
for b1, b2 being non empty multMagma
for b3 being Element of the carrier of product <*b1,b2*> holds
   ex b4 being Element of the carrier of b1 st
      ex b5 being Element of the carrier of b2 st
         b3 = <*b4,b5*>;

:: TOPALG_4:funcnot 1 => TOPALG_4:func 1
definition
  let a1, a2, a3, a4 be non empty multMagma;
  let a5 be Function-like quasi_total Relation of the carrier of a1,the carrier of a3;
  let a6 be Function-like quasi_total Relation of the carrier of a2,the carrier of a4;
  func Gr2Iso(A5,A6) -> Function-like quasi_total Relation of the carrier of product <*a1,a2*>,the carrier of product <*a3,a4*> means
    for b1 being Element of the carrier of product <*a1,a2*> holds
       ex b2 being Element of the carrier of a1 st
          ex b3 being Element of the carrier of a2 st
             b1 = <*b2,b3*> &
              it . b1 = <*a5 . b2,a6 . b3*>;
end;

:: TOPALG_4:def 1
theorem
for b1, b2, b3, b4 being non empty multMagma
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3
for b6 being Function-like quasi_total Relation of the carrier of b2,the carrier of b4
for b7 being Function-like quasi_total Relation of the carrier of product <*b1,b2*>,the carrier of product <*b3,b4*> holds
      b7 = Gr2Iso(b5,b6)
   iff
      for b8 being Element of the carrier of product <*b1,b2*> holds
         ex b9 being Element of the carrier of b1 st
            ex b10 being Element of the carrier of b2 st
               b8 = <*b9,b10*> &
                b7 . b8 = <*b5 . b9,b6 . b10*>;

:: TOPALG_4:th 2
theorem
for b1, b2, b3, b4 being non empty multMagma
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3
for b6 being Function-like quasi_total Relation of the carrier of b2,the carrier of b4
for b7 being Element of the carrier of b1
for b8 being Element of the carrier of b2 holds
   (Gr2Iso(b5,b6)) . <*b7,b8*> = <*b5 . b7,b6 . b8*>;

:: TOPALG_4:funcnot 2 => TOPALG_4:func 2
definition
  let a1, a2, a3, a4 be non empty Group-like associative multMagma;
  let a5 be Function-like quasi_total multiplicative Relation of the carrier of a1,the carrier of a3;
  let a6 be Function-like quasi_total multiplicative Relation of the carrier of a2,the carrier of a4;
  redefine func Gr2Iso(a5,a6) -> Function-like quasi_total multiplicative Relation of the carrier of product <*a1,a2*>,the carrier of product <*a3,a4*>;
end;

:: TOPALG_4:th 3
theorem
for b1, b2, b3, b4 being non empty multMagma
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3
for b6 being Function-like quasi_total Relation of the carrier of b2,the carrier of b4
      st b5 is one-to-one & b6 is one-to-one
   holds Gr2Iso(b5,b6) is one-to-one;

:: TOPALG_4:th 4
theorem
for b1, b2, b3, b4 being non empty multMagma
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3
for b6 being Function-like quasi_total Relation of the carrier of b2,the carrier of b4
      st b5 is onto(the carrier of b1, the carrier of b3) & b6 is onto(the carrier of b2, the carrier of b4)
   holds Gr2Iso(b5,b6) is onto(the carrier of product <*b1,b2*>, the carrier of product <*b3,b4*>);

:: TOPALG_4:th 5
theorem
for b1, b2, b3, b4 being non empty Group-like associative multMagma
for b5 being Function-like quasi_total multiplicative Relation of the carrier of b1,the carrier of b3
for b6 being Function-like quasi_total multiplicative Relation of the carrier of b2,the carrier of b4
      st b5 is being_isomorphism(b1, b3) & b6 is being_isomorphism(b2, b4)
   holds Gr2Iso(b5,b6) is being_isomorphism(product <*b1,b2*>, product <*b3,b4*>);

:: TOPALG_4:th 6
theorem
for b1, b2, b3, b4 being non empty Group-like associative multMagma
      st b1,b3 are_isomorphic & b2,b4 are_isomorphic
   holds product <*b1,b2*>,product <*b3,b4*> are_isomorphic;

:: TOPALG_4:th 7
theorem
for b1, b2 being Relation-like Function-like set
      st proj1 b1 = proj1 b2
   holds pr1 <:b1,b2:> = b1;

:: TOPALG_4:th 8
theorem
for b1, b2 being Relation-like Function-like set
      st proj1 b1 = proj1 b2
   holds pr2 <:b1,b2:> = b2;

:: TOPALG_4:funcnot 3 => TOPALG_4:func 3
definition
  let a1, a2, a3 be non empty TopSpace-like TopStruct;
  let a4 be Function-like quasi_total Relation of the carrier of a3,the carrier of a1;
  let a5 be Function-like quasi_total Relation of the carrier of a3,the carrier of a2;
  redefine func <:a4, a5:> -> Function-like quasi_total Relation of the carrier of a3,the carrier of [:a1,a2:];
end;

:: TOPALG_4:funcnot 4 => TOPALG_4:func 4
definition
  let a1, a2, a3 be non empty TopSpace-like TopStruct;
  let a4 be Function-like quasi_total Relation of the carrier of a3,the carrier of [:a1,a2:];
  redefine func pr1 a4 -> Function-like quasi_total Relation of the carrier of a3,the carrier of a1;
end;

:: TOPALG_4:funcnot 5 => TOPALG_4:func 5
definition
  let a1, a2, a3 be non empty TopSpace-like TopStruct;
  let a4 be Function-like quasi_total Relation of the carrier of a3,the carrier of [:a1,a2:];
  redefine func pr2 a4 -> Function-like quasi_total Relation of the carrier of a3,the carrier of a2;
end;

:: TOPALG_4:th 9
theorem
for b1, b2, b3 being non empty TopSpace-like TopStruct
for b4 being Function-like quasi_total continuous Relation of the carrier of b1,the carrier of [:b2,b3:] holds
   pr1 b4 is continuous(b1, b2);

:: TOPALG_4:th 10
theorem
for b1, b2, b3 being non empty TopSpace-like TopStruct
for b4 being Function-like quasi_total continuous Relation of the carrier of b1,the carrier of [:b2,b3:] holds
   pr2 b4 is continuous(b1, b3);

:: TOPALG_4:th 11
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
      st [b3,b5],[b4,b6] are_connected
   holds b3,b4 are_connected;

:: TOPALG_4:th 12
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
      st [b3,b5],[b4,b6] are_connected
   holds b5,b6 are_connected;

:: TOPALG_4:th 13
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
   st [b3,b5],[b4,b6] are_connected
for b7 being Path of [b3,b5],[b4,b6] holds
   pr1 b7 is Path of b3,b4;

:: TOPALG_4:th 14
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
   st [b3,b5],[b4,b6] are_connected
for b7 being Path of [b3,b5],[b4,b6] holds
   pr2 b7 is Path of b5,b6;

:: TOPALG_4:th 15
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
      st b3,b4 are_connected & b5,b6 are_connected
   holds [b3,b5],[b4,b6] are_connected;

:: TOPALG_4:th 16
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
   st b3,b4 are_connected & b5,b6 are_connected
for b7 being Path of b3,b4
for b8 being Path of b5,b6 holds
   <:b7,b8:> is Path of [b3,b5],[b4,b6];

:: TOPALG_4:funcnot 6 => TOPALG_4:func 6
definition
  let a1, a2 be non empty TopSpace-like arcwise_connected TopStruct;
  let a3, a4 be Element of the carrier of a1;
  let a5, a6 be Element of the carrier of a2;
  let a7 be Path of a3,a4;
  let a8 be Path of a5,a6;
  redefine func <:a7, a8:> -> Path of [a3,a5],[a4,a6];
end;

:: TOPALG_4:funcnot 7 => TOPALG_4:func 7
definition
  let a1, a2 be non empty TopSpace-like TopStruct;
  let a3 be Element of the carrier of a1;
  let a4 be Element of the carrier of a2;
  let a5 be Path of a3,a3;
  let a6 be Path of a4,a4;
  redefine func <:a5, a6:> -> Path of [a3,a4],[a3,a4];
end;

:: TOPALG_4:funcreg 1
registration
  let a1, a2 be non empty TopSpace-like arcwise_connected TopStruct;
  cluster [:a1,a2:] -> strict TopSpace-like arcwise_connected;
end;

:: TOPALG_4:funcnot 8 => TOPALG_4:func 8
definition
  let a1, a2 be non empty TopSpace-like arcwise_connected TopStruct;
  let a3, a4 be Element of the carrier of a1;
  let a5, a6 be Element of the carrier of a2;
  let a7 be Path of [a3,a5],[a4,a6];
  redefine func pr1 a7 -> Path of a3,a4;
end;

:: TOPALG_4:funcnot 9 => TOPALG_4:func 9
definition
  let a1, a2 be non empty TopSpace-like arcwise_connected TopStruct;
  let a3, a4 be Element of the carrier of a1;
  let a5, a6 be Element of the carrier of a2;
  let a7 be Path of [a3,a5],[a4,a6];
  redefine func pr2 a7 -> Path of a5,a6;
end;

:: TOPALG_4:funcnot 10 => TOPALG_4:func 10
definition
  let a1, a2 be non empty TopSpace-like TopStruct;
  let a3 be Element of the carrier of a1;
  let a4 be Element of the carrier of a2;
  let a5 be Path of [a3,a4],[a3,a4];
  redefine func pr1 a5 -> Path of a3,a3;
end;

:: TOPALG_4:funcnot 11 => TOPALG_4:func 11
definition
  let a1, a2 be non empty TopSpace-like TopStruct;
  let a3 be Element of the carrier of a1;
  let a4 be Element of the carrier of a2;
  let a5 be Path of [a3,a4],[a3,a4];
  redefine func pr2 a5 -> Path of a4,a4;
end;

:: TOPALG_4:th 17
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
for b7, b8 being Path of [b3,b5],[b4,b6]
for b9 being Homotopy of b7,b8
for b10, b11 being Path of b3,b4
      st b10 = pr1 b7 & b11 = pr1 b8 & b7,b8 are_homotopic
   holds pr1 b9 is Homotopy of b10,b11;

:: TOPALG_4:th 18
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
for b7, b8 being Path of [b3,b5],[b4,b6]
for b9 being Homotopy of b7,b8
for b10, b11 being Path of b5,b6
      st b10 = pr2 b7 & b11 = pr2 b8 & b7,b8 are_homotopic
   holds pr2 b9 is Homotopy of b10,b11;

:: TOPALG_4:th 19
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
for b7, b8 being Path of [b3,b5],[b4,b6]
for b9, b10 being Path of b3,b4
      st b9 = pr1 b7 & b10 = pr1 b8 & b7,b8 are_homotopic
   holds b9,b10 are_homotopic;

:: TOPALG_4:th 20
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
for b7, b8 being Path of [b3,b5],[b4,b6]
for b9, b10 being Path of b5,b6
      st b9 = pr2 b7 & b10 = pr2 b8 & b7,b8 are_homotopic
   holds b9,b10 are_homotopic;

:: TOPALG_4:th 21
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
for b7, b8 being Path of [b3,b5],[b4,b6]
for b9, b10 being Path of b3,b4
for b11, b12 being Path of b5,b6
for b13 being Homotopy of b9,b10
for b14 being Homotopy of b11,b12
      st b9 = pr1 b7 & b10 = pr1 b8 & b11 = pr2 b7 & b12 = pr2 b8 & b9,b10 are_homotopic & b11,b12 are_homotopic
   holds <:b13,b14:> is Homotopy of b7,b8;

:: TOPALG_4:th 22
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
for b7, b8 being Path of [b3,b5],[b4,b6]
for b9, b10 being Path of b3,b4
for b11, b12 being Path of b5,b6
      st b9 = pr1 b7 & b10 = pr1 b8 & b11 = pr2 b7 & b12 = pr2 b8 & b9,b10 are_homotopic & b11,b12 are_homotopic
   holds b7,b8 are_homotopic;

:: TOPALG_4:th 23
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4, b5 being Element of the carrier of b1
for b6, b7, b8 being Element of the carrier of b2
for b9 being Path of [b3,b6],[b4,b7]
for b10 being Path of [b4,b7],[b5,b8]
for b11 being Path of b3,b4
for b12 being Path of b4,b5
      st [b3,b6],[b4,b7] are_connected & [b4,b7],[b5,b8] are_connected & b11 = pr1 b9 & b12 = pr1 b10
   holds pr1 (b9 + b10) = b11 + b12;

:: TOPALG_4:th 24
theorem
for b1, b2 being non empty TopSpace-like arcwise_connected TopStruct
for b3, b4, b5 being Element of the carrier of b1
for b6, b7, b8 being Element of the carrier of b2
for b9 being Path of [b3,b6],[b4,b7]
for b10 being Path of [b4,b7],[b5,b8] holds
   pr1 (b9 + b10) = (pr1 b9) + pr1 b10;

:: TOPALG_4:th 25
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4, b5 being Element of the carrier of b1
for b6, b7, b8 being Element of the carrier of b2
for b9 being Path of [b3,b6],[b4,b7]
for b10 being Path of [b4,b7],[b5,b8]
for b11 being Path of b6,b7
for b12 being Path of b7,b8
      st [b3,b6],[b4,b7] are_connected & [b4,b7],[b5,b8] are_connected & b11 = pr2 b9 & b12 = pr2 b10
   holds pr2 (b9 + b10) = b11 + b12;

:: TOPALG_4:th 26
theorem
for b1, b2 being non empty TopSpace-like arcwise_connected TopStruct
for b3, b4, b5 being Element of the carrier of b1
for b6, b7, b8 being Element of the carrier of b2
for b9 being Path of [b3,b6],[b4,b7]
for b10 being Path of [b4,b7],[b5,b8] holds
   pr2 (b9 + b10) = (pr2 b9) + pr2 b10;

:: TOPALG_4:funcnot 12 => TOPALG_4:func 12
definition
  let a1, a2 be non empty TopSpace-like TopStruct;
  let a3 be Element of the carrier of a1;
  let a4 be Element of the carrier of a2;
  func FGPrIso(A3,A4) -> Function-like quasi_total Relation of the carrier of FundamentalGroup([:a1,a2:],[a3,a4]),the carrier of product <*FundamentalGroup(a1,a3),FundamentalGroup(a2,a4)*> means
    for b1 being Element of the carrier of FundamentalGroup([:a1,a2:],[a3,a4]) holds
       ex b2 being Path of [a3,a4],[a3,a4] st
          b1 = Class(EqRel([:a1,a2:],[a3,a4]),b2) &
           it . b1 = <*Class(EqRel(a1,a3),pr1 b2),Class(EqRel(a2,a4),pr2 b2)*>;
end;

:: TOPALG_4:def 2
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3 being Element of the carrier of b1
for b4 being Element of the carrier of b2
for b5 being Function-like quasi_total Relation of the carrier of FundamentalGroup([:b1,b2:],[b3,b4]),the carrier of product <*FundamentalGroup(b1,b3),FundamentalGroup(b2,b4)*> holds
      b5 = FGPrIso(b3,b4)
   iff
      for b6 being Element of the carrier of FundamentalGroup([:b1,b2:],[b3,b4]) holds
         ex b7 being Path of [b3,b4],[b3,b4] st
            b6 = Class(EqRel([:b1,b2:],[b3,b4]),b7) &
             b5 . b6 = <*Class(EqRel(b1,b3),pr1 b7),Class(EqRel(b2,b4),pr2 b7)*>;

:: TOPALG_4:th 27
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3 being Element of the carrier of b1
for b4 being Element of the carrier of b2
for b5 being Element of the carrier of FundamentalGroup([:b1,b2:],[b3,b4])
for b6 being Path of [b3,b4],[b3,b4]
      st b5 = Class(EqRel([:b1,b2:],[b3,b4]),b6)
   holds (FGPrIso(b3,b4)) . b5 = <*Class(EqRel(b1,b3),pr1 b6),Class(EqRel(b2,b4),pr2 b6)*>;

:: TOPALG_4:th 28
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3 being Element of the carrier of b1
for b4 being Element of the carrier of b2
for b5 being Path of [b3,b4],[b3,b4] holds
   (FGPrIso(b3,b4)) . Class(EqRel([:b1,b2:],[b3,b4]),b5) = <*Class(EqRel(b1,b3),pr1 b5),Class(EqRel(b2,b4),pr2 b5)*>;

:: TOPALG_4:funcreg 2
registration
  let a1, a2 be non empty TopSpace-like TopStruct;
  let a3 be Element of the carrier of a1;
  let a4 be Element of the carrier of a2;
  cluster FGPrIso(a3,a4) -> Function-like one-to-one quasi_total onto;
end;

:: TOPALG_4:funcnot 13 => TOPALG_4:func 13
definition
  let a1, a2 be non empty TopSpace-like TopStruct;
  let a3 be Element of the carrier of a1;
  let a4 be Element of the carrier of a2;
  redefine func FGPrIso(a3,a4) -> Function-like quasi_total multiplicative Relation of the carrier of FundamentalGroup([:a1,a2:],[a3,a4]),the carrier of product <*FundamentalGroup(a1,a3),FundamentalGroup(a2,a4)*>;
end;

:: TOPALG_4:th 29
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3 being Element of the carrier of b1
for b4 being Element of the carrier of b2 holds
   FGPrIso(b3,b4) is being_isomorphism(FundamentalGroup([:b1,b2:],[b3,b4]), product <*FundamentalGroup(b1,b3),FundamentalGroup(b2,b4)*>);

:: TOPALG_4:th 30
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3 being Element of the carrier of b1
for b4 being Element of the carrier of b2 holds
   FundamentalGroup([:b1,b2:],[b3,b4]),product <*FundamentalGroup(b1,b3),FundamentalGroup(b2,b4)*> are_isomorphic;

:: TOPALG_4:th 31
theorem
for b1, b2 being non empty TopSpace-like TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2
for b7 being Function-like quasi_total multiplicative Relation of the carrier of FundamentalGroup(b1,b3),the carrier of FundamentalGroup(b1,b4)
for b8 being Function-like quasi_total multiplicative Relation of the carrier of FundamentalGroup(b2,b5),the carrier of FundamentalGroup(b2,b6)
      st b7 is being_isomorphism(FundamentalGroup(b1,b3), FundamentalGroup(b1,b4)) & b8 is being_isomorphism(FundamentalGroup(b2,b5), FundamentalGroup(b2,b6))
   holds (Gr2Iso(b7,b8)) * FGPrIso(b3,b5) is being_isomorphism(FundamentalGroup([:b1,b2:],[b3,b5]), product <*FundamentalGroup(b1,b4),FundamentalGroup(b2,b6)*>);

:: TOPALG_4:th 32
theorem
for b1, b2 being non empty TopSpace-like arcwise_connected TopStruct
for b3, b4 being Element of the carrier of b1
for b5, b6 being Element of the carrier of b2 holds
FundamentalGroup([:b1,b2:],[b3,b5]),product <*FundamentalGroup(b1,b4),FundamentalGroup(b2,b6)*> are_isomorphic;