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