reserve I for set,
  x,x1,x2,y,z for set,
  A for non empty set;
reserve C,D for Category;
reserve a,b,c,d for Object of C;
reserve f,g,h,i,j,k,p1,p2,q1,q2,i1,i2,j1,j2 for Morphism of C;
reserve f for Morphism of a,b,
        g for Morphism of b,a;
reserve g for Morphism of b,c;

theorem
  f is retraction iff f opp is coretraction
proof
  thus f is retraction implies f opp is coretraction
  proof
   assume
A1: Hom(a,b) <> {} & Hom(b,a) <> {};
   given i being Morphism of b,a such that
A2: f*i = id b;
   thus Hom(b opp,a opp) <> {} & Hom(a opp,b opp) <> {} by A1,OPPCAT_1:5;
   take i opp;
   thus (i opp)*(f opp) = id b by A1,A2,OPPCAT_1:70
       .= id (b opp) by OPPCAT_1:71;
  end;
   assume
A3: Hom(b opp,a opp) <> {} & Hom(a opp,b opp) <> {};
  given i being Morphism of a opp, b opp such that
A4: i*(f opp) = id(b opp);
  thus
A5: Hom(a,b) <> {} & Hom(b,a) <> {} by A3,OPPCAT_1:5;
  take opp i;
A6: (opp i) opp = opp i by A5,OPPCAT_1:def 6
       .= i by A3,OPPCAT_1:def 7;
  thus f*(opp i) = id(b opp) by A4,A6,A5,OPPCAT_1:70
       .= id b by OPPCAT_1:71;
end;
