let A, B, C, D be non empty transitive with_units AltCatStr ; :: thesis: for F1 being covariant Functor of A,B
for G1 being covariant Functor of B,C
for H1, H2 being covariant Functor of C,D
for r being transformation of H1,H2 st H1 is_transformable_to H2 holds
(r * G1) * F1 = r * (G1 * F1)

let F1 be covariant Functor of A,B; :: thesis: for G1 being covariant Functor of B,C
for H1, H2 being covariant Functor of C,D
for r being transformation of H1,H2 st H1 is_transformable_to H2 holds
(r * G1) * F1 = r * (G1 * F1)

let G1 be covariant Functor of B,C; :: thesis: for H1, H2 being covariant Functor of C,D
for r being transformation of H1,H2 st H1 is_transformable_to H2 holds
(r * G1) * F1 = r * (G1 * F1)

let H1, H2 be covariant Functor of C,D; :: thesis: for r being transformation of H1,H2 st H1 is_transformable_to H2 holds
(r * G1) * F1 = r * (G1 * F1)

let r be transformation of H1,H2; :: thesis: ( H1 is_transformable_to H2 implies (r * G1) * F1 = r * (G1 * F1) )
A1: (H2 * G1) * F1 = H2 * (G1 * F1) by FUNCTOR0:32;
then reconsider m = r * (G1 * F1) as transformation of (H1 * G1) * F1,(H2 * G1) * F1 by FUNCTOR0:32;
assume A2: H1 is_transformable_to H2 ; :: thesis: (r * G1) * F1 = r * (G1 * F1)
A3: now :: thesis: for a being Object of A holds ((r * G1) * F1) ! a = m ! a
let a be Object of A; :: thesis: ((r * G1) * F1) ! a = m ! a
thus ((r * G1) * F1) ! a = (r * G1) ! (F1 . a) by
.= r ! (G1 . (F1 . a)) by
.= r ! ((G1 * F1) . a) by FUNCTOR0:33
.= (r * (G1 * F1)) ! a by
.= m ! a by ; :: thesis: verum
end;
H1 * G1 is_transformable_to H2 * G1 by ;
hence (r * G1) * F1 = r * (G1 * F1) by ; :: thesis: verum