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)

hence (r * G1) * F1 = r * (G1 * F1) by A3, Th10, FUNCTOR2:3; :: thesis: verum

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

H1 * G1 is_transformable_to H2 * G1
by A2, Th10;let a be Object of A; :: thesis: ((r * G1) * F1) ! a = m ! a

thus ((r * G1) * F1) ! a = (r * G1) ! (F1 . a) by A2, Th10, Th12

.= r ! (G1 . (F1 . a)) by A2, Th12

.= r ! ((G1 * F1) . a) by FUNCTOR0:33

.= (r * (G1 * F1)) ! a by A2, Th12

.= m ! a by A1, FUNCTOR0:32 ; :: thesis: verum

end;thus ((r * G1) * F1) ! a = (r * G1) ! (F1 . a) by A2, Th10, Th12

.= r ! (G1 . (F1 . a)) by A2, Th12

.= r ! ((G1 * F1) . a) by FUNCTOR0:33

.= (r * (G1 * F1)) ! a by A2, Th12

.= m ! a by A1, FUNCTOR0:32 ; :: thesis: verum

hence (r * G1) * F1 = r * (G1 * F1) by A3, Th10, FUNCTOR2:3; :: thesis: verum