reserve A for non empty AltCatStr,
  B, C for non empty reflexive AltCatStr,
  F for feasible Covariant FunctorStr over A, B,
  G for feasible Covariant FunctorStr over B, C,
  M for feasible Contravariant FunctorStr over A, B,
  N for feasible Contravariant FunctorStr over B, C,
  o1, o2 for Object of A,
  m for Morphism of o1, o2;
reserve A, B, C, D for transitive with_units non empty AltCatStr,
  F1, F2, F3 for covariant Functor of A, B,
  G1, G2, G3 for covariant Functor of B, C,
  H1, H2 for covariant Functor of C, D,
  p for transformation of F1, F2,
  p1 for transformation of F2, F3,
  q for transformation of G1, G2,
  q1 for transformation of G2, G3,
  r for transformation of H1, H2;
reserve A, B, C, D for category,
  F1, F2, F3 for covariant Functor of A, B,
  G1, G2, G3 for covariant Functor of B, C;
reserve t for natural_transformation of F1, F2,
  s for natural_transformation of G1, G2,
  s1 for natural_transformation of G2, G3;

theorem Th29:
  G1 is_naturally_transformable_to G2 implies s*F1 is
  natural_transformation of G1*F1, G2*F1
proof
  assume
A1: G1 is_naturally_transformable_to G2;
  thus G1*F1 is_naturally_transformable_to G2*F1 by A1,Lm2;
  let a, b be Object of A such that
A2: <^a,b^> <> {};
A3: <^F1.a,F1.b^> <> {} by A2,FUNCTOR0:def 18;
  reconsider sF1a = s!F1.a as Morphism of G1.(F1.a), (G2*F1).a by FUNCTOR0:33;
  let f be Morphism of a, b;
A4: (G2*F1).a = G2.(F1.a) by FUNCTOR0:33;
A5: (G2*F1).b = G2.(F1.b) by FUNCTOR0:33;
  then reconsider sF1b = s!(F1.b) as Morphism of (G1*F1).b, (G2*F1).b by
FUNCTOR0:33;
A6: (G1*F1).b = G1.(F1.b) & (G2*F1).b = G2.(F1.b) by FUNCTOR0:33;
A7: (G1*F1).a = G1.(F1.a) by FUNCTOR0:33;
  then reconsider G1F1f = G1.(F1.f) as Morphism of (G1*F1).a, (G1*F1).b by
FUNCTOR0:33;
A8: G1 is_transformable_to G2 by A1;
  hence (s*F1)!b*(G1*F1).f = sF1b*((G1*F1).f) by Th12
    .= sF1b*G1F1f by A2,Th6
    .= G2.(F1.f)*(s!F1.a) by A1,A7,A6,A3,FUNCTOR2:def 7
    .= (G2*F1).f*sF1a by A2,A4,A5,Th6
    .= (G2*F1).f*((s*F1)!a) by A8,A7,Th12;
end;
