Article GROUP_1, MML version 4.99.1005

:: GROUP_1:attrnot 1 => GROUP_1:attr 1
definition
  let a1 be non empty multMagma;
  attr a1 is unital means
    ex b1 being Element of the carrier of a1 st
       for b2 being Element of the carrier of a1 holds
          b2 * b1 = b2 & b1 * b2 = b2;
end;

:: GROUP_1:dfs 1
definiens
  let a1 be non empty multMagma;
To prove
     a1 is unital
it is sufficient to prove
  thus ex b1 being Element of the carrier of a1 st
       for b2 being Element of the carrier of a1 holds
          b2 * b1 = b2 & b1 * b2 = b2;

:: GROUP_1:def 2
theorem
for b1 being non empty multMagma holds
      b1 is unital
   iff
      ex b2 being Element of the carrier of b1 st
         for b3 being Element of the carrier of b1 holds
            b3 * b2 = b3 & b2 * b3 = b3;

:: GROUP_1:attrnot 2 => GROUP_1:attr 2
definition
  let a1 be non empty multMagma;
  attr a1 is Group-like means
    ex b1 being Element of the carrier of a1 st
       for b2 being Element of the carrier of a1 holds
          b2 * b1 = b2 &
           b1 * b2 = b2 &
           (ex b3 being Element of the carrier of a1 st
              b2 * b3 = b1 & b3 * b2 = b1);
end;

:: GROUP_1:dfs 2
definiens
  let a1 be non empty multMagma;
To prove
     a1 is Group-like
it is sufficient to prove
  thus ex b1 being Element of the carrier of a1 st
       for b2 being Element of the carrier of a1 holds
          b2 * b1 = b2 &
           b1 * b2 = b2 &
           (ex b3 being Element of the carrier of a1 st
              b2 * b3 = b1 & b3 * b2 = b1);

:: GROUP_1:def 3
theorem
for b1 being non empty multMagma holds
      b1 is Group-like
   iff
      ex b2 being Element of the carrier of b1 st
         for b3 being Element of the carrier of b1 holds
            b3 * b2 = b3 &
             b2 * b3 = b3 &
             (ex b4 being Element of the carrier of b1 st
                b3 * b4 = b2 & b4 * b3 = b2);

:: GROUP_1:attrnot 3 => GROUP_1:attr 3
definition
  let a1 be non empty multMagma;
  attr a1 is associative means
    for b1, b2, b3 being Element of the carrier of a1 holds
    (b1 * b2) * b3 = b1 * (b2 * b3);
end;

:: GROUP_1:dfs 3
definiens
  let a1 be non empty multMagma;
To prove
     a1 is associative
it is sufficient to prove
  thus for b1, b2, b3 being Element of the carrier of a1 holds
    (b1 * b2) * b3 = b1 * (b2 * b3);

:: GROUP_1:def 4
theorem
for b1 being non empty multMagma holds
      b1 is associative
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      (b2 * b3) * b4 = b2 * (b3 * b4);

:: GROUP_1:condreg 1
registration
  cluster non empty Group-like -> unital (multMagma);
end;

:: GROUP_1:exreg 1
registration
  cluster non empty strict Group-like associative multMagma;
end;

:: GROUP_1:modenot 1
definition
  mode Group is non empty Group-like associative multMagma;
end;

:: GROUP_1:th 5
theorem
for b1 being non empty multMagma
      st (for b2, b3, b4 being Element of the carrier of b1 holds
         (b2 * b3) * b4 = b2 * (b3 * b4)) &
         (ex b2 being Element of the carrier of b1 st
            for b3 being Element of the carrier of b1 holds
               b3 * b2 = b3 &
                b2 * b3 = b3 &
                (ex b4 being Element of the carrier of b1 st
                   b3 * b4 = b2 & b4 * b3 = b2))
   holds b1 is non empty Group-like associative multMagma;

:: GROUP_1:th 6
theorem
for b1 being non empty multMagma
      st (for b2, b3, b4 being Element of the carrier of b1 holds
         (b2 * b3) * b4 = b2 * (b3 * b4)) &
         (for b2, b3 being Element of the carrier of b1 holds
         (ex b4 being Element of the carrier of b1 st
             b2 * b4 = b3) &
          (ex b4 being Element of the carrier of b1 st
             b4 * b2 = b3))
   holds b1 is associative & b1 is Group-like;

:: GROUP_1:th 7
theorem
multMagma(#REAL,addreal#) is associative & multMagma(#REAL,addreal#) is Group-like;

:: GROUP_1:funcnot 1 => GROUP_1:func 1
definition
  let a1 be non empty multMagma;
  assume a1 is unital;
  func 1_ A1 -> Element of the carrier of a1 means
    for b1 being Element of the carrier of a1 holds
       b1 * it = b1 & it * b1 = b1;
end;

:: GROUP_1:def 5
theorem
for b1 being non empty multMagma
   st b1 is unital
for b2 being Element of the carrier of b1 holds
      b2 = 1_ b1
   iff
      for b3 being Element of the carrier of b1 holds
         b3 * b2 = b3 & b2 * b3 = b3;

:: GROUP_1:th 10
theorem
for b1 being non empty Group-like multMagma
for b2 being Element of the carrier of b1
      st for b3 being Element of the carrier of b1 holds
           b3 * b2 = b3 & b2 * b3 = b3
   holds b2 = 1_ b1;

:: GROUP_1:funcnot 2 => GROUP_1:func 2
definition
  let a1 be non empty Group-like associative multMagma;
  let a2 be Element of the carrier of a1;
  func A2 " -> Element of the carrier of a1 means
    a2 * it = 1_ a1 & it * a2 = 1_ a1;
end;

:: GROUP_1:def 6
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
   b3 = b2 "
iff
   b2 * b3 = 1_ b1 & b3 * b2 = 1_ b1;

:: GROUP_1:th 12
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
      st b2 * b3 = 1_ b1 & b3 * b2 = 1_ b1
   holds b3 = b2 ";

:: GROUP_1:th 14
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3, b4 being Element of the carrier of b1
      st (b2 * b3 = b2 * b4 or b3 * b2 = b4 * b2)
   holds b3 = b4;

:: GROUP_1:th 15
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
      st (b2 * b3 = b2 or b3 * b2 = b2)
   holds b3 = 1_ b1;

:: GROUP_1:th 16
theorem
for b1 being non empty Group-like associative multMagma holds
   (1_ b1) " = 1_ b1;

:: GROUP_1:th 17
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
      st b2 " = b3 "
   holds b2 = b3;

:: GROUP_1:th 18
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
      st b2 " = 1_ b1
   holds b2 = 1_ b1;

:: GROUP_1:th 19
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   b2 " " = b2;

:: GROUP_1:th 20
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
      st b2 * b3 = 1_ b1
   holds b2 = b3 " & b3 = b2 ";

:: GROUP_1:th 21
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
iff
   b3 = b2 " * b4;

:: GROUP_1:th 22
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
iff
   b2 = b4 * (b3 ");

:: GROUP_1:th 23
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
ex b4 being Element of the carrier of b1 st
   b2 * b4 = b3;

:: GROUP_1:th 24
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
ex b4 being Element of the carrier of b1 st
   b4 * b2 = b3;

:: GROUP_1: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_1:th 26
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
iff
   (b2 * b3) " = b2 " * (b3 ");

:: GROUP_1: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 = b3 * b2
iff
   b2 " * (b3 ") = b3 " * (b2 ");

:: GROUP_1:th 28
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
iff
   b2 * (b3 ") = b3 " * b2;

:: GROUP_1:funcnot 3 => GROUP_1:func 3
definition
  let a1 be non empty Group-like associative multMagma;
  func inverse_op A1 -> Function-like quasi_total Relation of the carrier of a1,the carrier of a1 means
    for b1 being Element of the carrier of a1 holds
       it . b1 = b1 ";
end;

:: GROUP_1:def 7
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
      b2 = inverse_op b1
   iff
      for b3 being Element of the carrier of b1 holds
         b2 . b3 = b3 ";

:: GROUP_1:th 31
theorem
for b1 being non empty associative multMagma holds
   the multF of b1 is associative(the carrier of b1);

:: GROUP_1:th 32
theorem
for b1 being non empty unital multMagma holds
   1_ b1 is_a_unity_wrt the multF of b1;

:: GROUP_1:th 33
theorem
for b1 being non empty unital multMagma holds
   the_unity_wrt the multF of b1 = 1_ b1;

:: GROUP_1:th 34
theorem
for b1 being non empty unital multMagma holds
   the multF of b1 is having_a_unity(the carrier of b1);

:: GROUP_1:th 35
theorem
for b1 being non empty Group-like associative multMagma holds
   inverse_op b1 is_an_inverseOp_wrt the multF of b1;

:: GROUP_1:th 36
theorem
for b1 being non empty Group-like associative multMagma holds
   the multF of b1 is having_an_inverseOp(the carrier of b1);

:: GROUP_1:th 37
theorem
for b1 being non empty Group-like associative multMagma holds
   the_inverseOp_wrt the multF of b1 = inverse_op b1;

:: GROUP_1:funcnot 4 => GROUP_1:func 4
definition
  let a1 be non empty multMagma;
  func power A1 -> Function-like quasi_total Relation of [:the carrier of a1,NAT:],the carrier of a1 means
    for b1 being Element of the carrier of a1 holds
       it .(b1,0) = 1_ a1 &
        (for b2 being Element of NAT holds
           it .(b1,b2 + 1) = (it .(b1,b2)) * b1);
end;

:: GROUP_1:def 8
theorem
for b1 being non empty multMagma
for b2 being Function-like quasi_total Relation of [:the carrier of b1,NAT:],the carrier of b1 holds
      b2 = power b1
   iff
      for b3 being Element of the carrier of b1 holds
         b2 .(b3,0) = 1_ b1 &
          (for b4 being Element of NAT holds
             b2 .(b3,b4 + 1) = (b2 .(b3,b4)) * b3);

:: GROUP_1:funcnot 5 => GROUP_1:func 5
definition
  let a1 be non empty Group-like associative multMagma;
  let a2 be integer set;
  let a3 be Element of the carrier of a1;
  func A3 |^ A2 -> Element of the carrier of a1 equals
    (power a1) .(a3,abs a2)
    if 0 <= a2
    otherwise ((power a1) .(a3,abs a2)) ";
end;

:: GROUP_1:def 9
theorem
for b1 being non empty Group-like associative multMagma
for b2 being integer set
for b3 being Element of the carrier of b1 holds
   (0 <= b2 implies b3 |^ b2 = (power b1) .(b3,abs b2)) &
    (0 <= b2 or b3 |^ b2 = ((power b1) .(b3,abs b2)) ");

:: GROUP_1:funcnot 6 => GROUP_1:func 5
definition
  let a1 be non empty Group-like associative multMagma;
  let a2 be integer set;
  let a3 be Element of the carrier of a1;
  func A3 |^ A2 -> Element of the carrier of a1 equals
    (power a1) .(a3,a2);
end;

:: GROUP_1:def 10
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of NAT
for b3 being Element of the carrier of b1 holds
   b3 |^ b2 = (power b1) .(b3,b2);

:: GROUP_1:th 42
theorem
for b1 being non empty Group-like associative multMagma
for b2 being natural set holds
   (1_ b1) |^ b2 = 1_ b1;

:: GROUP_1:th 43
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   b2 |^ 0 = 1_ b1;

:: GROUP_1:th 44
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   b2 |^ 1 = b2;

:: GROUP_1:th 45
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   b2 |^ 2 = b2 * b2;

:: GROUP_1:th 46
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   b2 |^ 3 = (b2 * b2) * b2;

:: GROUP_1:th 47
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
      b2 |^ 2 = 1_ b1
   iff
      b2 " = b2;

:: GROUP_1:th 48
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3, b4 being natural set holds
b2 |^ (b3 + b4) = (b2 |^ b3) * (b2 |^ b4);

:: GROUP_1:th 49
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3 being natural set holds
   b2 |^ (b3 + 1) = (b2 |^ b3) * b2 &
    b2 |^ (b3 + 1) = b2 * (b2 |^ b3);

:: GROUP_1:th 50
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3, b4 being natural set holds
b2 |^ (b3 * b4) = (b2 |^ b3) |^ b4;

:: GROUP_1:th 51
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3 being natural set holds
   b2 " |^ b3 = (b2 |^ b3) ";

:: GROUP_1:th 52
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
for b4 being natural set
      st b2 * b3 = b3 * b2
   holds b2 * (b3 |^ b4) = (b3 |^ b4) * b2;

:: GROUP_1:th 53
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
for b4, b5 being natural set
      st b2 * b3 = b3 * b2
   holds (b2 |^ b4) * (b3 |^ b5) = (b3 |^ b5) * (b2 |^ b4);

:: GROUP_1:th 54
theorem
for b1 being non empty Group-like associative multMagma
for b2, b3 being Element of the carrier of b1
for b4 being natural set
      st b2 * b3 = b3 * b2
   holds (b2 * b3) |^ b4 = (b2 |^ b4) * (b3 |^ b4);

:: GROUP_1:th 55
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2
      st 0 <= b1
   holds b3 |^ b1 = b3 |^ abs b1;

:: GROUP_1:th 56
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2
      st b1 < 0
   holds b3 |^ b1 = (b3 |^ abs b1) ";

:: GROUP_1:th 59
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   b2 |^ 0 = 1_ b1;

:: GROUP_1:th 60
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2
      st b1 <= 0
   holds b3 |^ b1 = (b3 |^ abs b1) ";

:: GROUP_1:th 61
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma holds
   (1_ b2) |^ b1 = 1_ b2;

:: GROUP_1:th 62
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   b2 |^ - 1 = b2 ";

:: GROUP_1:th 63
theorem
for b1, b2 being integer set
for b3 being non empty Group-like associative multMagma
for b4 being Element of the carrier of b3 holds
   b4 |^ (b1 + b2) = (b4 |^ b1) * (b4 |^ b2);

:: GROUP_1:th 64
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2
for b4 being natural set holds
   b3 |^ (b4 + b1) = (b3 |^ b4) * (b3 |^ b1);

:: GROUP_1:th 65
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2
for b4 being natural set holds
   b3 |^ (b1 + b4) = (b3 |^ b1) * (b3 |^ b4);

:: GROUP_1:th 66
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2 holds
   b3 |^ (b1 + 1) = (b3 |^ b1) * b3 &
    b3 |^ (b1 + 1) = b3 * (b3 |^ b1);

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

:: GROUP_1:th 68
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2
for b4 being natural set holds
   b3 |^ (b4 * b1) = (b3 |^ b4) |^ b1;

:: GROUP_1:th 69
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2
for b4 being natural set holds
   b3 |^ (b1 * b4) = (b3 |^ b1) |^ b4;

:: GROUP_1:th 70
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2 holds
   b3 |^ - b1 = (b3 |^ b1) ";

:: GROUP_1:th 71
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3 being natural set holds
   b2 |^ - b3 = (b2 |^ b3) ";

:: GROUP_1:th 72
theorem
for b1 being integer set
for b2 being non empty Group-like associative multMagma
for b3 being Element of the carrier of b2 holds
   b3 " |^ b1 = (b3 |^ b1) ";

:: GROUP_1:th 73
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
      st b3 * b4 = b4 * b3
   holds (b3 * b4) |^ b1 = (b3 |^ b1) * (b4 |^ b1);

:: GROUP_1:th 74
theorem
for b1, b2 being integer set
for b3 being non empty Group-like associative multMagma
for b4, b5 being Element of the carrier of b3
      st b4 * b5 = b5 * b4
   holds (b4 |^ b1) * (b5 |^ b2) = (b5 |^ b2) * (b4 |^ b1);

:: GROUP_1:th 75
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
for b5 being natural set
      st b3 * b4 = b4 * b3
   holds (b3 |^ b5) * (b4 |^ b1) = (b4 |^ b1) * (b3 |^ b5);

:: GROUP_1:th 77
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
      st b3 * b4 = b4 * b3
   holds b3 * (b4 |^ b1) = (b4 |^ b1) * b3;

:: GROUP_1:attrnot 4 => GROUP_1:attr 4
definition
  let a1 be non empty Group-like associative multMagma;
  let a2 be Element of the carrier of a1;
  attr a2 is being_of_order_0 means
    for b1 being natural set
          st a2 |^ b1 = 1_ a1
       holds b1 = 0;
end;

:: GROUP_1:dfs 10
definiens
  let a1 be non empty Group-like associative multMagma;
  let a2 be Element of the carrier of a1;
To prove
     a2 is being_of_order_0
it is sufficient to prove
  thus for b1 being natural set
          st a2 |^ b1 = 1_ a1
       holds b1 = 0;

:: GROUP_1:def 11
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
      b2 is being_of_order_0(b1)
   iff
      for b3 being natural set
            st b2 |^ b3 = 1_ b1
         holds b3 = 0;

:: GROUP_1:prednot 1 => not GROUP_1:attr 4
notation
  let a1 be non empty Group-like associative multMagma;
  let a2 be Element of the carrier of a1;
  antonym a2 is_not_of_order_0 for being_of_order_0;
end;

:: GROUP_1:prednot 2 => GROUP_1:attr 4
notation
  let a1 be non empty Group-like associative multMagma;
  let a2 be Element of the carrier of a1;
  synonym a2 is_of_order_0 for being_of_order_0;
end;

:: GROUP_1:th 79
theorem
for b1 being non empty Group-like associative multMagma holds
   1_ b1 is not being_of_order_0(b1);

:: GROUP_1:funcnot 7 => GROUP_1:func 6
definition
  let a1 be non empty Group-like associative multMagma;
  let a2 be Element of the carrier of a1;
  func ord A2 -> Element of NAT means
    it = 0
    if a2 is being_of_order_0(a1)
    otherwise a2 |^ it = 1_ a1 &
     it <> 0 &
     (for b1 being natural set
           st a2 |^ b1 = 1_ a1 & b1 <> 0
        holds it <= b1);
end;

:: GROUP_1:def 12
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3 being Element of NAT holds
   (b2 is being_of_order_0(b1) implies    (b3 = ord b2
    iff
       b3 = 0)) &
    (b2 is being_of_order_0(b1) or    (b3 = ord b2
    iff
       b2 |^ b3 = 1_ b1 &
        b3 <> 0 &
        (for b4 being natural set
              st b2 |^ b4 = 1_ b1 & b4 <> 0
           holds b3 <= b4)));

:: GROUP_1:th 82
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   b2 |^ ord b2 = 1_ b1;

:: GROUP_1:th 84
theorem
for b1 being non empty Group-like associative multMagma holds
   ord 1_ b1 = 1;

:: GROUP_1:th 85
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
      st ord b2 = 1
   holds b2 = 1_ b1;

:: GROUP_1:th 86
theorem
for b1 being non empty Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3 being natural set
      st b2 |^ b3 = 1_ b1
   holds ord b2 divides b3;

:: GROUP_1:funcnot 8 => GROUP_1:func 7
definition
  let a1 be 1-sorted;
  func Ord A1 -> cardinal set equals
    Card the carrier of a1;
end;

:: GROUP_1:def 13
theorem
for b1 being 1-sorted holds
   Ord b1 = Card the carrier of b1;

:: GROUP_1:funcnot 9 => GROUP_1:func 7
notation
  let a1 be finite 1-sorted;
  synonym ord a1 for Ord a1;
end;

:: GROUP_1:funcnot 10 => GROUP_1:func 8
definition
  let a1 be finite 1-sorted;
  redefine func ord A1 -> Element of NAT equals
    card the carrier of a1;
end;

:: GROUP_1:def 15
theorem
for b1 being finite 1-sorted holds
   ord b1 = card the carrier of b1;

:: GROUP_1:th 90
theorem
for b1 being non empty finite 1-sorted holds
   1 <= ord b1;

:: GROUP_1:attrnot 5 => GROUP_1:attr 5
definition
  let a1 be non empty multMagma;
  attr a1 is commutative means
    for b1, b2 being Element of the carrier of a1 holds
    b1 * b2 = b2 * b1;
end;

:: GROUP_1:dfs 14
definiens
  let a1 be non empty multMagma;
To prove
     a1 is commutative
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1 holds
    b1 * b2 = b2 * b1;

:: GROUP_1:def 16
theorem
for b1 being non empty multMagma holds
      b1 is commutative
   iff
      for b2, b3 being Element of the carrier of b1 holds
      b2 * b3 = b3 * b2;

:: GROUP_1:exreg 2
registration
  cluster non empty strict unital Group-like associative commutative multMagma;
end;

:: GROUP_1:funcnot 11 => GROUP_1:func 9
definition
  let a1 be non empty commutative multMagma;
  let a2, a3 be Element of the carrier of a1;
  redefine func a2 * a3 -> Element of the carrier of a1;
  commutativity;
::  for a1 being non empty commutative multMagma
::  for a2, a3 being Element of the carrier of a1 holds
::  a2 * a3 = a3 * a2;
end;

:: GROUP_1:th 92
theorem
multMagma(#REAL,addreal#) is non empty Group-like associative commutative multMagma;

:: GROUP_1:th 94
theorem
for b1 being non empty Group-like associative commutative multMagma
for b2, b3 being Element of the carrier of b1 holds
(b2 * b3) " = b2 " * (b3 ");

:: GROUP_1:th 95
theorem
for b1 being natural set
for b2 being non empty Group-like associative commutative multMagma
for b3, b4 being Element of the carrier of b2 holds
(b3 * b4) |^ b1 = (b3 |^ b1) * (b4 |^ b1);

:: GROUP_1:th 96
theorem
for b1 being integer set
for b2 being non empty Group-like associative commutative multMagma
for b3, b4 being Element of the carrier of b2 holds
(b3 * b4) |^ b1 = (b3 |^ b1) * (b4 |^ b1);

:: GROUP_1:th 97
theorem
for b1 being non empty Group-like associative commutative multMagma holds
   addLoopStr(#the carrier of b1,the multF of b1,1_ b1#) is Abelian &
    addLoopStr(#the carrier of b1,the multF of b1,1_ b1#) is add-associative &
    addLoopStr(#the carrier of b1,the multF of b1,1_ b1#) is right_zeroed &
    addLoopStr(#the carrier of b1,the multF of b1,1_ b1#) is right_complementable;

:: GROUP_1:th 98
theorem
for b1 being non empty unital multMagma
for b2 being Element of the carrier of b1 holds
   (power b1) .(b2,1) = b2;

:: GROUP_1:th 99
theorem
for b1 being non empty unital multMagma
for b2 being Element of the carrier of b1 holds
   (power b1) .(b2,2) = b2 * b2;

:: GROUP_1:th 100
theorem
for b1 being non empty unital associative commutative multMagma
for b2, b3 being Element of the carrier of b1
for b4 being Element of NAT holds
   (power b1) .(b2 * b3,b4) = ((power b1) .(b2,b4)) * ((power b1) .(b3,b4));

:: GROUP_1:attrnot 6 => GROUP_1:attr 6
definition
  let a1, a2 be non empty multMagma;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  attr a3 is unity-preserving means
    a3 . 1_ a1 = 1_ a2;
end;

:: GROUP_1:dfs 15
definiens
  let a1, a2 be non empty multMagma;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a3 is unity-preserving
it is sufficient to prove
  thus a3 . 1_ a1 = 1_ a2;

:: GROUP_1:def 17
theorem
for b1, b2 being non empty multMagma
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b3 is unity-preserving(b1, b2)
   iff
      b3 . 1_ b1 = 1_ b2;