reserve U1,U2,U3 for Universal_Algebra,
  n,m for Nat,
  o1 for operation of U1,
  o2 for operation of U2,
  o3 for operation of U3,
  x,y for set;
reserve a for FinSequence of U1,
  f for Function of U1,U2;

theorem
  for U2 being strict Universal_Algebra, f be Function of U1,U2 st f
  is_homomorphism holds f is_epimorphism iff Image f = U2
proof
  let U2 be strict Universal_Algebra;
  let f be Function of U1,U2;
  assume
A1: f is_homomorphism;
  thus f is_epimorphism implies Image f = U2
  proof
    reconsider B = the carrier of Image f as non empty Subset of U2 by
UNIALG_2:def 7;
    assume f is_epimorphism;
    then
A2: the carrier of U2 = rng f
      .= f.:(dom f) by RELAT_1:113
      .= f.:(the carrier of U1) by FUNCT_2:def 1
      .= the carrier of Image f by A1,Def6;
    the charact of(Image f) = Opers(U2,B) by UNIALG_2:def 7;
    hence thesis by A2,Th1;
  end;
  assume Image f = U2;
  then the carrier of U2 = f.:(the carrier of U1) by A1,Def6
    .= f.:(dom f) by FUNCT_2:def 1
    .= rng f by RELAT_1:113;
  hence thesis by A1;
end;
