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

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

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

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

let p be transformation of F1,F2; :: thesis: ( F1 is_transformable_to F2 implies (H1 * G1) * p = H1 * (G1 * p) )
assume A1: F1 is_transformable_to F2 ; :: thesis: (H1 * G1) * p = H1 * (G1 * p)
A2: (H1 * G1) * F2 = H1 * (G1 * F2) by FUNCTOR0:33;
then reconsider m = H1 * (G1 * p) as transformation of (H1 * G1) * F1,(H1 * G1) * F2 by FUNCTOR0:33;
A3: (H1 * G1) * F1 is_transformable_to (H1 * G1) * F2 by A1, Th10;
now
let a be object of A; :: thesis: ((H1 * G1) * p) ! a = m ! a
A4: ( (G1 * F1) . a = G1 . (F1 . a) & (G1 * F2) . a = G1 . (F2 . a) ) by FUNCTOR0:34;
A5: <^(F1 . a),(F2 . a)^> <> {} by A1, FUNCTOR2:def 1;
thus ((H1 * G1) * p) ! a = (H1 * G1) . (p ! a) by A1, Th11
.= H1 . (G1 . (p ! a)) by A5, Th6
.= H1 . ((G1 * p) ! a) by A1, A4, Th11
.= (H1 * (G1 * p)) ! a by A1, Th10, Th11
.= m ! a by A2, FUNCTOR0:33 ; :: thesis: verum
end;
hence (H1 * G1) * p = H1 * (G1 * p) by A3, FUNCTOR2:5; :: thesis: verum