
theorem
  for C being category, c,c1,c2,d being Object of C,
      f1 being Morphism of c1,c, f2 being Morphism of c2,c,
      p1 being Morphism of d,c1, p2 being Morphism of d,c2
  st Hom(c1,c) <> {} & Hom(c2,c) <> {} & Hom(d,c1) <> {} & Hom(d,c2) <> {} &
     d,p1,p2 is_pullback_of f1,f2 & f1 is monomorphism
  holds p2 is monomorphism
  proof
    let C be category;
    let c,c1,c2,d be Object of C;
    let f1 be Morphism of c1,c;
    let f2 be Morphism of c2,c;
    let p1 be Morphism of d,c1;
    let p2 be Morphism of d,c2;
    assume
A1: Hom(c1,c) <> {} & Hom(c2,c) <> {} & Hom(d,c1) <> {} & Hom(d,c2) <> {};
    assume
A2: d,p1,p2 is_pullback_of f1,f2;
    then
A3: f1 * p1 = f2 * p2 & for d1 being Object of C,
    g1 being Morphism of d1,c1, g2 being Morphism of d1,c2
    st Hom(d1,c1) <> {} & Hom(d1,c2) <> {} & f1 * g1 = f2 * g2
    holds Hom(d1,d) <> {} & ex h being Morphism of d1,d st
    p1 * h = g1 & p2 * h = g2
    & for h1 being Morphism of d1,d st p1 * h1 = g1 & p2 * h1 = g2 holds h = h1
    by A1,Def17;
    assume
A4: f1 is monomorphism;
    thus Hom(d,c2)<>{} by A1;
    let d1 be Object of C;
    assume
A5: Hom(d1,d) <> {};
    let q1,q2 be Morphism of d1,d;
    assume
A6: p2 * q1 = p2 * q2;
    set p11 = p1 * q1;
    set p12 = p2 * q1;
A7: Hom(d1,c1) <> {} & Hom(d1,c2) <> {} by A1,A5,Th22;
    f1 * p11 = (f1 * p1) * q1 by A5,A1,Th23
    .= f2 * p12 by A5,A3,A1,Th23;
    then consider h be Morphism of d1,d such that
A8: p1 * h = p11 & p2 * h = p12
    & for h1 being Morphism of d1,d st p1 * h1 = p11 & p2 * h1 = p12
    holds h = h1 by A1,A2,Def17,A7;
A9: q1 = h by A8;
    f1 * (p1 * q2) = (f1 * p1) * q2 by A5,A1,Th23
    .= f2 * (p2 * q2) by A5,A3,A1,Th23
    .= (f2 * p2) * q1 by A6,A5,A1,Th23
    .= f1 * p11 by A5,A3,A1,Th23;
    hence q1 = q2 by A9,A8,A6,A7,A4;
  end;
