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
  Hom(b,c)<>{} & Hom(c,d)<>{} & h*g is monic implies g is monic
proof
  assume that
A1: Hom(b,c)<>{} and
A2: Hom(c,d)<>{} and
A3: h*g is monic;
  now
    let a,f1,f2;
    assume
A4: Hom(a,b)<>{};
    then h*(g*f1) = (h*g)*f1 & h*(g*f2) = (h*g)*f2 by A1,A2,Th21;
    hence g*f1 = g*f2 implies f1 = f2 by A3,A4;
  end;
  hence thesis by A1;
end;
