reserve o,m for set;
reserve C for Cartesian_category;
reserve a,b,c,d,e,s for Object of C;

theorem
  for f being Morphism of c,a, g being Morphism of c,b st Hom(c,a) <> {}
  & Hom(c,b) <> {} & (f is monic or g is monic) holds <:f,g:> is monic
proof
  let f be Morphism of c,a, g be Morphism of c,b;
  assume that
A1: Hom(c,a) <> {} and
A2: Hom(c,b) <> {} and
A3: f is monic or g is monic;
A4: now
    assume
A5: g is monic;
    let d be Object of C, f1,f2 be Morphism of d,c such that
A6: Hom(d,c)<>{} and
A7: <:f,g:>*f1 = <:f,g:>*f2;
A8: Hom(d,a) <> {} & Hom(d,b) <> {} by A1,A2,A6,CAT_1:24;
    <:f*f1,g*f1:> = <:f,g:>*f1 & <:f*f2,g*f2:> = <:f,g:>*f2 by A1,A2,A6,Th25;
    then g*f1 = g*f2 by A7,A8,Th26;
    hence f1 = f2 by A5,A6;
  end;
A9: now
    assume
A10: f is monic;
    let d;
    let f1,f2 be Morphism of d,c such that
A11: Hom(d,c)<>{} and
A12: <:f,g:>*f1 = <:f,g:>*f2;
A13: Hom(d,a) <> {} & Hom(d,b) <> {} by A1,A2,A11,CAT_1:24;
    <:f*f1,g*f1:> = <:f,g:>*f1 & <:f*f2,g*f2:> = <:f,g:>*f2 by A1,A2,A11,Th25;
    then f*f1 = f*f2 by A12,A13,Th26;
    hence f1 = f2 by A10,A11;
  end;
  Hom(c,a[x]b) <> {} by A1,A2,Th23;
  hence thesis by A3,A9,A4;
end;
