
theorem
  for C being category, o1,o2 being Object of C st <^o1,o2^> <> {} & <^
  o2,o1^> <> {} for A being Morphism of o1,o2 st A is iso holds A is mono epi
proof
  let C be category;
  let o1, o2 be Object of C such that
A1: <^o1,o2^> <> {} & <^o2,o1^> <> {};
  let A be Morphism of o1, o2;
  assume A is iso;
  then
A2: A is retraction & A is coretraction by A1,Th6;
A3: for o being Object of C st <^o2,o^> <> {} for B, C being Morphism of o2
  , o st B * A = C * A holds B = C
  proof
    let o be Object of C such that
A4: <^o2,o^> <> {};
    let B, C be Morphism of o2, o;
    assume B * A = C * A;
    then B * (A * A") = (C * A) * A" by A1,A4,ALTCAT_1:21;
    then B * idm o2 = (C * A) * A" by A1,A2,Th2;
    then B * idm o2 = C * (A * A") by A1,A4,ALTCAT_1:21;
    then B * idm o2 = C * idm o2 by A1,A2,Th2;
    then B = C * idm o2 by A4,ALTCAT_1:def 17;
    hence thesis by A4,ALTCAT_1:def 17;
  end;
  for o being Object of C st <^o,o1^> <> {} for B, C being Morphism of o,
  o1 st A * B = A * C holds B = C
  proof
    let o be Object of C such that
A5: <^o,o1^> <> {};
    let B, C be Morphism of o, o1;
    assume A * B = A * C;
    then (A" * A) * B = A" * (A * C) by A1,A5,ALTCAT_1:21;
    then idm o1 * B = A" * (A * C) by A1,A2,Th2;
    then idm o1 * B = (A" * A) * C by A1,A5,ALTCAT_1:21;
    then idm o1 * B = idm o1 * C by A1,A2,Th2;
    then B = idm o1 * C by A5,ALTCAT_1:20;
    hence thesis by A5,ALTCAT_1:20;
  end;
  hence thesis by A3;
end;
