reserve C for CategoryStr;
reserve f,f1,f2,f3 for morphism of C;
reserve g1,g2 for morphism of C opp;
reserve C,D,E for with_identities CategoryStr;
reserve F for Functor of C,D;
reserve G for Functor of D,E;
reserve f for morphism of C;

theorem Th50:
  for C1,C2 being Category st alter(C1) ~= alter(C2) holds C1 ~= C2
  proof
    let C1,C2 be Category;
    assume alter(C1) ~= alter(C2);
    then consider F be Functor of alter(C1), alter(C2),
     G be Functor of alter(C2), alter(C1) such that
A1: F is covariant & G is covariant & G (*) F = id alter(C1) &
    F (*) G = id alter(C2);
    reconsider F1 = F as Functor of C1,C2 by A1,Th49;
A2: dom F = the carrier of alter(C1) by FUNCT_2:def 1;
    G (*) F = F * G by A1,Def27;
    then F * G = id the carrier of alter(C1) by A1,STRUCT_0:def 4;
    then
A3: F is one-to-one by A2,FUNCT_1:31;
A4: F (*) G = G * F by A1,Def27;
A5: the carrier' of C2 = rng(id the carrier' of C2)
    .= rng(G*F) by A4,A1,STRUCT_0:def 4;
    the carrier' of C2 c= rng F by A5,RELAT_1:26;
    then rng F1 = the carrier' of C2 by XBOOLE_0:def 10;
    hence C1 ~= C2 by A3,ISOCAT_1:def 4,def 3;
  end;
