let C be category; :: thesis: for o1, o2 being Object of C
for A being Morphism of o1,o2 st A is retraction & A is mono & <^o1,o2^> <> {} & <^o2,o1^> <> {} holds
A is iso

let o1, o2 be Object of C; :: thesis: for A being Morphism of o1,o2 st A is retraction & A is mono & <^o1,o2^> <> {} & <^o2,o1^> <> {} holds
A is iso

let A be Morphism of o1,o2; :: thesis: ( A is retraction & A is mono & <^o1,o2^> <> {} & <^o2,o1^> <> {} implies A is iso )
assume that
A1: A is retraction and
A2: A is mono and
A3: <^o1,o2^> <> {} and
A4: <^o2,o1^> <> {} ; :: thesis: A is iso
consider B being Morphism of o2,o1 such that
A5: B is_right_inverse_of A by A1;
(A * B) * A = (idm o2) * A by A5;
then A * (B * A) = (idm o2) * A by A3, A4, ALTCAT_1:21;
then A * (B * A) = A by A3, ALTCAT_1:20;
then A6: ( <^o1,o1^> <> {} & A * (B * A) = A * (idm o1) ) by A3, ALTCAT_1:19, ALTCAT_1:def 17;
then B * A = idm o1 by A2;
then A7: B is_left_inverse_of A ;
then A8: A is coretraction ;
then A9: A * (A ") = A * B by A1, A3, A4, A5, A7, Def4
.= idm o2 by A5 ;
(A ") * A = B * A by A1, A3, A4, A5, A7, A8, Def4
.= idm o1 by A2, A6 ;
hence A is iso by A9; :: thesis: verum