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 Th69:
  for G, H being trivial Group holds G,H are_isomorphic
proof
  let G, H be trivial Group;
  set h = 1:(G,H);
  consider x being object such that
    A1: the carrier of G = { x } by ZFMISC_1:131;
  reconsider x as Element of G by A1, TARSKI:def 1;
  consider y being object such that
    A2: the carrier of H = { y } by ZFMISC_1:131;
  reconsider y as Element of H by A2, TARSKI:def 1;
  A4: 1_H = y by A2, TARSKI:def 1;
  now
    let z be object;
    hereby
      assume z in the carrier of H;
      then A5: z = y by A2, TARSKI:def 1;
      reconsider x as object;
      take x;
      thus x in dom h;
      thus z = ((the carrier of G) --> 1_H).1_G by A4, A5
        .= h.x;
    end;
    given a being object such that
      A6: a in dom h & z = h.a;
    A7: z in rng h by A6, FUNCT_1:3;
    { 1_H } = rng((the carrier of G) --> 1_H) by FUNCOP_1:8
      .= rng h;
    then z = 1_H by A7, TARSKI:def 1;
    hence z in the carrier of H;
  end;
  then A8: rng h = the carrier of H by FUNCT_1:def 3;
  now
    let a,b be object;
    assume a in dom h & b in dom h & h.a = h.b;
    then a in dom(G --> 1_H) & b in dom(G --> 1_H);
    then a = x & b = x by A1, TARSKI:def 1;
    hence a = b;
  end;
  then h is one-to-one by FUNCT_1:def 4;
  then h is bijective by A8, FUNCT_2:def 3;
  hence thesis;
end;
