let V be non empty set ; :: thesis: for C being Category
for a being Object of C st Hom C c= V holds
hom?- a is Functor of C, Ens V

let C be Category; :: thesis: for a being Object of C st Hom C c= V holds
hom?- a is Functor of C, Ens V

let a be Object of C; :: thesis: ( Hom C c= V implies hom?- a is Functor of C, Ens V )
assume A1: Hom C c= V ; :: thesis: hom?- a is Functor of C, Ens V
then reconsider T = hom?- a as Function of the carrier' of C,the carrier' of (Ens V) by Lm7;
now
thus for c being Object of C ex d being Object of (Ens V) st T . (id c) = id d :: thesis: ( ( for f being Morphism of C holds
( T . (id (dom f)) = id (dom (T . f)) & T . (id (cod f)) = id (cod (T . f)) ) ) & ( for f, g being Morphism of C st dom g = cod f holds
T . (g * f) = (T . g) * (T . f) ) )
proof
let c be Object of C; :: thesis: ex d being Object of (Ens V) st T . (id c) = id d
Hom a,c in Hom C ;
then reconsider A = Hom a,c as Element of V by A1;
take d = @ A; :: thesis: T . (id c) = id d
thus T . (id c) = id d by A1, Lm8; :: thesis: verum
end;
thus for f being Morphism of C holds
( T . (id (dom f)) = id (dom (T . f)) & T . (id (cod f)) = id (cod (T . f)) ) :: thesis: for f, g being Morphism of C st dom g = cod f holds
T . (g * f) = (T . g) * (T . f)
proof
let f be Morphism of C; :: thesis: ( T . (id (dom f)) = id (dom (T . f)) & T . (id (cod f)) = id (cod (T . f)) )
set b = dom f;
set c = cod f;
( Hom a,(dom f) in Hom C & Hom a,(cod f) in Hom C ) ;
then reconsider A = Hom a,(dom f), B = Hom a,(cod f) as Element of V by A1;
set g = T . f;
A2: [[(Hom a,(dom f)),(Hom a,(cod f))],(hom a,f)] = @ (T . f) by Def22
.= [[(dom (@ (T . f))),(cod (@ (T . f)))],((@ (T . f)) `2 )] by Th8
.= [[(dom (T . f)),(cod (@ (T . f)))],((@ (T . f)) `2 )] by Def10
.= [[(dom (T . f)),(cod (T . f))],((@ (T . f)) `2 )] by Def11 ;
thus T . (id (dom f)) = id (@ A) by A1, Lm8
.= id (dom (T . f)) by A2, Lm1 ; :: thesis: T . (id (cod f)) = id (cod (T . f))
thus T . (id (cod f)) = id (@ B) by A1, Lm8
.= id (cod (T . f)) by A2, Lm1 ; :: thesis: verum
end;
let f, g be Morphism of C; :: thesis: ( dom g = cod f implies T . (g * f) = (T . g) * (T . f) )
assume A3: dom g = cod f ; :: thesis: T . (g * f) = (T . g) * (T . f)
[[(Hom a,(dom f)),(Hom a,(cod f))],(hom a,f)] = @ (T . f) by Def22
.= [[(dom (@ (T . f))),(cod (@ (T . f)))],((@ (T . f)) `2 )] by Th8
.= [[(dom (T . f)),(cod (@ (T . f)))],((@ (T . f)) `2 )] by Def10
.= [[(dom (T . f)),(cod (T . f))],((@ (T . f)) `2 )] by Def11 ;
then A4: ( (@ (T . f)) `2 = hom a,f & dom (T . f) = Hom a,(dom f) & cod (T . f) = Hom a,(cod f) ) by Lm1, ZFMISC_1:33;
then A5: ( dom (@ (T . f)) = Hom a,(dom f) & cod (@ (T . f)) = Hom a,(cod f) ) by Def10, Def11;
[[(Hom a,(dom g)),(Hom a,(cod g))],(hom a,g)] = @ (T . g) by Def22
.= [[(dom (@ (T . g))),(cod (@ (T . g)))],((@ (T . g)) `2 )] by Th8
.= [[(dom (T . g)),(cod (@ (T . g)))],((@ (T . g)) `2 )] by Def10
.= [[(dom (T . g)),(cod (T . g))],((@ (T . g)) `2 )] by Def11 ;
then A6: ( (@ (T . g)) `2 = hom a,g & dom (T . g) = Hom a,(dom g) & cod (T . g) = Hom a,(cod g) ) by Lm1, ZFMISC_1:33;
then A7: ( dom (@ (T . g)) = Hom a,(dom g) & cod (@ (T . g)) = Hom a,(cod g) ) by Def10, Def11;
( dom (g * f) = dom f & cod (g * f) = cod g ) by A3, CAT_1:42;
hence T . (g * f) = [[(Hom a,(dom f)),(Hom a,(cod g))],(hom a,(g * f))] by Def22
.= [[(Hom a,(dom f)),(Hom a,(cod g))],((hom a,g) * (hom a,f))] by A3, Th45
.= (@ (T . g)) * (@ (T . f)) by A3, A4, A5, A6, A7, Def7
.= (T . g) * (T . f) by A3, A4, A6, Th28 ;
:: thesis: verum
end;
hence hom?- a is Functor of C, Ens V by CAT_1:96; :: thesis: verum