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

let o1, o2 be object of C; :: thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} implies for A being Morphism of o1,o2 st A is iso holds
( A is mono & A is epi ) )

assume A1: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) ; :: thesis: for A being Morphism of o1,o2 st A is iso holds
( A is mono & A is epi )

let A be Morphism of o1,o2; :: thesis: ( A is iso implies ( A is mono & A is epi ) )
assume A is iso ; :: thesis: ( A is mono & A is epi )
then A2: ( A is retraction & A is coretraction ) by A1, Th6;
A3: for o being object of C st <^o2,o^> <> {} holds
for B, C being Morphism of o2,o st B * A = C * A holds
B = C
proof
let o be object of C; :: thesis: ( <^o2,o^> <> {} implies for B, C being Morphism of o2,o st B * A = C * A holds
B = C )

assume A4: <^o2,o^> <> {} ; :: thesis: for B, C being Morphism of o2,o st B * A = C * A holds
B = C

let B, C be Morphism of o2,o; :: thesis: ( B * A = C * A implies B = C )
assume B * A = C * A ; :: thesis: B = C
then B * (A * (A " )) = (C * A) * (A " ) by A1, A4, ALTCAT_1:25;
then B * (idm o2) = (C * A) * (A " ) by A1, A2, Th2;
then B * (idm o2) = C * (A * (A " )) by A1, A4, ALTCAT_1:25;
then B * (idm o2) = C * (idm o2) by A1, A2, Th2;
then B = C * (idm o2) by A4, ALTCAT_1:def 19;
hence B = C by A4, ALTCAT_1:def 19; :: thesis: verum
end;
for o being object of C st <^o,o1^> <> {} holds
for B, C being Morphism of o,o1 st A * B = A * C holds
B = C
proof
let o be object of C; :: thesis: ( <^o,o1^> <> {} implies for B, C being Morphism of o,o1 st A * B = A * C holds
B = C )

assume A5: <^o,o1^> <> {} ; :: thesis: for B, C being Morphism of o,o1 st A * B = A * C holds
B = C

let B, C be Morphism of o,o1; :: thesis: ( A * B = A * C implies B = C )
assume A * B = A * C ; :: thesis: B = C
then ((A " ) * A) * B = (A " ) * (A * C) by A1, A5, ALTCAT_1:25;
then (idm o1) * B = (A " ) * (A * C) by A1, A2, Th2;
then (idm o1) * B = ((A " ) * A) * C by A1, A5, ALTCAT_1:25;
then (idm o1) * B = (idm o1) * C by A1, A2, Th2;
then B = (idm o1) * C by A5, ALTCAT_1:24;
hence B = C by A5, ALTCAT_1:24; :: thesis: verum
end;
hence ( A is mono & A is epi ) by A3, Def7, Def8; :: thesis: verum