Article GROUP_5, MML version 4.99.1005

:: GROUP_5:sch 1
scheme GROUP_5:sch 1
{F1 -> non empty set,
  F2 -> non empty set,
  F3 -> non empty set,
  F4 -> Element of F2()}:
{F4(b1, b2, b3) where b1 is Element of F1(), b2 is Element of F2(), b3 is Element of F3(): P1[b1, b2, b3]} is Element of bool F2()


:: GROUP_5:th 1
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma holds
      b1 in (1). b2
   iff
      b1 = 1_ b2;

:: GROUP_5:th 2
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
for b4 being Subgroup of b1
      st b2 in b4 & b3 in b4
   holds b2 |^ b3 in b4;

:: GROUP_5:th 3
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
for b4 being strict normal Subgroup of b1
      st b2 in b4
   holds b2 |^ b3 in b4;

:: GROUP_5:th 4
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Subgroup of b2 holds
   b1 in b3 * b4
iff
   ex b5, b6 being Element of the carrier of b2 st
      b1 = b5 * b6 & b5 in b3 & b6 in b4;

:: GROUP_5:th 5
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Subgroup of b2
      st b3 * b4 = b4 * b3
   holds    b1 in b3 "\/" b4
   iff
      ex b5, b6 being Element of the carrier of b2 st
         b1 = b5 * b6 & b5 in b3 & b6 in b4;

:: GROUP_5:th 6
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Subgroup of b2
      st b2 is non empty Group-like associative commutative multMagma
   holds    b1 in b3 "\/" b4
   iff
      ex b5, b6 being Element of the carrier of b2 st
         b1 = b5 * b6 & b5 in b3 & b6 in b4;

:: GROUP_5:th 7
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma
for b3, b4 being strict normal Subgroup of b2 holds
   b1 in b3 "\/" b4
iff
   ex b5, b6 being Element of the carrier of b2 st
      b1 = b5 * b6 & b5 in b3 & b6 in b4;

:: GROUP_5:th 8
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Subgroup of b1
for b3 being normal Subgroup of b1 holds
   b2 * b3 = b3 * b2;

:: GROUP_5:funcnot 1 => GROUP_5:func 1
definition
  let a1 be non empty Group-like associative multMagma;
  let a2 be FinSequence of the carrier of a1;
  let a3 be Element of the carrier of a1;
  func A2 |^ A3 -> FinSequence of the carrier of a1 means
    len it = len a2 &
     (for b1 being natural set
           st b1 in dom a2
        holds it . b1 = (a2 /. b1) |^ a3);
end;

:: GROUP_5:def 1
theorem
for b1 being non empty Group-like associative multMagma
for b2 being FinSequence of the carrier of b1
for b3 being Element of the carrier of b1
for b4 being FinSequence of the carrier of b1 holds
      b4 = b2 |^ b3
   iff
      len b4 = len b2 &
       (for b5 being natural set
             st b5 in dom b2
          holds b4 . b5 = (b2 /. b5) |^ b3);

:: GROUP_5:th 12
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3, b4 being FinSequence of the carrier of b1 holds
(b3 |^ b2) ^ (b4 |^ b2) = (b3 ^ b4) |^ b2;

:: GROUP_5:th 13
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   (<*> the carrier of b1) |^ b2 = {};

:: GROUP_5:th 14
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
<*b2*> |^ b3 = <*b2 |^ b3*>;

:: GROUP_5:th 15
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1 holds
<*b2,b3*> |^ b4 = <*b2 |^ b4,b3 |^ b4*>;

:: GROUP_5:th 16
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4, b5 being Element of the carrier of b1 holds
<*b2,b3,b4*> |^ b5 = <*b2 |^ b5,b3 |^ b5,b4 |^ b5*>;

:: GROUP_5:th 17
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3 being FinSequence of the carrier of b1 holds
   Product (b3 |^ b2) = (Product b3) |^ b2;

:: GROUP_5:th 18
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3 being FinSequence of the carrier of b1
for b4 being FinSequence of INT holds
   (b3 |^ b2) |^ b4 = (b3 |^ b4) |^ b2;

:: GROUP_5:funcnot 2 => GROUP_5:func 2
definition
  let a1 be non empty Group-like associative multMagma;
  let a2, a3 be Element of the carrier of a1;
  func [.A2,A3.] -> Element of the carrier of a1 equals
    ((a2 " * (a3 ")) * a2) * a3;
end;

:: GROUP_5:def 2
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3.] = ((b2 " * (b3 ")) * b2) * b3;

:: GROUP_5:th 19
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3.] = ((b2 " * (b3 ")) * b2) * b3 &
 [.b2,b3.] = (b2 " * (b3 " * b2)) * b3 &
 [.b2,b3.] = b2 " * ((b3 " * b2) * b3) &
 [.b2,b3.] = b2 " * (b3 " * (b2 * b3)) &
 [.b2,b3.] = (b2 " * (b3 ")) * (b2 * b3);

:: GROUP_5:th 20
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3.] = (b3 * b2) " * (b2 * b3);

:: GROUP_5:th 21
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3.] = (b3 " |^ b2) * b3 &
 [.b2,b3.] = b2 " * (b2 |^ b3);

:: GROUP_5:th 22
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   [.1_ b1,b2.] = 1_ b1 & [.b2,1_ b1.] = 1_ b1;

:: GROUP_5:th 23
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   [.b2,b2.] = 1_ b1;

:: GROUP_5:th 24
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   [.b2,b2 ".] = 1_ b1 & [.b2 ",b2.] = 1_ b1;

:: GROUP_5:th 25
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3.] " = [.b3,b2.];

:: GROUP_5:th 26
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1 holds
[.b2,b3.] |^ b4 = [.b2 |^ b4,b3 |^ b4.];

:: GROUP_5:th 27
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3.] = ((b2 " |^ 2) * ((b2 * (b3 ")) |^ 2)) * (b3 |^ 2);

:: GROUP_5:th 28
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1 holds
[.b2 * b3,b4.] = ([.b2,b4.] |^ b3) * [.b3,b4.];

:: GROUP_5:th 29
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1 holds
[.b2,b3 * b4.] = [.b2,b4.] * ([.b2,b3.] |^ b4);

:: GROUP_5:th 30
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2 ",b3.] = [.b3,b2.] |^ (b2 ");

:: GROUP_5:th 31
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3 ".] = [.b3,b2.] |^ (b3 ");

:: GROUP_5:th 32
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2 ",b3 ".] = [.b2,b3.] |^ ((b2 * b3) ") &
 [.b2 ",b3 ".] = [.b2,b3.] |^ ((b3 * b2) ");

:: GROUP_5:th 33
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3 |^ (b2 ").] = [.b3,b2 ".];

:: GROUP_5:th 34
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2 |^ (b3 "),b3.] = [.b3 ",b2.];

:: GROUP_5:th 35
theorem
for b1 being Element of NAT
for b2 being non empty Group-like associative multMagma
for b3, b4 being Element of the carrier of b2 holds
[.b3 |^ b1,b4.] = (b3 |^ - b1) * ((b3 |^ b4) |^ b1);

:: GROUP_5:th 36
theorem
for b1 being Element of NAT
for b2 being non empty Group-like associative multMagma
for b3, b4 being Element of the carrier of b2 holds
[.b3,b4 |^ b1.] = ((b4 |^ b3) |^ - b1) * (b4 |^ b1);

:: GROUP_5:th 37
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Element of the carrier of b2 holds
[.b3 |^ b1,b4.] = (b3 |^ - b1) * ((b3 |^ b4) |^ b1);

:: GROUP_5:th 38
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Element of the carrier of b2 holds
[.b3,b4 |^ b1.] = ((b4 |^ b3) |^ - b1) * (b4 |^ b1);

:: GROUP_5:th 39
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
   [.b2,b3.] = 1_ b1
iff
   b2 * b3 = b3 * b2;

:: GROUP_5:th 40
theorem
for b1 being non empty Group-like associative multMagma holds
      b1 is non empty Group-like associative commutative multMagma
   iff
      for b2, b3 being Element of the carrier of b1 holds
      [.b2,b3.] = 1_ b1;

:: GROUP_5:th 41
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
for b4 being Subgroup of b1
      st b2 in b4 & b3 in b4
   holds [.b2,b3.] in b4;

:: GROUP_5:funcnot 3 => GROUP_5:func 3
definition
  let a1 be non empty Group-like associative multMagma;
  let a2, a3, a4 be Element of the carrier of a1;
  func [.A2,A3,A4.] -> Element of the carrier of a1 equals
    [.[.a2,a3.],a4.];
end;

:: GROUP_5:def 3
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1 holds
[.b2,b3,b4.] = [.[.b2,b3.],b4.];

:: GROUP_5:th 43
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3,1_ b1.] = 1_ b1 & [.b2,1_ b1,b3.] = 1_ b1 & [.1_ b1,b2,b3.] = 1_ b1;

:: GROUP_5:th 44
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b2,b3.] = 1_ b1;

:: GROUP_5:th 45
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3,b2.] = [.b2 |^ b3,b2.];

:: GROUP_5:th 46
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3,b3.] = ([.b2,b3 ".] * [.b2,b3.]) |^ b3;

:: GROUP_5:th 47
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3,b3 |^ b2.] = [.b3,[.b3,b2.].];

:: GROUP_5:th 48
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1 holds
[.b2 * b3,b4.] = ([.b2,b4.] * [.b2,b4,b3.]) * [.b3,b4.];

:: GROUP_5:th 49
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1 holds
[.b2,b3 * b4.] = ([.b2,b4.] * [.b2,b3.]) * [.b2,b3,b4.];

:: GROUP_5:th 50
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1 holds
(([.b2,b3 ",b4.] |^ b3) * ([.b3,b4 ",b2.] |^ b4)) * ([.b4,b2 ",b3.] |^ b2) = 1_ b1;

:: GROUP_5:funcnot 4 => GROUP_5:func 4
definition
  let a1 be non empty Group-like associative multMagma;
  let a2, a3 be Element of bool the carrier of a1;
  func commutators(A2,A3) -> Element of bool the carrier of a1 equals
    {[.b1,b2.] where b1 is Element of the carrier of a1, b2 is Element of the carrier of a1: b1 in a2 & b2 in a3};
end;

:: GROUP_5:def 4
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of bool the carrier of b1 holds
commutators(b2,b3) = {[.b4,b5.] where b4 is Element of the carrier of b1, b5 is Element of the carrier of b1: b4 in b2 & b5 in b3};

:: GROUP_5:th 52
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Element of bool the carrier of b2 holds
   b1 in commutators(b3,b4)
iff
   ex b5, b6 being Element of the carrier of b2 st
      b1 = [.b5,b6.] & b5 in b3 & b6 in b4;

:: GROUP_5:th 53
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of bool the carrier of b1 holds
   commutators({} the carrier of b1,b2) = {} & commutators(b2,{} the carrier of b1) = {};

:: GROUP_5:th 54
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
commutators({b2},{b3}) = {[.b2,b3.]};

:: GROUP_5:th 55
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4, b5 being Element of bool the carrier of b1
      st b2 c= b3 & b4 c= b5
   holds commutators(b2,b4) c= commutators(b3,b5);

:: GROUP_5:th 56
theorem
for b1 being non empty Group-like associative multMagma holds
      b1 is non empty Group-like associative commutative multMagma
   iff
      for b2, b3 being Element of bool the carrier of b1
            st b2 <> {} & b3 <> {}
         holds commutators(b2,b3) = {1_ b1};

:: GROUP_5:funcnot 5 => GROUP_5:func 5
definition
  let a1 be non empty Group-like associative multMagma;
  let a2, a3 be Subgroup of a1;
  func commutators(A2,A3) -> Element of bool the carrier of a1 equals
    commutators(carr a2,carr a3);
end;

:: GROUP_5:def 5
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Subgroup of b1 holds
commutators(b2,b3) = commutators(carr b2,carr b3);

:: GROUP_5:th 58
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Subgroup of b2 holds
   b1 in commutators(b3,b4)
iff
   ex b5, b6 being Element of the carrier of b2 st
      b1 = [.b5,b6.] & b5 in b3 & b6 in b4;

:: GROUP_5:th 59
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Subgroup of b1 holds
1_ b1 in commutators(b2,b3);

:: GROUP_5:th 60
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Subgroup of b1 holds
   commutators((1). b1,b2) = {1_ b1} &
    commutators(b2,(1). b1) = {1_ b1};

:: GROUP_5:th 61
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Subgroup of b1
for b3 being strict normal Subgroup of b1 holds
   commutators(b2,b3) c= carr b3 & commutators(b3,b2) c= carr b3;

:: GROUP_5:th 62
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4, b5 being Subgroup of b1
      st b2 is Subgroup of b3 & b4 is Subgroup of b5
   holds commutators(b2,b4) c= commutators(b3,b5);

:: GROUP_5:th 63
theorem
for b1 being non empty Group-like associative multMagma holds
      b1 is non empty Group-like associative commutative multMagma
   iff
      for b2, b3 being Subgroup of b1 holds
      commutators(b2,b3) = {1_ b1};

:: GROUP_5:funcnot 6 => GROUP_5:func 6
definition
  let a1 be non empty Group-like associative multMagma;
  func commutators A1 -> Element of bool the carrier of a1 equals
    commutators((Omega). a1,(Omega). a1);
end;

:: GROUP_5:def 6
theorem
for b1 being non empty Group-like associative multMagma holds
   commutators b1 = commutators((Omega). b1,(Omega). b1);

:: GROUP_5:th 65
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma holds
      b1 in commutators b2
   iff
      ex b3, b4 being Element of the carrier of b2 st
         b1 = [.b3,b4.];

:: GROUP_5:th 66
theorem
for b1 being non empty Group-like associative multMagma holds
      b1 is non empty Group-like associative commutative multMagma
   iff
      commutators b1 = {1_ b1};

:: GROUP_5:funcnot 7 => GROUP_5:func 7
definition
  let a1 be non empty Group-like associative multMagma;
  let a2, a3 be Element of bool the carrier of a1;
  func [.A2,A3.] -> strict Subgroup of a1 equals
    gr commutators(a2,a3);
end;

:: GROUP_5:def 7
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of bool the carrier of b1 holds
[.b2,b3.] = gr commutators(b2,b3);

:: GROUP_5:th 68
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
for b4, b5 being Element of bool the carrier of b1
      st b2 in b4 & b3 in b5
   holds [.b2,b3.] in [.b4,b5.];

:: GROUP_5:th 69
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Element of bool the carrier of b2 holds
   b1 in [.b3,b4.]
iff
   ex b5 being FinSequence of the carrier of b2 st
      ex b6 being FinSequence of INT st
         len b5 = len b6 & proj2 b5 c= commutators(b3,b4) & b1 = Product (b5 |^ b6);

:: GROUP_5:th 70
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4, b5 being Element of bool the carrier of b1
      st b2 c= b3 & b4 c= b5
   holds [.b2,b4.] is Subgroup of [.b3,b5.];

:: GROUP_5:funcnot 8 => GROUP_5:func 8
definition
  let a1 be non empty Group-like associative multMagma;
  let a2, a3 be Subgroup of a1;
  func [.A2,A3.] -> strict Subgroup of a1 equals
    [.carr a2,carr a3.];
end;

:: GROUP_5:def 8
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Subgroup of b1 holds
[.b2,b3.] = [.carr b2,carr b3.];

:: GROUP_5:th 72
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Subgroup of b1 holds
[.b2,b3.] = gr commutators(b2,b3);

:: GROUP_5:th 73
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma
for b3, b4 being Subgroup of b2 holds
   b1 in [.b3,b4.]
iff
   ex b5 being FinSequence of the carrier of b2 st
      ex b6 being FinSequence of INT st
         len b5 = len b6 & proj2 b5 c= commutators(b3,b4) & b1 = Product (b5 |^ b6);

:: GROUP_5:th 74
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
for b4, b5 being Subgroup of b1
      st b2 in b4 & b3 in b5
   holds [.b2,b3.] in [.b4,b5.];

:: GROUP_5:th 75
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4, b5 being Subgroup of b1
      st b2 is Subgroup of b3 & b4 is Subgroup of b5
   holds [.b2,b4.] is Subgroup of [.b3,b5.];

:: GROUP_5:th 76
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Subgroup of b1
for b3 being strict normal Subgroup of b1 holds
   [.b3,b2.] is Subgroup of b3 & [.b2,b3.] is Subgroup of b3;

:: GROUP_5:th 77
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being strict normal Subgroup of b1 holds
[.b2,b3.] is normal Subgroup of b1;

:: GROUP_5:th 78
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being normal Subgroup of b1 holds
[.b2,b3.] = [.b3,b2.];

:: GROUP_5:th 79
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being strict normal Subgroup of b1 holds
[.b2 "\/" b3,b4.] = [.b2,b4.] "\/" [.b3,b4.];

:: GROUP_5:th 80
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being strict normal Subgroup of b1 holds
[.b2,b3 "\/" b4.] = [.b2,b3.] "\/" [.b2,b4.];

:: GROUP_5:funcnot 9 => GROUP_5:func 9
definition
  let a1 be non empty Group-like associative multMagma;
  func A1 ` -> strict normal Subgroup of a1 equals
    [.(Omega). a1,(Omega). a1.];
end;

:: GROUP_5:def 9
theorem
for b1 being non empty Group-like associative multMagma holds
   b1 ` = [.(Omega). b1,(Omega). b1.];

:: GROUP_5:th 82
theorem
for b1 being non empty Group-like associative multMagma holds
   b1 ` = gr commutators b1;

:: GROUP_5:th 83
theorem
for b1 being set
for b2 being non empty Group-like associative multMagma holds
      b1 in b2 `
   iff
      ex b3 being FinSequence of the carrier of b2 st
         ex b4 being FinSequence of INT st
            len b3 = len b4 & proj2 b3 c= commutators b2 & b1 = Product (b3 |^ b4);

:: GROUP_5:th 84
theorem
for b1 being non empty strict Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
[.b2,b3.] in b1 `;

:: GROUP_5:th 85
theorem
for b1 being non empty strict Group-like associative multMagma holds
      b1 is non empty Group-like associative commutative multMagma
   iff
      b1 ` = (1). b1;

:: GROUP_5:th 86
theorem
for b1 being non empty Group-like associative multMagma
for b2 being strict Subgroup of b1
      st Left_Cosets b2 is finite & index b2 = 2
   holds b1 ` is Subgroup of b2;

:: GROUP_5:funcnot 10 => GROUP_5:func 10
definition
  let a1 be non empty Group-like associative multMagma;
  func center A1 -> strict Subgroup of a1 means
    the carrier of it = {b1 where b1 is Element of the carrier of a1: for b2 being Element of the carrier of a1 holds
       b1 * b2 = b2 * b1};
end;

:: GROUP_5:def 10
theorem
for b1 being non empty Group-like associative multMagma
for b2 being strict Subgroup of b1 holds
      b2 = center b1
   iff
      the carrier of b2 = {b3 where b3 is Element of the carrier of b1: for b4 being Element of the carrier of b1 holds
         b3 * b4 = b4 * b3};

:: GROUP_5:th 89
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
      b2 in center b1
   iff
      for b3 being Element of the carrier of b1 holds
         b2 * b3 = b3 * b2;

:: GROUP_5:th 90
theorem
for b1 being non empty Group-like associative multMagma holds
   center b1 is normal Subgroup of b1;

:: GROUP_5:th 91
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Subgroup of b1
      st b2 is Subgroup of center b1
   holds b2 is normal Subgroup of b1;

:: GROUP_5:th 92
theorem
for b1 being non empty Group-like associative multMagma holds
   center b1 is commutative;

:: GROUP_5:th 93
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
      b2 in center b1
   iff
      con_class b2 = {b2};

:: GROUP_5:th 94
theorem
for b1 being non empty strict Group-like associative multMagma holds
      b1 is non empty Group-like associative commutative multMagma
   iff
      center b1 = b1;