
theorem Th1:
  for A,B being category, F,G being covariant Functor of A,B
  st (for a being Object of A holds F.a = G.a) &
  (for a,b being Object of A st <^a,b^> <> {}
  for f being Morphism of a,b holds F.f = G.f)
  holds the FunctorStr of F = the FunctorStr of G
proof
  let A,B be category, F,G be covariant Functor of A,B such that
A1: for a being Object of A holds F.a = G.a and
A2: for a,b being Object of A st <^a,b^> <> {}
  for f being Morphism of a,b holds F.f = G.f;
  the ObjectMap of F is Covariant by FUNCTOR0:def 12;
  then consider ff being Function of the carrier of A, the carrier of B such
  that
A3: the ObjectMap of F = [:ff, ff:];
  the ObjectMap of G is Covariant by FUNCTOR0:def 12;
  then consider gg being Function of the carrier of A, the carrier of B such
  that
A4: the ObjectMap of G = [:gg, gg:];
  now
    let a,b be Element of A;
    reconsider x = a, y = b as Object of A;
A5: dom ff = the carrier of A by FUNCT_2:def 1;
A6: dom gg = the carrier of A by FUNCT_2:def 1;
A7: (the ObjectMap of F).(x,x) = [ff.x, ff.x] by A3,A5,FUNCT_3:def 8;
A8: (the ObjectMap of F).(y,y) = [ff.y, ff.y] by A3,A5,FUNCT_3:def 8;
A9: (the ObjectMap of G).(x,x) = [gg.x, gg.x] by A4,A6,FUNCT_3:def 8;
A10: (the ObjectMap of G).(y,y) = [gg.y, gg.y] by A4,A6,FUNCT_3:def 8;
A11: F.x = ff.x by A7;
A12: F.y = ff.y by A8;
A13: G.x = gg.x by A9;
A14: G.y = gg.y by A10;
A15: F.x = G.x by A1;
A16: F.y = G.y by A1;
    thus (the ObjectMap of F).(a,b) = [ff.a,ff.b] by A3,A5,FUNCT_3:def 8
      .= (the ObjectMap of G).(a,b) by A4,A6,A11,A12,A13,A14,A15,A16,
FUNCT_3:def 8;
  end;
  then
A17: the ObjectMap of F = the ObjectMap of G;
  now
    let i be object;
    assume i in [:the carrier of A, the carrier of A:];
    then consider a,b being object such that
A18: a in the carrier of A and
A19: b in the carrier of A and
A20: i = [a,b] by ZFMISC_1:def 2;
    reconsider x = a, y = b as Object of A by A18,A19;
A21: <^x,y^> <> {} implies <^F.x,F.y^> <> {} by FUNCTOR0:def 18;
A22: <^x,y^> <> {} implies <^G.x,G.y^> <> {} by FUNCTOR0:def 18;
A23: dom Morph-Map(F,x,y) = <^x,y^> by A21,FUNCT_2:def 1;
A24: dom Morph-Map(G,x,y) = <^x,y^> by A22,FUNCT_2:def 1;
    now
      let z be object;
      assume
A25:  z in <^x,y^>;
      then reconsider f = z as Morphism of x,y;
      thus Morph-Map(F,x,y).z = F.f by A21,A25,FUNCTOR0:def 15
        .= G.f by A2,A25
        .= Morph-Map(G,x,y).z by A22,A25,FUNCTOR0:def 15;
    end;
    hence (the MorphMap of F).i = (the MorphMap of G).i by A20,A23,A24;
  end;
  hence thesis by A17,PBOOLE:3;
end;
