let C be Category; :: thesis: for a, b, c being Object of C
for f being Morphism of a,b
for g being Morphism of b,c st Hom a,b <> {} & Hom b,c <> {} & g * f is epi holds
g is epi

let a, b, c be Object of C; :: thesis: for f being Morphism of a,b
for g being Morphism of b,c st Hom a,b <> {} & Hom b,c <> {} & g * f is epi holds
g is epi

let f be Morphism of a,b; :: thesis: for g being Morphism of b,c st Hom a,b <> {} & Hom b,c <> {} & g * f is epi holds
g is epi

let g be Morphism of b,c; :: thesis: ( Hom a,b <> {} & Hom b,c <> {} & g * f is epi implies g is epi )
assume that
A1: Hom a,b <> {} and
A2: Hom b,c <> {} and
A3: g * f is epi ; :: thesis: g is epi
now
let d be Object of C; :: thesis: for h1, h2 being Morphism of c,d st Hom c,d <> {} & h1 * g = h2 * g holds
h1 = h2

let h1, h2 be Morphism of c,d; :: thesis: ( Hom c,d <> {} & h1 * g = h2 * g implies h1 = h2 )
A4: Hom a,c <> {} by A1, A2, Th51;
assume A5: Hom c,d <> {} ; :: thesis: ( h1 * g = h2 * g implies h1 = h2 )
then ( h1 * (g * f) = (h1 * g) * f & h2 * (g * f) = (h2 * g) * f ) by A1, A2, Th54;
hence ( h1 * g = h2 * g implies h1 = h2 ) by A3, A5, A4, Th65; :: thesis: verum
end;
hence g is epi by A2, Th65; :: thesis: verum