let A, B, C be non empty transitive with_units AltCatStr ; :: thesis: for F1, F2 being covariant Functor of A,B
for G1, G2 being covariant Functor of B,C st F1 is_transformable_to F2 & G1 is_transformable_to G2 holds
G1 * F1 is_transformable_to G2 * F2

let F1, F2 be covariant Functor of A,B; :: thesis: for G1, G2 being covariant Functor of B,C st F1 is_transformable_to F2 & G1 is_transformable_to G2 holds
G1 * F1 is_transformable_to G2 * F2

let G1, G2 be covariant Functor of B,C; :: thesis: ( F1 is_transformable_to F2 & G1 is_transformable_to G2 implies G1 * F1 is_transformable_to G2 * F2 )
assume A1: for a being Object of A holds <^(F1 . a),(F2 . a)^> <> {} ; :: according to FUNCTOR2:def 1 :: thesis: ( not G1 is_transformable_to G2 or G1 * F1 is_transformable_to G2 * F2 )
assume A2: for a being Object of B holds <^(G1 . a),(G2 . a)^> <> {} ; :: according to FUNCTOR2:def 1 :: thesis: G1 * F1 is_transformable_to G2 * F2
let a be Object of A; :: according to FUNCTOR2:def 1 :: thesis: not <^((G1 * F1) . a),((G2 * F2) . a)^> = {}
<^(F1 . a),(F2 . a)^> <> {} by A1;
then A3: <^(G1 . (F1 . a)),(G1 . (F2 . a))^> <> {} by FUNCTOR0:def 18;
A4: ( (G1 * F1) . a = G1 . (F1 . a) & (G2 * F2) . a = G2 . (F2 . a) ) by FUNCTOR0:33;
<^(G1 . (F2 . a)),(G2 . (F2 . a))^> <> {} by A2;
hence not <^((G1 * F1) . a),((G2 * F2) . a)^> = {} by A4, A3, ALTCAT_1:def 2; :: thesis: verum