
theorem
  for G1, G2 being Group for f being Homomorphism of G1, G2 st f is
  one-to-one holds FuncLatt f is one-to-one
proof
  let G1, G2 be Group;
  let f be Homomorphism of G1, G2 such that
A1: f is one-to-one;
  for x1, x2 being object st x1 in dom FuncLatt f & x2 in dom FuncLatt f & (
  FuncLatt f).x1 = (FuncLatt f).x2 holds x1 = x2
  proof
    reconsider y = f.(1_G1) as Element of G2;
    let x1, x2 be object;
    assume that
A2: x1 in dom FuncLatt f & x2 in dom FuncLatt f and
A3: (FuncLatt f).x1 = (FuncLatt f).x2;
    reconsider x1, x2 as strict Subgroup of G1 by A2,GROUP_3:def 1;
    reconsider A1 = f.:the carrier of x1, A2 = f.:the carrier of x2 as Subset
    of G2;
A4: for g being Element of G2 st g in f.:the carrier of x1 holds g" in f
    .:the carrier of x1
    proof
      let g be Element of G2;
      assume g in f.:the carrier of x1;
      then consider x being Element of G1 such that
A5:   x in the carrier of x1 and
A6:   g = f.x by FUNCT_2:65;
      x in x1 by A5,STRUCT_0:def 5;
      then x" in x1 by GROUP_2:51;
      then
A7:   x" in the carrier of x1 by STRUCT_0:def 5;
      f.x" = (f.x)" by GROUP_6:32;
      hence thesis by A6,A7,FUNCT_2:35;
    end;
A8: for g1, g2 being Element of G2 st g1 in f.:the carrier of x1 & g2 in
    f.:the carrier of x1 holds g1 * g2 in f.:the carrier of x1
    proof
      let g1, g2 be Element of G2;
      assume that
A9:   g1 in f.:the carrier of x1 and
A10:  g2 in f.:the carrier of x1;
      consider x being Element of G1 such that
A11:  x in the carrier of x1 and
A12:  g1 = f.x by A9,FUNCT_2:65;
      consider y being Element of G1 such that
A13:  y in the carrier of x1 and
A14:  g2 = f.y by A10,FUNCT_2:65;
A15:  y in x1 by A13,STRUCT_0:def 5;
      x in x1 by A11,STRUCT_0:def 5;
      then x * y in x1 by A15,GROUP_2:50;
      then
A16:  x * y in the carrier of x1 by STRUCT_0:def 5;
      f.(x * y) = f.x * f.y by GROUP_6:def 6;
      hence thesis by A12,A14,A16,FUNCT_2:35;
    end;
A17: for g being Element of G2 st g in f.:the carrier of x2 holds g" in f
    .:the carrier of x2
    proof
      let g be Element of G2;
      assume g in f.:the carrier of x2;
      then consider x being Element of G1 such that
A18:  x in the carrier of x2 and
A19:  g = f.x by FUNCT_2:65;
      x in x2 by A18,STRUCT_0:def 5;
      then x" in x2 by GROUP_2:51;
      then
A20:  x" in the carrier of x2 by STRUCT_0:def 5;
      f.x" = (f.x)" by GROUP_6:32;
      hence thesis by A19,A20,FUNCT_2:35;
    end;
A21: dom f = the carrier of G1 by FUNCT_2:def 1;
A22: for g1, g2 being Element of G2 st g1 in f.:the carrier of x2 & g2 in
    f.:the carrier of x2 holds g1 * g2 in f.:the carrier of x2
    proof
      let g1, g2 be Element of G2;
      assume that
A23:  g1 in f.:the carrier of x2 and
A24:  g2 in f.:the carrier of x2;
      consider x being Element of G1 such that
A25:  x in the carrier of x2 and
A26:  g1 = f.x by A23,FUNCT_2:65;
      consider y being Element of G1 such that
A27:  y in the carrier of x2 and
A28:  g2 = f.y by A24,FUNCT_2:65;
A29:  y in x2 by A27,STRUCT_0:def 5;
      x in x2 by A25,STRUCT_0:def 5;
      then x * y in x2 by A29,GROUP_2:50;
      then
A30:  x * y in the carrier of x2 by STRUCT_0:def 5;
      f.(x * y) = f.x * f.y by GROUP_6:def 6;
      hence thesis by A26,A28,A30,FUNCT_2:35;
    end;
    1_G1 in x2 by GROUP_2:46;
    then
A31: 1_G1 in the carrier of x2 by STRUCT_0:def 5;
A32: (FuncLatt f).x1 = gr A1 & (FuncLatt f).x2 = gr A2 by Def3;
    ex y being Element of G2 st y = f.(1_G1);
    then f.:the carrier of x2 <> {} by A21,A31,FUNCT_1:def 6;
    then consider B2 being strict Subgroup of G2 such that
A33: the carrier of B2 = f.:the carrier of x2 by A17,A22,GROUP_2:52;
    1_G1 in x1 by GROUP_2:46;
    then 1_G1 in the carrier of x1 by STRUCT_0:def 5;
    then y in f.:the carrier of x1 by A21,FUNCT_1:def 6;
    then
A34: ex B1 being strict Subgroup of G2 st the carrier of B1 = f .:the
    carrier of x1 by A4,A8,GROUP_2:52;
    gr (f.:the carrier of x2) = B2 by A33,Th3;
    then
A35: f.:the carrier of x1 = f.:the carrier of x2 by A3,A32,A34,A33,Th3;
    the carrier of x2 c= dom f by A21,GROUP_2:def 5;
    then
A36: the carrier of x2 c= the carrier of x1 by A1,A35,FUNCT_1:87;
    the carrier of x1 c= dom f by A21,GROUP_2:def 5;
    then the carrier of x1 c= the carrier of x2 by A1,A35,FUNCT_1:87;
    then the carrier of x1 = the carrier of x2 by A36;
    hence thesis by GROUP_2:59;
  end;
  hence thesis by FUNCT_1:def 4;
end;
