reserve U for Universe;
reserve x for Element of U;
reserve U1,U2 for Universe;

theorem Th83:
  GroupObjects(U),U are_equipotent
  proof
    set GOU = GroupObjects(U);
    reconsider GOU9 = GOU as non empty set;
    defpred P[object,object] means $2 in U & GO $2,$1;
A1: for x be Element of GOU9 ex y be Element of U st P[x,y]
    proof
      let x be Element of GOU9;
      ex  x9 be object st  x9 in U & GO x9,x by GRCAT_1:def 24;
      hence thesis;
    end;
    consider f be Function of GOU9,U such that
A2: for x be Element of GOU9 holds P[x,f.x] from FUNCT_2:sch 3(A1);
    now
      let x1,x2 be object;
      assume that
A3:   x1 in dom f and
A4:   x2 in dom f and
A5:   f.x1 = f.x2;
      reconsider x91 = x1,x92 = x2 as Element of GOU by A3,A4,PARTFUN1:def 2;
      consider y1, y2, y3, y4 be set such that
A6:   f.x91 = [y1,y2,y3,y4] and
A7:   ex G1 be strict AddGroup st
      x91 = G1 & y1 = the carrier of G1 & y2 = the addF of G1 & y3 = comp G1
        & y4 = 0. G1 by A2,GRCAT_1:def 23;
      consider z1, z2, z3, z4 be set such that
A8:   f.x91 = [z1,z2,z3,z4] and
A9:   ex G2 be strict AddGroup st
      x92 = G2 & z1 = the carrier of G2 & z2 = the addF of G2 & z3 = comp G2
        & z4 = 0. G2 by A5,A2,GRCAT_1:def 23;
      consider G1 be strict AddGroup such that
A10:  x91 = G1 & y1 = the carrier of G1 & y2 = the addF of G1 &
        y3 = comp G1 & y4 = 0. G1 by A7;
      consider G2 be strict AddGroup such that
A11:  x92 = G2 & z1 = the carrier of G2 & z2 = the addF of G2 &
        z3 = comp G2 & z4 = 0. G2 by A9;
      the carrier of G1 = the carrier of G2 &
        the addF of G1 = the addF of G2 &
      0.G1 = 0.G2 & the ZeroF of G1 = 0.G1 & the ZeroF of G2 = 0.G2
        by A10,A11,STRUCT_0:def 6,XTUPLE_0:5,A8,A6;
      hence x1 = x2 by A10,A11;
    end;
    then
A12: f is one-to-one by FUNCT_1:def 4;
    reconsider U9 = U as non empty set;
    deffunc Q(object) = Trivial-addLoopStr($1);
A13: for x be object st x in U holds Q(x) in GroupObjects U by Th82;
    consider g be Function of U,GroupObjects U such that
A14: for x be object st x in U holds g.x = Q(x) from FUNCT_2:sch 2(A13);
    now
      let x1,x2 be object;
      assume that
A15:  x1 in dom g and
A16:  x2 in dom g and
A17:  g.x1 = g.x2;
      reconsider x91 = x1,x92 = x2 as Element of U by A15,A16,PARTFUN1:def 2;
      g.x91 = Trivial-addLoopStr(x91) & g.x92 = Trivial-addLoopStr(x92)
        by A14;
      hence x1 = x2 by A17;
    end;
    then g is one-to-one by FUNCT_1:def 4;
    hence thesis by A12,KNASTER:12;
  end;
