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;

theorem Th9:
  <^o1,o2^> <> {} implies (G*M).m = G.(M.m)
proof
  set I = the carrier of A;
  reconsider s = (the MorphMap of M).(o1,o2) as Function;
  reconsider r = (((the MorphMap of G)*the ObjectMap of M)** the MorphMap of M
  ).(o1,o2) as Function;
  reconsider t = ((the MorphMap of G)*the ObjectMap of M).(o1,o2) as Function;
A1: dom (((the MorphMap of G)*the ObjectMap of M)**the MorphMap of M) = (dom
((the MorphMap of G)*the ObjectMap of M)) /\ (dom(the MorphMap of M)) by
PBOOLE:def 19
    .= [:I,I:] /\ (dom(the MorphMap of M)) by PARTFUN1:def 2
    .= [:I,I:] /\ [:I,I:] by PARTFUN1:def 2
    .= [:I,I:];
A2: dom the ObjectMap of M = [:I,I:] by FUNCT_2:def 1;
A3: [o1,o2] in [:I,I:] by ZFMISC_1:def 2;
  assume
A4: <^o1,o2^> <> {};
  then
A5: <^M.o2,M.o1^> <> {} by FUNCTOR0:def 19;
  then
A6: dom Morph-Map(M,o1,o2) = <^o1,o2^> by FUNCT_2:def 1;
A7: <^G.(M.o2),G.(M.o1)^> <> {} by A5,FUNCTOR0:def 18;
  (G*M).o1 = G.(M.o1) & (G*M).o2 = G.(M.o2) by FUNCTOR0:33;
  hence (G*M).m = Morph-Map(G*M,o1,o2).m by A4,A7,FUNCTOR0:def 16
    .= r.m by FUNCTOR0:def 36
    .= (t * s).m by A1,A3,PBOOLE:def 19
    .= t.(Morph-Map(M,o1,o2).m) by A4,A6,FUNCT_1:13
    .= t.(M.m) by A4,A5,FUNCTOR0:def 16
    .= ((the MorphMap of G).((the ObjectMap of M).(o1,o2))).(M.m) by A2,A3,
FUNCT_1:13
    .= Morph-Map(G,M.o2,M.o1).(M.m) by FUNCTOR0:23
    .= G.(M.m) by A5,A7,FUNCTOR0:def 15;
end;
