reserve B,C,D,C9,D9 for Category;
reserve E for Subcategory of C;

theorem
  for L being Function of the carrier of C,Funct(B,D), M being Function
of the carrier of B,Funct(C,D) st ( for c being Object of C,b being Object of B
  holds (M.b).(id c) = (L.c).(id b) ) & ( for f being Morphism of B for g being
Morphism of C
  holds ((M.(cod f)).g)(*)((L.(dom g)).f) = ((L.(cod g)).f)(*)((M.(dom
  f)).g) ) ex S being Functor of [:B,C:],D st for f being Morphism of B for g
  being Morphism of C holds S.(f,g) = ((L.(cod g)).f)(*)((M.(dom f)).g)
proof
  deffunc Mor(Category) = the carrier' of $1;
  let L be Function of the carrier of C,Funct(B,D), M be Function of the
  carrier of B,Funct(C,D) such that
A1: for c being Object of C, b being Object of B holds (M.b).(id c) = (L
  .c).(id b) and
A2: for f being Morphism of B for g being Morphism of C holds ((M.(cod f
  )).g)(*)((L.(dom g)).f) = ((L.(cod g)).f)(*)((M.(dom f)).g);
  deffunc F(Element of Mor(B), Element of Mor(C))
    = ((L.(cod $2)).$1)(*)((M.(dom
  $1)).$2);
  consider S being Function of [:Mor(B),Mor(C):],Mor(D) such that
A3: for f being Morphism of B for g being Morphism of C holds S.(f,g) =
  F(f,g) from BINOP_1:sch 4;
  reconsider T = S as Function of Mor([:B,C:]),Mor(D);
  now
    thus for bc being Object of [:B,C:] ex d being Object of D st T.(id bc) =
    id d
    proof
      let bc be Object of [:B,C:];
      consider b being Object of B, c being Object of C such that
A4:   bc = [b,c] by DOMAIN_1:1;
      consider d being Object of D such that
A5:   (L.c).(id b) = id d by CAT_1:62;
      take d;
      Hom(d,d) <> {};
      then
A6:   (id d)*(id d) = (id d)(*)(id d) by CAT_1:def 13;
A7:   cod id c = c & dom id b = b;
      (L.c).(id b) = (M.b).(id c) by A1;
      then T.(id b,id c) = id d by A3,A5,A6,A7;
      hence thesis by A4,Th25;
    end;
    thus for fg being Morphism of [:B,C:] holds T.(id dom fg) = id dom (T.fg)
    & T.(id cod fg) = id cod (T.fg)
    proof
      let fg be Morphism of [:B,C:];
      consider f being (Morphism of B), g being Morphism of C such that
A8:   fg = [f,g] by DOMAIN_1:1;
      set b = dom f, c = dom g;
      set g9 = id c, f9= id b;
A9:   Hom(dom ((M.b).g),dom ((M.b).g)) <> {};
      id dom ((L.(cod g)).f) = (L.(cod g)).(id dom f) by CAT_1:63
        .= (M.(dom f)).(id cod g) by A1
        .= id cod ((M.(dom f)).g) by CAT_1:63;
      then
A10:  dom ((L.(cod g)).f) = cod ((M.(dom f)).g) by CAT_1:59;
      thus T.(id (dom fg)) = S.(id [b,c]) by A8,Th22
        .= S.(id b,id c) by Th25
        .= ((L.(cod g9)).f9)(*)((M.(dom f9)).g9) by A3
        .= ((L.c).f9)(*)((M.(dom f9)).g9)
        .= ((L.c).f9)(*)((M.b).g9)
        .= ((M.b).g9)(*)((M.b).g9) by A1
        .= (id dom ((M.b).g))(*)((M.b).g9) by CAT_1:63
        .= (id dom ((M.b).g))(*)(id dom((M.b).g)) by CAT_1:63
        .= (id dom ((M.b).g))*(id dom((M.b).g)) by A9,CAT_1:def 13
        .= id dom (((L.(cod g)).f)(*)((M.(dom f)).g)) by A10,CAT_1:17
        .= id dom (S.(f,g)) by A3
        .= id dom(T.fg) by A8;
      set b = cod f, c = cod g;
      set g9 = id c, f9= id b;
A11:  Hom(cod ((L.c).f),cod ((L.c).f)) <> {};
      thus T.(id (cod fg)) = S.(id [b,c]) by A8,Th22
        .= S.(id b,id c) by Th25
        .= ((L.(cod g9)).f9)(*)((M.(dom f9)).g9) by A3
        .= ((L.c).f9)(*)((M.(dom f9)).g9)
        .= ((L.c).f9)(*)((M.(cod f)).g9)
        .= ((L.c).f9)(*)((L.c).f9) by A1
        .= (id cod (((L.c).f))(*)((L.c).f9)) by CAT_1:63
        .= (id cod ((L.c).f))(*)(id cod((L.c).f)) by CAT_1:63
        .= (id cod ((L.c).f))*(id cod ((L.c).f)) by A11,CAT_1:def 13
        .= id cod (((L.(cod g)).f)(*)((M.(dom f)).g)) by A10,CAT_1:17
        .= id cod (S.(f,g)) by A3
        .= id cod (T.fg) by A8;
    end;
    let fg1,fg2 be Morphism of [:B,C:] such that
A12: dom fg2 = cod fg1;
    consider f1 being (Morphism of B), g1 being Morphism of C such that
A13: fg1 = [f1,g1] by DOMAIN_1:1;
    consider f2 being (Morphism of B), g2 being Morphism of C such that
A14: fg2 = [f2,g2] by DOMAIN_1:1;
A15: [cod f1,cod g1] = cod fg1 by A13,Th22;
    set L1 = L.(cod g1), L2 = L.(cod g2), M1 = M.(dom f1), M2 = M.(dom f2);
A16: [dom f2,dom g2] = dom fg2 by A14,Th22;
    then
A17: dom f2 = cod f1 by A12,A15,XTUPLE_0:1;
    then
A18: dom(L2.f2) = cod (L2.f1) by CAT_1:64;
    id dom (L1.f1) = L1.(id dom f1) by CAT_1:63
      .= M1.(id cod g1) by A1
      .= id cod (M1.g1) by CAT_1:63;
    then
A19: dom (L1.f1) = cod (M1.g1) by CAT_1:59;
    then
A20: cod ((L1.f1)(*)(M1.g1)) = cod (L1.f1) by CAT_1:17;
A21: dom g2 = cod g1 by A12,A16,A15,XTUPLE_0:1;
    then
A22: dom(M1.g2) = cod (M1.g1) by CAT_1:64;
    then
A23: cod ((M1.g2)(*)(M1.g1)) = cod(M1.g2) by CAT_1:17;
    id dom (M2.g2) = M2.(id dom g2) by CAT_1:63
      .= L1.(id cod f1) by A1,A17,A21
      .= id cod (L1.f1) by CAT_1:63;
    then
A24: dom (M2.g2) = cod(L1.f1) by CAT_1:59;
    id dom (L2.f2) = L2.(id dom f2) by CAT_1:63
      .= M2.(id cod g2) by A1
      .= id cod (M2.g2) by CAT_1:63;
    then
A25: dom (L2.f2) = cod (M2.g2) by CAT_1:59;
    set f = f2(*)f1, g = g2(*)g1;
    id dom (L2.f1) = L2.(id dom f1) by CAT_1:63
      .= M1.(id cod g2) by A1
      .= id cod (M1.g2) by CAT_1:63;
    then
A26: dom (L2.f1) = cod (M1.g2) by CAT_1:59;
    thus T.(fg2(*)fg1) = S.(f,g) by A12,A13,A14,Th24
      .= ((L.(cod g)).f)(*)((M.(dom f)).g) by A3
      .= ((L.(cod g2)).f)(*)((M.(dom f)).g) by A21,CAT_1:17
      .= ((L.(cod g2)).f)(*)((M.(dom f1)).g) by A17,CAT_1:17
      .= ((L2.f2)(*)(L2.f1))(*)(M1.g) by A17,CAT_1:64
      .= ((L2.f2)(*)(L2.f1))(*)((M1.g2)(*)(M1.g1)) by A21,CAT_1:64
      .= (L2.f2)(*)((L2.f1)(*)((M1.g2)(*)(M1.g1))) by A18,A23,A26,CAT_1:18
      .= (L2.f2)(*)(((L2.f1)(*)(M1.g2))(*)(M1.g1)) by A22,A26,CAT_1:18
      .= (L2.f2)(*)(((M2.g2)(*)(L1.f1))(*)(M1.g1)) by A2,A17,A21
      .= (L2.f2)(*)((M2.g2)(*)((L1.f1)(*)(M1.g1))) by A19,A24,CAT_1:18
      .= ((L2.f2)(*)(M2.g2))(*)((L1.f1)(*)(M1.g1)) by A24,A25,A20,CAT_1:18
      .= ((L2.f2)(*)(M2.g2))(*)(S.(f1,g1)) by A3
      .= (S.(f2,g2))(*)(T.fg1) by A3,A13
      .= (T.fg2)(*)(T.fg1) by A14;
  end;
  then reconsider T as Functor of [:B,C:],D by CAT_1:61;
  take T;
  thus thesis by A3;
end;
