reserve V for non empty set,
  A,B,A9,B9 for Element of V;
reserve f,f9 for Element of Funcs(V);
reserve m,m1,m2,m3,m9 for Element of Maps V;
reserve a,b for Object of Ens(V);
reserve f,g,f1,f2 for Morphism of Ens(V);
reserve C for Category,
  a,b,a9,b9,c for Object of C,
  f,g,h,f9,g9 for Morphism of C;

theorem Th49:
  Hom(C) c= V implies hom-?(a) is Contravariant_Functor of C,Ens(V )
proof
  assume
A1: Hom(C) c= V;
  then reconsider
  T = hom-?(a) as Function of the carrier' of C, the carrier' of
  Ens V by Lm8;
  now
    thus for c being Object of C ex d being Object of Ens V st T.(id c) = id d
    proof
      let c be Object of C;
      Hom(c,a) in Hom(C);
      then reconsider A = Hom(c,a) as Element of V by A1;
      take d = @A;
      thus thesis by A1,Lm10;
    end;
    thus for f being Morphism of C holds T.(id dom f) = id cod (T.f) & T.(id
    cod f) = id dom (T.f)
    proof
      let f be Morphism of C;
      set b = cod f, c = dom f;
      set g = T.f;
      Hom(b,a) in Hom(C) & Hom(c,a) in Hom(C);
      then reconsider A = Hom(b,a), B = Hom(c,a) as Element of V by A1;
A2:   [[Hom(b,a),Hom(c,a)],hom(f,a)] = @g by Def21
        .= [[dom(@g), cod(@g)],(@g)`2] by Th8
        .= [[dom g, cod(@g)],(@g)`2] by Def9
        .= [[dom g, cod g],(@g)`2] by Def10;
      thus T.(id c) = id @B by A1,Lm10
        .= id cod (T.f) by A2,Lm1;
      thus T.(id b) = id @A by A1,Lm10
        .= id dom (T.f) by A2,Lm1;
    end;
    let f,g be Morphism of C such that
A3: dom g = cod f;
A4: [[Hom(cod g,a),Hom(dom g,a)],hom(g,a)] = @(T.g) by Def21
      .= [[dom(@(T.g)),cod(@(T.g))],(@(T.g))`2] by Th8
      .= [[dom(T.g),cod(@(T.g))],(@(T.g))`2] by Def9
      .= [[dom(T.g),cod(T.g)],(@(T.g))`2] by Def10;
    then
A5: (@(T.g))`2=hom(g,a) by XTUPLE_0:1;
    dom(T.g)=Hom(cod g,a) by A4,Lm1;
    then
A6: dom(@(T.g))=Hom(cod g,a) by Def9;
A7: cod(T.g)=Hom(dom g,a ) by A4,Lm1;
    then
A8: cod(@(T.g))=Hom(dom g,a) by Def10;
A9: [[Hom(cod f,a),Hom(dom f,a)],hom(f,a)] = @(T.f) by Def21
      .= [[dom(@(T.f)),cod(@(T.f))],(@(T.f))`2] by Th8
      .= [[dom(T.f),cod(@(T.f))],(@(T.f))`2] by Def9
      .= [[dom(T.f),cod(T.f)],(@(T.f))`2] by Def10;
    then
A10: (@(T.f))`2=hom(f,a) by XTUPLE_0:1;
    cod(T.f)=Hom(dom f,a ) by A9,Lm1;
    then
A11: cod(@(T.f))=Hom(dom f,a) by Def10;
A12: dom(T.f)=Hom(cod f,a) by A9,Lm1;
    then
A13: dom(@(T.f))=Hom(cod f,a) by Def9;
    dom(g(*)f) = dom f & cod(g(*)f) = cod g by A3,CAT_1:17;
    hence T.(g(*)f) = [[Hom(cod(g),a),Hom(dom(f),a)],hom(g(*)f,a)] by Def21
      .= [[Hom(cod(g),a),Hom(dom(f),a)],hom(f,a)*hom(g,a)] by A3,Th45
      .= (@(T.f))*(@(T.g)) by A3,A10,A13,A11,A5,A6,A8,Def6
      .= (T.f)(*)(T.g) by A3,A12,A7,Th27;
  end;
  hence thesis by OPPCAT_1:def 9;
end;
