reserve n for Element of NAT;
reserve i for Integer;
reserve G,H,I for Group;
reserve A,B for Subgroup of G;
reserve N for normal Subgroup of G;
reserve a,a1,a2,a3,b,b1 for Element of G;
reserve c,d for Element of H;
reserve f for Function of the carrier of G, the carrier of H;
reserve x,y,y1,y2,z for set;
reserve A1,A2 for Subset of G;
reserve N for normal Subgroup of G;
reserve S,T1,T2 for Element of G./.N;
reserve g,h for Homomorphism of G,H;
reserve h1 for Homomorphism of H,I;

theorem Th56:
  h is one-to-one iff Ker h = (1).G
proof
  thus h is one-to-one implies Ker h = (1).G
  proof
    assume
A1: h is one-to-one;
    now
      let x be object;
      thus x in the carrier of Ker h iff x = 1_G
      proof
        thus x in the carrier of Ker h implies x = 1_G
        proof
          assume
A2:       x in the carrier of Ker h;
          then x in Ker h;
          then x in G by GROUP_2:40;
          then reconsider a = x as Element of G;
          a in Ker h by A2;
          then h.a = 1_H by Th41
            .= h.(1_G) by Th31;
          hence thesis by A1,Th1;
        end;
        assume
A3:     x = 1_G;
        then reconsider a = x as Element of G;
        h.a = 1_H by A3,Th31;
        then a in Ker h by Th41;
        hence thesis;
      end;
    end;
    then the carrier of Ker h = {1_G} by TARSKI:def 1;
    hence thesis by GROUP_2:def 7;
  end;
  assume Ker h = (1).G;
  then
A4: the carrier of Ker h = {1_G} by GROUP_2:def 7;
  now
    let a,b;
    assume that
A5: a <> b and
A6: h.a = h.b;
    h.a * h.(a") = h.(a * a") by Def6
      .= h.(1_G) by GROUP_1:def 5
      .= 1_H by Th31;
    then 1_H = h.(b * a") by A6,Def6;
    then b * a" in Ker h by Th41;
    then
A7: b * a" in the carrier of Ker h;
    a = 1_G * a by GROUP_1:def 4
      .= b * a" * a by A4,A7,TARSKI:def 1
      .= b * (a" * a) by GROUP_1:def 3
      .= b * 1_G by GROUP_1:def 5
      .= b by GROUP_1:def 4;
    hence contradiction by A5;
  end;
  then for a,b st h.a = h.b holds a = b;
  hence thesis by Th1;
end;
