reserve C for CatStr;
reserve f,g for Morphism of C;
reserve C for non void non empty CatStr,
  f,g for Morphism of C,
  a,b,c,d for Object of C;
reserve o,m for set;
reserve B,C,D for Category;
reserve a,b,c,d for Object of C;
reserve f,f1,f2,g,g1,g2 for Morphism of C;
reserve f,f1,f2 for Morphism of a,b;
reserve f9 for Morphism of b,a;
reserve g for Morphism of b,c;
reserve h,h1,h2 for Morphism of c,d;

theorem Th37:
  Hom(a,b) <> {} & Hom(b,a) <> {} implies for g1,g2 being Morphism
  of b,a st f*g1=id b & g2*f=id a holds g1=g2
proof
  assume that
A1: Hom(a,b) <> {} and
A2: Hom(b,a) <> {};
  let g1,g2 be Morphism of b,a;
  assume
A3: f*g1=id b;
  assume g2*f=id a;
  hence g1 = (g2*f)*g1 by A2,Th23
    .= g2*(id b) by A1,A2,A3,Th21
    .= g2 by A2,Th24;
end;
