
theorem Th43:
  for A,B being transitive with_units non empty AltCatStr,
  F being feasible reflexive FunctorStr over A,B st
  F is bijective comp-reversing Contravariant coreflexive
  holds F" is comp-reversing
proof
  let A,B be transitive with_units non empty AltCatStr,
  F be feasible reflexive FunctorStr over A,B such that
A1: F is bijective comp-reversing Contravariant coreflexive;
  set G = F";
A2: G is Contravariant by A1,Th39;
  reconsider H = G as feasible reflexive FunctorStr over B,A by A1,Th35,Th36;
A3: the ObjectMap of G = (the ObjectMap of F)" by A1,Def38;
  consider ff being ManySortedFunction of (the Arrows of A),
  (the Arrows of B)*the ObjectMap of F such that
A4: ff = the MorphMap of F and
A5: the MorphMap of G = ff""*(the ObjectMap of F)" by A1,Def38;
A6: F is injective by A1;
  then F is one-to-one;
  then
A7: the ObjectMap of F is one-to-one;
  F is faithful by A6;
  then
A8: the MorphMap of F is "1-1";
  F is surjective by A1;
  then F is full;
  then
A9: ex f being ManySortedFunction of (the Arrows of A),
  (the Arrows of B)*the ObjectMap of F st
  f = the MorphMap of F & f is "onto";
  let o1,o2,o3 be Object of B;
  assume
A10: <^o1,o2^> <> {};
  then
A11: <^H.o2,H.o1^> <> {} by A2,Def19;
  assume
A12: <^o2,o3^> <> {};
  then
A13: <^H.o3,H.o2^> <> {} by A2,Def19;
A14: <^o1,o3^> <> {} by A10,A12,ALTCAT_1:def 2;
  then
A15: <^H.o3,H.o1^> <> {} by A2,Def19;
  then
A16: <^F.(G.o1),F.(G.o3)^> <> {} by A1,Def19;
  let f be Morphism of o1,o2, g be Morphism of o2,o3;
  reconsider K = G as Contravariant FunctorStr over B,A by A1,Th39;
  K.f = Morph-Map(K,o1,o2).f by A10,A11,Def16;
  then reconsider f9 = Morph-Map(K,o1,o2).f as Morphism of G.o2,G.o1;
  K.g = Morph-Map(K,o2,o3).g by A12,A13,Def16;
  then reconsider g9 = Morph-Map(K,o2,o3).g as Morphism of G.o3,G.o2;
  take f9,g9;
  thus f9 = Morph-Map(G,o1,o2).f;
  thus g9 = Morph-Map(G,o2,o3).g;
  consider g99 being Morphism of F.(G.o2),F.(G.o3),
  f99 being Morphism of F.(G.o1),F.(G.o2) such that
A17: g99 = Morph-Map(F,G.o3,G.o2).g9 and
A18: f99 = Morph-Map(F,G.o2,G.o1).f9 and
A19: Morph-Map(F,G.o3,G.o1).(f9*g9) = g99*f99 by A1,A11,A13;
A20: g = g99 by A1,A12,A17,Th41;
A21: f = f99 by A1,A10,A18,Th41;
A22: [G.o3,G.o1] in [:the carrier of A,the carrier of A:] by ZFMISC_1:87;
A23: [o1,o3] in [:the carrier of B,the carrier of B:] by ZFMISC_1:87;
  then
A24: [o1,o3] in dom the ObjectMap of G by FUNCT_2:def 1;
  dom the MorphMap of F = [:the carrier of A,the carrier of A:]
  by PARTFUN1:def 2;
  then [G.o3,G.o1] in dom the MorphMap of F by ZFMISC_1:87;
  then
A25: Morph-Map(F,G.o3,G.o1) is one-to-one by A8;
  [G.o3,G.o1] in dom the ObjectMap of F by A22,FUNCT_2:def 1;
  then
A26: ((the Arrows of B)*the ObjectMap of F).[G.o3,G.o1]
  = (the Arrows of B).((the ObjectMap of F).(G.o3,G.o1)) by FUNCT_1:13
    .= (the Arrows of B).(F.(G.o1),F.(G.o3)) by A1,Th23
    .= <^F.(G.o1),F.(G.o3)^> by ALTCAT_1:def 1;
  Morph-Map(F,G.o3,G.o1) is Function of (the Arrows of A).[G.o3,G.o1],
  ((the Arrows of B)*the ObjectMap of F).[G.o3,G.o1] by A4,A22,PBOOLE:def 15;
  then
A27: dom Morph-Map(F,G.o3,G.o1)
  = (the Arrows of A).(G.o3,G.o1) by A16,A26,FUNCT_2:def 1
    .= <^G.o3,G.o1^> by ALTCAT_1:def 1;
A28: ((the Arrows of A)*the ObjectMap of G).[o1,o3]
  = (the Arrows of A).((the ObjectMap of H).(o1,o3)) by A24,FUNCT_1:13
    .= (the Arrows of A).(G.o3,G.o1) by A2,Th23
    .= <^G.o3,G.o1^> by ALTCAT_1:def 1;
  the MorphMap of G is ManySortedFunction of
  the Arrows of B,(the Arrows of A)*the ObjectMap of G by Def4;
  then Morph-Map(G,o1,o3) is Function of (the Arrows of B).[o1,o3],
  ((the Arrows of A)*the ObjectMap of G).[o1,o3] by A23,PBOOLE:def 15;
  then
A29: dom Morph-Map(G,o1,o3)
  = (the Arrows of B).(o1,o3) by A15,A28,FUNCT_2:def 1
    .= <^o1,o3^> by ALTCAT_1:def 1;
A30: Morph-Map(G,o1,o3)
  = ff"".((the ObjectMap of G).(o1,o3)) by A3,A5,A24,FUNCT_1:13
    .= ff"".[H.o3,H.o1] by A2,Th23
    .= Morph-Map(F,G.o3,G.o1)" by A4,A8,A9,A22,MSUALG_3:def 4;
A31: the ObjectMap of F*H = (the ObjectMap of F)*the ObjectMap of H by Def36
    .= (the ObjectMap of F)*(the ObjectMap of F)" by A1,Def38
    .= id rng the ObjectMap of F by A7,FUNCT_1:39
    .= id dom the ObjectMap of G by A3,A7,FUNCT_1:33
    .= id[:the carrier of B,the carrier of B:] by FUNCT_2:def 1;
  [o1,o1] in [:the carrier of B,the carrier of B:] by ZFMISC_1:87;
  then
A32: (the ObjectMap of F*H).(o1,o1) = [o1,o1] by A31,FUNCT_1:18;
A33: F.(G.o1) = (F*H).o1 by Th33
    .= o1 by A32;
  [o2,o2] in [:the carrier of B,the carrier of B:] by ZFMISC_1:87;
  then
A34: (the ObjectMap of F*H).(o2,o2) = [o2,o2] by A31,FUNCT_1:18;
A35: F.(G.o2) = (F*H).o2 by Th33
    .= o2 by A34;
  [o3,o3] in [:the carrier of B,the carrier of B:] by ZFMISC_1:87;
  then
A36: (the ObjectMap of F*H).(o3,o3) = [o3,o3] by A31,FUNCT_1:18;
A37: F.(G.o3) = (F*H).o3 by Th33
    .= o3 by A36;
  Morph-Map(G,o1,o3).(g*f) in rng Morph-Map(G,o1,o3) by A14,A29,FUNCT_1:def 3;
  then
A38: Morph-Map(G,o1,o3).(g*f) in dom Morph-Map(F,G.o3,G.o1) by A25,A30,
FUNCT_1:33;
  Morph-Map(F,G.o3,G.o1).(Morph-Map(G,o1,o3).(g*f))
  = Morph-Map(F,G.o3,G.o1).(f9*g9) by A1,A14,A19,A20,A21,A33,A35,A37,Th41;
  hence thesis by A25,A27,A38;
end;
