Lm1:
for A, B being Category
for F being Functor of A,B
for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds ((id F) . b) * (F /. f) = (F /. f) * ((id F) . a)
Lm2:
for A, B being Category
for F, F1, F2 being Functor of A,B st F is_transformable_to F1 & F1 is_transformable_to F2 holds
for t1 being transformation of F,F1 st ( for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds (t1 . b) * (F /. f) = (F1 /. f) * (t1 . a) ) holds
for t2 being transformation of F1,F2 st ( for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds (t2 . b) * (F1 /. f) = (F2 /. f) * (t2 . a) ) holds
for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds ((t2 `*` t1) . b) * (F /. f) = (F2 /. f) * ((t2 `*` t1) . a)
Lm3:
for A, B being Category
for F1, F2 being Functor of A,B
for t being transformation of F1,F2 st F1 is_transformable_to F2 & t is invertible holds
F2 is_transformable_to F1
Lm4:
now for A, B being Category
for F1, F2 being Functor of A,B
for t1 being natural_transformation of F1,F2 st F1 is_naturally_transformable_to F2 & t1 is invertible holds
for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds ((t1 ") . b) * (F2 /. f) = (F1 /. f) * ((t1 ") . a)
let A,
B be
Category;
for F1, F2 being Functor of A,B
for t1 being natural_transformation of F1,F2 st F1 is_naturally_transformable_to F2 & t1 is invertible holds
for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds ((t1 ") . b) * (F2 /. f) = (F1 /. f) * ((t1 ") . a)let F1,
F2 be
Functor of
A,
B;
for t1 being natural_transformation of F1,F2 st F1 is_naturally_transformable_to F2 & t1 is invertible holds
for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds ((t1 ") . b) * (F2 /. f) = (F1 /. f) * ((t1 ") . a)let t1 be
natural_transformation of
F1,
F2;
( F1 is_naturally_transformable_to F2 & t1 is invertible implies for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds ((t1 ") . b) * (F2 /. f) = (F1 /. f) * ((t1 ") . a) )assume that A1:
F1 is_naturally_transformable_to F2
and A2:
t1 is
invertible
;
for a, b being Object of A st Hom (a,b) <> {} holds
for f being Morphism of a,b holds ((t1 ") . b) * (F2 /. f) = (F1 /. f) * ((t1 ") . a)let a,
b be
Object of
A;
( Hom (a,b) <> {} implies for f being Morphism of a,b holds ((t1 ") . b) * (F2 /. f) = (F1 /. f) * ((t1 ") . a) )assume A3:
Hom (
a,
b)
<> {}
;
for f being Morphism of a,b holds ((t1 ") . b) * (F2 /. f) = (F1 /. f) * ((t1 ") . a)A4:
Hom (
(F1 . a),
(F1 . b))
<> {}
by A3, CAT_1:84;
let f be
Morphism of
a,
b;
((t1 ") . b) * (F2 /. f) = (F1 /. f) * ((t1 ") . a)A5:
Hom (
(F2 . a),
(F2 . b))
<> {}
by A3, CAT_1:84;
A6:
F1 is_transformable_to F2
by A1;
A7:
Hom (
(F1 . b),
(F2 . b))
<> {}
by Def1, A1;
A8:
t1 . b is
invertible
by A2;
then A9:
Hom (
(F2 . b),
(F1 . b))
<> {}
;
A10:
Hom (
(F1 . a),
(F2 . a))
<> {}
by A1, Def1;
(F2 /. f) * (t1 . a) = (t1 . b) * (F1 /. f)
by A1, A3, Def7;
then A11:
(((t1 . b) ") * (F2 /. f)) * (t1 . a) =
((t1 . b) ") * ((t1 . b) * (F1 /. f))
by A10, A9, A5, CAT_1:25
.=
(((t1 . b) ") * (t1 . b)) * (F1 /. f)
by A4, A7, A9, CAT_1:25
.=
(id (F1 . b)) * (F1 /. f)
by A8, CAT_1:def 17
.=
F1 /. f
by A4, CAT_1:28
;
A12:
t1 . a is
invertible
by A2;
then A13:
Hom (
(F2 . a),
(F1 . a))
<> {}
;
then A14:
Hom (
(F2 . a),
(F1 . b))
<> {}
by A4, CAT_1:24;
then ((t1 . b) ") * (F2 /. f) =
(((t1 . b) ") * (F2 /. f)) * (id (F2 . a))
by CAT_1:29
.=
(((t1 . b) ") * (F2 /. f)) * ((t1 . a) * ((t1 . a) "))
by A12, CAT_1:def 17
.=
(F1 /. f) * ((t1 . a) ")
by A10, A13, A14, A11, CAT_1:25
;
hence ((t1 ") . b) * (F2 /. f) =
(F1 /. f) * ((t1 . a) ")
by A2, A6, Def11
.=
(F1 /. f) * ((t1 ") . a)
by A2, A6, Def11
;
verum
end;
Lm5:
for A, B being Category
for F1, F2 being Functor of A,B
for t1 being natural_transformation of F1,F2 st F1 is_naturally_transformable_to F2 & t1 is invertible holds
F2 is_naturally_transformable_to F1
definition
let A,
B be
Category;
existence
ex b1 being NatTrans-DOMAIN of A,B st
for x being set holds
( x in b1 iff ex F1, F2 being Functor of A,B ex t being natural_transformation of F1,F2 st
( x = [[F1,F2],t] & F1 is_naturally_transformable_to F2 ) )
uniqueness
for b1, b2 being NatTrans-DOMAIN of A,B st ( for x being set holds
( x in b1 iff ex F1, F2 being Functor of A,B ex t being natural_transformation of F1,F2 st
( x = [[F1,F2],t] & F1 is_naturally_transformable_to F2 ) ) ) & ( for x being set holds
( x in b2 iff ex F1, F2 being Functor of A,B ex t being natural_transformation of F1,F2 st
( x = [[F1,F2],t] & F1 is_naturally_transformable_to F2 ) ) ) holds
b1 = b2
end;
definition
let A,
B be
Category;
func Functors (
A,
B)
-> strict Category means :
Def16:
( the
carrier of
it = Funct (
A,
B) & the
carrier' of
it = NatTrans (
A,
B) & ( for
f being
Morphism of
it holds
(
dom f = (f `1) `1 &
cod f = (f `1) `2 ) ) & ( for
f,
g being
Morphism of
it st
dom g = cod f holds
[g,f] in dom the
Comp of
it ) & ( for
f,
g being
Morphism of
it st
[g,f] in dom the
Comp of
it holds
ex
F,
F1,
F2 being
Functor of
A,
B ex
t being
natural_transformation of
F,
F1 ex
t1 being
natural_transformation of
F1,
F2 st
(
f = [[F,F1],t] &
g = [[F1,F2],t1] & the
Comp of
it . [g,f] = [[F,F2],(t1 `*` t)] ) ) & ( for
a being
Object of
it for
F being
Functor of
A,
B st
F = a holds
id a = [[F,F],(id F)] ) );
existence
ex b1 being strict Category st
( the carrier of b1 = Funct (A,B) & the carrier' of b1 = NatTrans (A,B) & ( for f being Morphism of b1 holds
( dom f = (f `1) `1 & cod f = (f `1) `2 ) ) & ( for f, g being Morphism of b1 st dom g = cod f holds
[g,f] in dom the Comp of b1 ) & ( for f, g being Morphism of b1 st [g,f] in dom the Comp of b1 holds
ex F, F1, F2 being Functor of A,B ex t being natural_transformation of F,F1 ex t1 being natural_transformation of F1,F2 st
( f = [[F,F1],t] & g = [[F1,F2],t1] & the Comp of b1 . [g,f] = [[F,F2],(t1 `*` t)] ) ) & ( for a being Object of b1
for F being Functor of A,B st F = a holds
id a = [[F,F],(id F)] ) )
uniqueness
for b1, b2 being strict Category st the carrier of b1 = Funct (A,B) & the carrier' of b1 = NatTrans (A,B) & ( for f being Morphism of b1 holds
( dom f = (f `1) `1 & cod f = (f `1) `2 ) ) & ( for f, g being Morphism of b1 st dom g = cod f holds
[g,f] in dom the Comp of b1 ) & ( for f, g being Morphism of b1 st [g,f] in dom the Comp of b1 holds
ex F, F1, F2 being Functor of A,B ex t being natural_transformation of F,F1 ex t1 being natural_transformation of F1,F2 st
( f = [[F,F1],t] & g = [[F1,F2],t1] & the Comp of b1 . [g,f] = [[F,F2],(t1 `*` t)] ) ) & ( for a being Object of b1
for F being Functor of A,B st F = a holds
id a = [[F,F],(id F)] ) & the carrier of b2 = Funct (A,B) & the carrier' of b2 = NatTrans (A,B) & ( for f being Morphism of b2 holds
( dom f = (f `1) `1 & cod f = (f `1) `2 ) ) & ( for f, g being Morphism of b2 st dom g = cod f holds
[g,f] in dom the Comp of b2 ) & ( for f, g being Morphism of b2 st [g,f] in dom the Comp of b2 holds
ex F, F1, F2 being Functor of A,B ex t being natural_transformation of F,F1 ex t1 being natural_transformation of F1,F2 st
( f = [[F,F1],t] & g = [[F1,F2],t1] & the Comp of b2 . [g,f] = [[F,F2],(t1 `*` t)] ) ) & ( for a being Object of b2
for F being Functor of A,B st F = a holds
id a = [[F,F],(id F)] ) holds
b1 = b2
end;
::
deftheorem Def16 defines
Functors NATTRA_1:def 17 :
for A, B being Category
for b3 being strict Category holds
( b3 = Functors (A,B) iff ( the carrier of b3 = Funct (A,B) & the carrier' of b3 = NatTrans (A,B) & ( for f being Morphism of b3 holds
( dom f = (f `1) `1 & cod f = (f `1) `2 ) ) & ( for f, g being Morphism of b3 st dom g = cod f holds
[g,f] in dom the Comp of b3 ) & ( for f, g being Morphism of b3 st [g,f] in dom the Comp of b3 holds
ex F, F1, F2 being Functor of A,B ex t being natural_transformation of F,F1 ex t1 being natural_transformation of F1,F2 st
( f = [[F,F1],t] & g = [[F1,F2],t1] & the Comp of b3 . [g,f] = [[F,F2],(t1 `*` t)] ) ) & ( for a being Object of b3
for F being Functor of A,B st F = a holds
id a = [[F,F],(id F)] ) ) );
theorem
for
A,
B being
Category for
a,
b being
Object of
(Functors (A,B)) for
f being
Morphism of
a,
b st
Hom (
a,
b)
<> {} holds
ex
F,
F1 being
Functor of
A,
B ex
t being
natural_transformation of
F,
F1 st
(
a = F &
b = F1 &
f = [[F,F1],t] )
theorem Th31:
for
A,
B being
Category for
F,
F1,
F2,
F3 being
Functor of
A,
B for
t being
natural_transformation of
F,
F1 for
t9 being
natural_transformation of
F2,
F3 for
f,
g being
Morphism of
(Functors (A,B)) st
f = [[F,F1],t] &
g = [[F2,F3],t9] holds
(
[g,f] in dom the
Comp of
(Functors (A,B)) iff
F1 = F2 )
theorem
for
A,
B being
Category for
F,
F1,
F2 being
Functor of
A,
B for
t being
natural_transformation of
F,
F1 for
t1 being
natural_transformation of
F1,
F2 for
f,
g being
Morphism of
(Functors (A,B)) st
f = [[F,F1],t] &
g = [[F1,F2],t1] holds
g (*) f = [[F,F2],(t1 `*` t)]
Lm6:
for C being Category st C is quasi-discrete holds
the carrier' of C = union { (Hom (a,a)) where a is Element of C : verum }
Lm7:
for C being Category
for a being Element of C st C is pseudo-discrete holds
Hom (a,a) = {(id a)}
Lm8:
for C being Category st C is discrete holds
the carrier' of C c= { (id a) where a is Element of C : verum }