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
  f is invertible & g is invertible
  implies (g*f)" = f"*g"
proof
  assume that
A1: f is invertible and
A2: g is invertible;
A3: Hom(a,b) <> {} by A1;
A4: Hom(b,c) <> {} by A2;
A5: Hom(c,b) <> {} by A2;
A6: Hom(b,a) <> {} by A1;
  then
A7: Hom(c,a) <> {} by A5,Th19;
  then
A8: (f"*g")*(g*f) = ((f"*g")*g)*f by A3,A4,Th21
    .= (f"*(g"*g))*f by A4,A6,A5,Th21
    .= (f"*(id b))*f by A2,Def15
    .= f"*f by A6,Th24
    .= id a by A1,Def15;
A9: Hom(a,c) <> {} & g*f is invertible by A1,A2,Th19,Th40;
  (g*f)*(f"*g") = g*(f*(f"*g")) by A3,A4,A7,Th21
    .= g*((f*f")*g") by A3,A6,A5,Th21
    .= g*((id b)*g") by A1,Def15
    .= g*g" by A5,Th23
    .= id c by A2,Def15;
  hence thesis by A8,A9,Def15;
end;
