reserve A,B,C,D for Category,
  F for Functor of A,B,
  G for Functor of B,C;
reserve o,m for set;

theorem Th20:
  for F1,F2 being Functor of A,B, G1,G2 being Functor of B,C st F1
is_naturally_transformable_to F2 & G1 is_naturally_transformable_to G2 holds G1
  *F1 is_naturally_transformable_to G2*F2
proof
  let F1,F2 be Functor of A,B, G1,G2 be Functor of B,C such that
A1: F1 is_naturally_transformable_to F2 and
A2: G1 is_naturally_transformable_to G2;

set t1 = the natural_transformation of F1,F2,t2 = the natural_transformation of
G1,G2;
A3: G1 is_transformable_to G2 by A2;
A4: F1 is_transformable_to F2 by A1;
  hence
A5: G1*F1 is_transformable_to G2*F2 by A3,Th3;
  take t = (t2*F2)`*`(G1*t1);
  let a,b be Object of A;
A6: Hom(G1.(F2.b),G2.(F2.b)) <> {} by A3;
A7: Hom((G1*F1).a,(G2*F2).a) <> {} by A5;
A8: G1*F1 is_transformable_to G1*F2 by A4,Th3;
  then
A9: Hom((G1*F1).b,(G1*F2).b) <> {};
A10: Hom((G1*F1).b,(G2*F2).b) <> {} by A5;
  assume
A11: Hom(a,b) <> {};
  then
A12: Hom((G2*F2).a,(G2*F2).b) <> {} by CAT_1:84;
A13: Hom(F1.b,F2.b) <> {} by A4;
  then
A14: Hom(G1.(F1.b),G1.(F2.b)) <> {} by CAT_1:84;
  then
A15: Hom(G1.(F1.b),G2.(F2.b)) <> {} by A6,CAT_1:24;
A16: G1*F2 is_transformable_to G2*F2 by A3,Th3;
  then
A17: Hom((G1*F2).b,(G2*F2).b) <> {};
A18: Hom((G1*F1).a,(G1*F2).a) <> {} by A8;
A19: Hom((G1*F2).a,(G2*F2).a) <> {} by A16;
A20: Hom(F1.a,F2.a) <> {} by A4;
  then
A21: Hom(G1.(F1.a),G1.(F2.a)) <> {} by CAT_1:84;
  let f be Morphism of a,b;
A22: Hom(F2.a,F2.b) <> {} by A11,CAT_1:84;
  then
A23: Hom(G1.(F2.a),G1.(F2.b)) <> {} by CAT_1:84;
A24: Hom(F1.a,F1.b) <> {} by A11,CAT_1:84;
  then
A25: Hom(G1.(F1.a),G1.(F1.b)) <> {} by CAT_1:84;
A26: Hom(G1.(F2.a),G2.(F2.a)) <> {} by A3;
  then
A27: Hom(G1.(F1.a),G2.(F2.a)) <> {} by A21,CAT_1:24;
A28: Hom(G2.(F2.a),G2.(F2.b)) <> {} by A22,CAT_1:84;
  Hom((G1*F1).a,(G1*F1).b) <> {} by A11,CAT_1:84;
  hence t.b*(G1*F1)/.f = (t.b)(*)((G1*F1)/.f qua Morphism of C)
                  by A10,CAT_1:def 13
    .= (t.b)(*)(G1/.(F1/.f) qua Morphism of C) by A11,NATTRA_1:11
    .= ((t2*F2).b*(G1*t1).b)(*)(G1/.(F1/.f)) by A8,A16,NATTRA_1:def 6
    .= ((t2*F2).b qua Morphism of C)(*)((G1*t1).b)(*)(G1/.(F1/.f))
      by A17,A9,CAT_1:def 13
    .= ((t2*F2).b)(*)(G1/.(t1.b))(*)(G1/.(F1/.f)) by A4,Th19
    .= (t2.(F2.b) qua Morphism of C)(*)(G1/.(t1.b))(*)(G1/.(F1/.f)) by A3,Th18
    .= (t2.(F2.b)*G1/.(t1.b) qua Morphism of C)(*)(G1/.(F1/.f))
                    by A6,A14,CAT_1:def 13
    .= t2.(F2.b)*G1/.(t1.b)*G1/.(F1/.f) by A25,A15,CAT_1:def 13
    .= t2.(F2.b)*(G1/.(t1.b)*G1/.(F1/.f)) by A6,A14,A25,CAT_1:25
    .= t2.(F2.b)*(G1/.(t1.b*F1/.f)) by A13,A24,NATTRA_1:13
    .= t2.(F2.b)*(G1/.(F2/.f*t1.a)) by A1,A11,NATTRA_1:def 8
    .= t2.(F2.b)*(G1/.(F2/.f)*G1/.(t1.a)) by A22,A20,NATTRA_1:13
    .= t2.(F2.b)*G1/.(F2/.f)*G1/.(t1.a) by A6,A23,A21,CAT_1:25
    .= G2/.(F2/.f)*t2.(F2.a)*G1/.(t1.a) by A2,A22,NATTRA_1:def 8
    .= G2/.(F2/.f)*(t2.(F2.a)*G1/.(t1.a)) by A21,A28,A26,CAT_1:25
    .= (G2/.(F2/.f))(*)(t2.(F2.a)*G1/.(t1.a) qua Morphism of C) by A28,A27,
CAT_1:def 13
    .= (G2/.(F2/.f))(*)((t2.(F2.a) qua Morphism of C)(*)(G1/.(t1.a)))
             by A21,A26,CAT_1:def 13
    .= (G2/.(F2/.f))(*)(((t2*F2).a)(*)(G1/.(t1.a))) by A3,Th18
    .= (G2/.(F2/.f))(*)(((t2*F2).a qua Morphism of C)(*)((G1*t1).a)) by A4,Th19
    .= (G2/.(F2/.f))(*)((t2*F2).a*(G1*t1).a) by A19,A18,CAT_1:def 13
    .= (G2/.(F2/.f))(*)(t.a) by A8,A16,NATTRA_1:def 6
    .= ((G2*F2)/.f qua Morphism of C)(*)(t.a) by A11,NATTRA_1:11
    .= (G2*F2)/.f*t.a by A7,A12,CAT_1:def 13;
end;
