reserve C for category,
  o1, o2, o3 for Object of C;

theorem Th40:
  for D being non empty subcategory of C for o1, o2 being Object
of C, p1, p2 being Object of D for m being Morphism of o1, o2, n being Morphism
  of p1, p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {}
holds (n is retraction implies m is retraction) & (n is coretraction implies m
  is coretraction) & (n is iso implies m is iso)
proof
  let D be non empty subcategory of C, o1, o2 be Object of C, p1, p2 be Object
  of D, m be Morphism of o1, o2, n be Morphism of p1, p2 such that
A1: p1 = o1 & p2 = o2 and
A2: m = n and
A3: <^p1,p2^> <> {} and
A4: <^p2,p1^> <> {};
A5: <^o1,o2^> <> {} & <^o2,o1^> <> {} by A1,A3,A4,ALTCAT_2:31,XBOOLE_1:3;
  thus
A6: n is retraction implies m is retraction
  proof
    assume n is retraction;
    then consider B being Morphism of p2, p1 such that
A7: B is_right_inverse_of n;
    reconsider B1 = B as Morphism of o2, o1 by A1,A4,ALTCAT_2:33;
    take B1;
    thus thesis by A1,A2,A3,A4,A7,Th38;
  end;
  thus
A8: n is coretraction implies m is coretraction
  proof
    assume n is coretraction;
    then consider B being Morphism of p2, p1 such that
A9: B is_left_inverse_of n;
    reconsider B1 = B as Morphism of o2, o1 by A1,A4,ALTCAT_2:33;
    take B1;
    thus thesis by A1,A2,A3,A4,A9,Th38;
  end;
  assume n is iso;
  hence thesis by A6,A8,A5,ALTCAT_3:5,6;
end;
