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
  a,b are_isomorphic iff Hom(a,b)<>{} & Hom(b,a)<>{} & ex f,f9 st
  f*f9 = id b & f9*f = id a
proof
  thus a,b are_isomorphic implies Hom(a,b)<>{} & Hom(b,a)<>{} & ex f,f9 st f*
  f9 = id b & f9*f = id a
  proof
    given f such that
A1: f is invertible;
    thus Hom(a,b) <> {} & Hom(b,a) <> {} by A1;
    take f;
    thus thesis by A1;
  end;
  assume that
A2: Hom(a,b)<>{} and
A3: Hom(b,a)<>{};
  given f such that
A4: ex f9 st f*f9 = id b & f9*f = id a;
  take f;
  thus thesis by A2,A3,A4;
end;
