
theorem Th35:
  for A,B being transitive with_units non empty AltCatStr,
  F being feasible FunctorStr over A,B st F is bijective
  holds F" is bijective feasible
proof
  let A,B be transitive with_units non empty AltCatStr;
  let F be feasible FunctorStr over A,B such that
A1: F is bijective;
  set G = F";
A2: the ObjectMap of G = (the ObjectMap of F)" by A1,Def38;
A3: F is injective by A1;
  then F is one-to-one;
  then
A4: the ObjectMap of F is one-to-one;
  hence the ObjectMap of G is one-to-one by A2;
  F is faithful by A3;
  then
A5: the MorphMap of F is "1-1";
A6: F is surjective by A1;
  then F is onto;
  then
A7: the ObjectMap of F is onto;
  consider h being ManySortedFunction of (the Arrows of A),
  (the Arrows of B)*the ObjectMap of F such that
A8: h = the MorphMap of F and
A9: the MorphMap of G = h""*(the ObjectMap of F)" by A1,Def38;
  F is full by A6;
  then
A10: 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";
  set AA = [:the carrier of A,the carrier of A:],
  BB = [:the carrier of B,the carrier of B:];
A11: rng the ObjectMap of F = BB by A7;
  reconsider f = the MorphMap of G as ManySortedFunction of
  (the Arrows of B),(the Arrows of A)*the ObjectMap of G by Def4;
  f is "1-1"
  proof
    let i be set, g be Function such that
A12: i in dom f and
A13: f.i = g;
    i in BB by A12;
    then
A14: i in dom((the ObjectMap of F)") by A4,A11,FUNCT_1:33;
    then (the ObjectMap of F)".i in rng((the ObjectMap of F)") by FUNCT_1:def 3
;
    then
A15: (the ObjectMap of F)".i in dom the ObjectMap of F by A4,FUNCT_1:33;
    then (the ObjectMap of F)".i in AA;
    then (the ObjectMap of F)".i in dom h by PARTFUN1:def 2;
    then
A16: h.((the ObjectMap of F)".i) is one-to-one by A5,A8;
    g = h"".((the ObjectMap of F)".i) by A9,A13,A14,FUNCT_1:13
      .= (h.((the ObjectMap of F)".i))" by A5,A8,A10,A15,MSUALG_3:def 4;
    hence thesis by A16;
  end;
  hence the MorphMap of G is "1-1";
  thus G is full
  proof
    take f;
    thus f = the MorphMap of G;
    let i be set;
    assume
A17: i in BB;
    then
A18: i in dom the ObjectMap of G by FUNCT_2:def 1;
A19: i in dom((the ObjectMap of F)") by A4,A11,A17,FUNCT_1:33;
    then (the ObjectMap of F)".i in rng((the ObjectMap of F)") by FUNCT_1:def 3
;
    then
A20: (the ObjectMap of F)".i in dom the ObjectMap of F by A4,FUNCT_1:33;
    then (the ObjectMap of F)".i in AA;
    then ((the ObjectMap of G).i) in dom h by A2,PARTFUN1:def 2;
    then
A21: h.((the ObjectMap of G).i) is one-to-one by A5,A8;
    set j = (the ObjectMap of G).i;
A22: h.j is Function of (the Arrows of A).j,
    ((the Arrows of B)*the ObjectMap of F).j by A2,A20,PBOOLE:def 15;
    consider o1,o2 being Element of A such that
A23: j = [o1,o2] by A2,A20,DOMAIN_1:1;
    reconsider o1,o2 as Object of A;
A24: now
      assume (the Arrows of A).j <> {};
      then (the Arrows of A).(o1,o2) <> {} by A23;
      then <^o1,o2^> <> {} by ALTCAT_1:def 1;
      then (the Arrows of B).((the ObjectMap of F).(o1,o2)) <> {} by Def11;
      hence ((the Arrows of B)*the ObjectMap of F).j <> {} by A2,A20,A23,
FUNCT_1:13;
    end;
    f.i = h"".((the ObjectMap of F)".i) by A9,A19,FUNCT_1:13
      .= (h.((the ObjectMap of F)".i))" by A5,A8,A10,A20,MSUALG_3:def 4;
    hence rng(f.i) = dom(h.((the ObjectMap of G).i)) by A2,A21,FUNCT_1:33
      .= (the Arrows of A).((the ObjectMap of G).i) by A22,A24,FUNCT_2:def 1
      .= ((the Arrows of A)*the ObjectMap of G).i by A18,FUNCT_1:13;
  end;
  thus rng the ObjectMap of G = dom the ObjectMap of F by A2,A4,FUNCT_1:33
    .= AA by FUNCT_2:def 1;
  let o1,o2 be Object of B;
  assume <^o1,o2^> <> {};
  then
A25: (the Arrows of B).(o1,o2) <> {} by ALTCAT_1:def 1;
A26: [o1,o2] in BB by ZFMISC_1:87;
  then consider p1,p2 being Element of A such that
A27: (the ObjectMap of G).[o1,o2] = [p1,p2] by DOMAIN_1:1,FUNCT_2:5;
  reconsider p1,p2 as Object of A;
  [o1,o2] in dom the ObjectMap of G by A26,FUNCT_2:def 1;
  then
A28: (the ObjectMap of F).(p1,p2)
  = ((the ObjectMap of F)*(the ObjectMap of G)).[o1,o2] by A27,FUNCT_1:13
    .= (id BB).[o1,o2] by A2,A4,A11,FUNCT_1:39
    .= [o1,o2] by A26,FUNCT_1:18;
  assume
A29: (the Arrows of A).((the ObjectMap of G).(o1,o2)) = {};
A30: [p1,p2] in AA by ZFMISC_1:87;
  then
A31: [p1,p2] in dom the ObjectMap of F by FUNCT_2:def 1;
  h.[p1,p2] is Function of (the Arrows of A).[p1,p2],
  ((the Arrows of B)*the ObjectMap of F).[p1,p2] by A30,PBOOLE:def 15;
  then {} = rng(h.[p1,p2]) by A27,A29
    .= ((the Arrows of B)*the ObjectMap of F).[p1,p2] by A8,A10,A30
    .= (the Arrows of B).[o1,o2] by A28,A31,FUNCT_1:13;
  hence contradiction by A25;
end;
