 reserve G for Group;
 reserve H for Subgroup of G;
 reserve a, b, c, x, y for Element of G;
 reserve h for Homomorphism of G, G;
 reserve q, q1 for set;

theorem
  for G holds InnAutGroup G, G./.center G are_isomorphic
proof
  let G;
  deffunc F(Element of G) = Conjugate ($1)";
  consider f be Function of the carrier of G, InnAut G such that
A1: for a holds f.a = F(a) from FUNCT_2:sch 4;
  reconsider f as Function of the carrier of G, the carrier of InnAutGroup G
  by Def5;
  now
    let a,b;
A2: f.(a * b) = Conjugate (a * b)" by A1
      .= Conjugate (b" * a") by GROUP_1:17
      .= (Conjugate a") * (Conjugate b") by Th21;
    now
      let A, B be Element of InnAutGroup G;
      assume
A3:   A = f.a & B = f.b;
      then A = Conjugate a" & B = Conjugate b" by A1;
      hence f.(a * b) = f.a * f.b by A2,A3,Th18;
    end;
    hence f.(a * b) = f.a * f.b;
  end;
  then reconsider f1 = f as Homomorphism of G, InnAutGroup G by GROUP_6:def 6;
A4: Ker f1 = center G
  proof
    set C = { a : for b holds a * b = b * a };
    set KER = the carrier of Ker f1;
A5: KER = { a : f1.a = 1_InnAutGroup G } by GROUP_6:def 9;
A6: KER c= C
    proof
      let q be object;
      assume
A7:   q in KER;
      1_InnAutGroup G = id the carrier of G by Th19;
      then consider x such that
A8:   q = x and
A9:   f1.x = id the carrier of G by A5,A7;
A10:  for b holds (Conjugate x").b = b
      proof
        let b;
        (id the carrier of G).b = b;
        hence thesis by A1,A9;
      end;
A11:  for b holds b |^ x" = b
      proof
        let b;
        (Conjugate x").b = b |^ x" by Def6;
        hence thesis by A10;
      end;
      for b holds x * b = b * x
      proof
        let b;
        b |^ x" = x * b * x";
        then x * b * x" * x = b * x by A11;
        then x * b * (x" * x) = b * x by GROUP_1:def 3;
        then x * b * 1_G = b * x by GROUP_1:def 5;
        hence thesis by GROUP_1:def 4;
      end;
      hence thesis by A8;
    end;
    C c= KER
    proof
      let q be object;
      assume q in C;
      then consider x such that
A12:  x = q and
A13:  for b holds x * b = b * x;
      consider g be Function of the carrier of G, the carrier of G such that
A14:  g = Conjugate x";
A15:  for b holds b = (Conjugate x").b
      proof
        let b;
        x * b * x" = b * x * x" by A13;
        then x * b * x" = b * (x * x") by GROUP_1:def 3;
        then x * b * x" = b * 1_G by GROUP_1:def 5;
        then b = b |^ x" by GROUP_1:def 4;
        hence thesis by Def6;
      end;
      for b holds (id the carrier of G).b = g.b
      by A15,A14;
      then g = id the carrier of G;
      then Conjugate x" = 1_InnAutGroup G by A14,Th19;
      then f1.x = 1_InnAutGroup G by A1;
      hence thesis by A5,A12;
    end;
    then KER = C by A6,XBOOLE_0:def 10;
    hence thesis by GROUP_5:def 10;
  end;
A16: the carrier of InnAutGroup G = InnAut G by Def5;
  for q being object st q in the carrier of InnAutGroup G
ex q1 being object st q1 in the carrier
  of G & q = f1.q1
  proof
    let q be object;
    assume
A17: q in the carrier of InnAutGroup G;
    then
A18: q is Element of InnAut G by Def5;
    then consider
    y1 be Function of the carrier of G, the carrier of G such that
A19: y1 = q;
    y1 is Element of Funcs (the carrier of G, the carrier of G) by FUNCT_2:9;
    then consider b such that
A20: for a holds y1.a = a |^ b by A16,A17,A19,Def4;
    take q1 = b";
    thus q1 in the carrier of G;
    f1.q1 = Conjugate b"" by A1
      .= Conjugate b;
    hence thesis by A18,A19,A20,Def6;
  end;
  then rng f1 = the carrier of InnAutGroup G by FUNCT_2:10;
  then f1 is onto;
  then InnAutGroup G = Image f1 by GROUP_6:57;
  hence thesis by A4,GROUP_6:78;
end;
