Article AUTGROUP, MML version 4.99.1005

:: AUTGROUP:th 1
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Subgroup of b1 holds
      for b3, b4 being Element of the carrier of b1
            st b4 is Element of the carrier of b2
         holds b4 |^ b3 in b2
   iff
      b2 is normal(b1);

:: AUTGROUP:funcnot 1 => AUTGROUP:func 1
definition
  let a1 be non empty strict Group-like associative multMagma;
  func Aut A1 -> FUNCTION_DOMAIN of the carrier of a1,the carrier of a1 means
    (for b1 being Element of it holds
        b1 is Function-like quasi_total multiplicative Relation of the carrier of a1,the carrier of a1) &
     (for b1 being Function-like quasi_total multiplicative Relation of the carrier of a1,the carrier of a1 holds
           b1 in it
        iff
           b1 is one-to-one & b1 is being_epimorphism(a1, a1));
end;

:: AUTGROUP:def 1
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being FUNCTION_DOMAIN of the carrier of b1,the carrier of b1 holds
      b2 = Aut b1
   iff
      (for b3 being Element of b2 holds
          b3 is Function-like quasi_total multiplicative Relation of the carrier of b1,the carrier of b1) &
       (for b3 being Function-like quasi_total multiplicative Relation of the carrier of b1,the carrier of b1 holds
             b3 in b2
          iff
             b3 is one-to-one & b3 is being_epimorphism(b1, b1));

:: AUTGROUP:th 3
theorem
for b1 being non empty strict Group-like associative multMagma holds
   Aut b1 c= Funcs(the carrier of b1,the carrier of b1);

:: AUTGROUP:th 4
theorem
for b1 being non empty strict Group-like associative multMagma holds
   id the carrier of b1 is Element of Aut b1;

:: AUTGROUP:th 5
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Function-like quasi_total multiplicative Relation of the carrier of b1,the carrier of b1 holds
      b2 in Aut b1
   iff
      b2 is being_isomorphism(b1, b1);

:: AUTGROUP:th 6
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of Aut b1 holds
   b2 " is Function-like quasi_total multiplicative Relation of the carrier of b1,the carrier of b1;

:: AUTGROUP:th 7
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of Aut b1 holds
   b2 " is Element of Aut b1;

:: AUTGROUP:th 8
theorem
for b1 being non empty strict Group-like associative multMagma
for b2, b3 being Element of Aut b1 holds
b2 * b3 is Element of Aut b1;

:: AUTGROUP:funcnot 2 => AUTGROUP:func 2
definition
  let a1 be non empty strict Group-like associative multMagma;
  func AutComp A1 -> Function-like quasi_total Relation of [:Aut a1,Aut a1:],Aut a1 means
    for b1, b2 being Element of Aut a1 holds
    it .(b1,b2) = b1 * b2;
end;

:: AUTGROUP:def 2
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Function-like quasi_total Relation of [:Aut b1,Aut b1:],Aut b1 holds
      b2 = AutComp b1
   iff
      for b3, b4 being Element of Aut b1 holds
      b2 .(b3,b4) = b3 * b4;

:: AUTGROUP:funcnot 3 => AUTGROUP:func 3
definition
  let a1 be non empty strict Group-like associative multMagma;
  func AutGroup A1 -> non empty strict Group-like associative multMagma equals
    multMagma(#Aut a1,AutComp a1#);
end;

:: AUTGROUP:def 3
theorem
for b1 being non empty strict Group-like associative multMagma holds
   AutGroup b1 = multMagma(#Aut b1,AutComp b1#);

:: AUTGROUP:th 9
theorem
for b1 being non empty strict Group-like associative multMagma
for b2, b3 being Element of the carrier of AutGroup b1
for b4, b5 being Element of Aut b1
      st b2 = b4 & b3 = b5
   holds b2 * b3 = b4 * b5;

:: AUTGROUP:th 10
theorem
for b1 being non empty strict Group-like associative multMagma holds
   id the carrier of b1 = 1_ AutGroup b1;

:: AUTGROUP:th 11
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of Aut b1
for b3 being Element of the carrier of AutGroup b1
      st b2 = b3
   holds b2 " = b3 ";

:: AUTGROUP:funcnot 4 => AUTGROUP:func 4
definition
  let a1 be non empty strict Group-like associative multMagma;
  func InnAut A1 -> FUNCTION_DOMAIN of the carrier of a1,the carrier of a1 means
    for b1 being Element of Funcs(the carrier of a1,the carrier of a1) holds
          b1 in it
       iff
          ex b2 being Element of the carrier of a1 st
             for b3 being Element of the carrier of a1 holds
                b1 . b3 = b3 |^ b2;
end;

:: AUTGROUP:def 4
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being FUNCTION_DOMAIN of the carrier of b1,the carrier of b1 holds
      b2 = InnAut b1
   iff
      for b3 being Element of Funcs(the carrier of b1,the carrier of b1) holds
            b3 in b2
         iff
            ex b4 being Element of the carrier of b1 st
               for b5 being Element of the carrier of b1 holds
                  b3 . b5 = b5 |^ b4;

:: AUTGROUP:th 12
theorem
for b1 being non empty strict Group-like associative multMagma holds
   InnAut b1 c= Funcs(the carrier of b1,the carrier of b1);

:: AUTGROUP:th 13
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of InnAut b1 holds
   b2 is Element of Aut b1;

:: AUTGROUP:th 14
theorem
for b1 being non empty strict Group-like associative multMagma holds
   InnAut b1 c= Aut b1;

:: AUTGROUP:th 15
theorem
for b1 being non empty strict Group-like associative multMagma
for b2, b3 being Element of InnAut b1 holds
(AutComp b1) .(b2,b3) = b2 * b3;

:: AUTGROUP:th 16
theorem
for b1 being non empty strict Group-like associative multMagma holds
   id the carrier of b1 is Element of InnAut b1;

:: AUTGROUP:th 17
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of InnAut b1 holds
   b2 " is Element of InnAut b1;

:: AUTGROUP:th 18
theorem
for b1 being non empty strict Group-like associative multMagma
for b2, b3 being Element of InnAut b1 holds
b2 * b3 is Element of InnAut b1;

:: AUTGROUP:funcnot 5 => AUTGROUP:func 5
definition
  let a1 be non empty strict Group-like associative multMagma;
  func InnAutGroup A1 -> strict normal Subgroup of AutGroup a1 means
    the carrier of it = InnAut a1;
end;

:: AUTGROUP:def 5
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being strict normal Subgroup of AutGroup b1 holds
      b2 = InnAutGroup b1
   iff
      the carrier of b2 = InnAut b1;

:: AUTGROUP:th 20
theorem
for b1 being non empty strict Group-like associative multMagma
for b2, b3 being Element of the carrier of InnAutGroup b1
for b4, b5 being Element of InnAut b1
      st b2 = b4 & b3 = b5
   holds b2 * b3 = b4 * b5;

:: AUTGROUP:th 21
theorem
for b1 being non empty strict Group-like associative multMagma holds
   id the carrier of b1 = 1_ InnAutGroup b1;

:: AUTGROUP:th 22
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of InnAut b1
for b3 being Element of the carrier of InnAutGroup b1
      st b2 = b3
   holds b2 " = b3 ";

:: AUTGROUP:funcnot 6 => AUTGROUP:func 6
definition
  let a1 be non empty strict Group-like associative multMagma;
  let a2 be Element of the carrier of a1;
  func Conjugate A2 -> Element of InnAut a1 means
    for b1 being Element of the carrier of a1 holds
       it . b1 = b1 |^ a2;
end;

:: AUTGROUP:def 6
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of the carrier of b1
for b3 being Element of InnAut b1 holds
      b3 = Conjugate b2
   iff
      for b4 being Element of the carrier of b1 holds
         b3 . b4 = b4 |^ b2;

:: AUTGROUP:th 23
theorem
for b1 being non empty strict Group-like associative multMagma
for b2, b3 being Element of the carrier of b1 holds
Conjugate (b2 * b3) = (Conjugate b3) * Conjugate b2;

:: AUTGROUP:th 24
theorem
for b1 being non empty strict Group-like associative multMagma holds
   Conjugate 1_ b1 = id the carrier of b1;

:: AUTGROUP:th 25
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   (Conjugate 1_ b1) . b2 = b2;

:: AUTGROUP:th 26
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   (Conjugate b2) * Conjugate (b2 ") = Conjugate 1_ b1;

:: AUTGROUP:th 27
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   (Conjugate (b2 ")) * Conjugate b2 = Conjugate 1_ b1;

:: AUTGROUP:th 28
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   Conjugate (b2 ") = (Conjugate b2) ";

:: AUTGROUP:th 29
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of the carrier of b1 holds
   (Conjugate b2) * Conjugate 1_ b1 = Conjugate b2 &
    (Conjugate 1_ b1) * Conjugate b2 = Conjugate b2;

:: AUTGROUP:th 30
theorem
for b1 being non empty strict Group-like associative multMagma
for b2 being Element of InnAut b1 holds
   b2 * Conjugate 1_ b1 = b2 & (Conjugate 1_ b1) * b2 = b2;

:: AUTGROUP:th 31
theorem
for b1 being non empty strict Group-like associative multMagma holds
   InnAutGroup b1,b1 ./. center b1 are_isomorphic;

:: AUTGROUP:th 32
theorem
for b1 being non empty strict Group-like associative multMagma
   st b1 is non empty Group-like associative commutative multMagma
for b2 being Element of the carrier of InnAutGroup b1 holds
   b2 = 1_ InnAutGroup b1;