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,a) <> {} & g * f is retraction holds
g is retraction

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,a) <> {} & g * f is retraction holds
g is retraction

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

let g be Morphism of b,c; :: thesis: ( Hom (a,b) <> {} & Hom (b,a) <> {} & g * f is retraction implies g is retraction )
assume A1: ( Hom (a,b) <> {} & Hom (b,a) <> {} ) ; :: thesis: ( not g * f is retraction or g is retraction )
assume A2: ( Hom (a,c) <> {} & Hom (c,a) <> {} ) ; :: according to CAT_3:def 8 :: thesis: ( for g being Morphism of c,a holds not (g * f) * g = id c or g is retraction )
given i being Morphism of c,a such that A3: (g * f) * i = id c ; :: thesis: g is retraction
thus A4: ( Hom (b,c) <> {} & Hom (c,b) <> {} ) by ; :: according to CAT_3:def 8 :: thesis: ex g being Morphism of c,b st g * g = id c
take f * i ; :: thesis: g * (f * i) = id c
thus g * (f * i) = id c by A2, A3, A4, A1, CAT_1:25; :: thesis: verum