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 Th58:
  for G,H being non empty set, h being Function of G,H holds
    h is onto iff
      for c being Element of H ex a being Element of G st h.a = c
  proof
    let G,H be non empty set, h be Function of G,H;
    hereby assume
      h is onto; then
A1:   rng h = H;
      let c be Element of H;
      ex a being object st a in G & h.a = c by A1,FUNCT_2:11;
      hence ex a being Element of G st h.a = c;
    end;
    assume
A2: for c being Element of H ex a being Element of G st h.a = c;
    for y being object st y in H
    ex x being object st x in G & y = h.x
    proof
      let y be object;
      assume y in H;
      then reconsider y0 = y as Element of H;
      ex x being Element of G st h.x = y0 by A2;
      hence thesis;
    end;
    then rng h = H by FUNCT_2:10;
    hence h is onto;
  end;
