theorem Th18:
ex
f1,
f2 being
morphism of
(OrdC 3) st
( not
f1 is
identity & not
f2 is
identity &
cod f1 = dom f2 &
Ob (OrdC 3) = {(dom f1),(cod f1),(cod f2)} &
Mor (OrdC 3) = {(dom f1),(cod f1),(cod f2),f1,f2,(f2 (*) f1)} &
dom f1,
cod f1,
cod f2,
f1,
f2,
f2 (*) f1 are_mutually_distinct )
Lm1:
for C being category st C is terminal holds
( not C is empty & C is trivial )
definition
let C be
category;
let a,
b,
c be
Object of
C;
let p1 be
Morphism of
c,
a;
assume
Hom (
c,
a)
<> {}
;
let p2 be
Morphism of
c,
b;
assume
Hom (
c,
b)
<> {}
;
pred c,
p1,
p2 is_product_of a,
b means :
Def10:
for
c1 being
Object of
C for
q1 being
Morphism of
c1,
a for
q2 being
Morphism of
c1,
b st
Hom (
c1,
a)
<> {} &
Hom (
c1,
b)
<> {} holds
(
Hom (
c1,
c)
<> {} & ex
h being
Morphism of
c1,
c st
(
p1 * h = q1 &
p2 * h = q2 & ( for
h1 being
Morphism of
c1,
c st
p1 * h1 = q1 &
p2 * h1 = q2 holds
h = h1 ) ) );
end;
::
deftheorem Def10 defines
is_product_of CAT_8:def 10 :
for C being category
for a, b, c being Object of C
for p1 being Morphism of c,a st Hom (c,a) <> {} holds
for p2 being Morphism of c,b st Hom (c,b) <> {} holds
( c,p1,p2 is_product_of a,b iff for c1 being Object of C
for q1 being Morphism of c1,a
for q2 being Morphism of c1,b st Hom (c1,a) <> {} & Hom (c1,b) <> {} holds
( Hom (c1,c) <> {} & ex h being Morphism of c1,c st
( p1 * h = q1 & p2 * h = q2 & ( for h1 being Morphism of c1,c st p1 * h1 = q1 & p2 * h1 = q2 holds
h = h1 ) ) ) );
theorem
for
C being non
empty category for
c1,
c2,
a,
b being
Object of
C for
p1 being
Morphism of
a,
c1 for
p2 being
Morphism of
a,
c2 for
q1 being
Morphism of
b,
c1 for
q2 being
Morphism of
b,
c2 st
Hom (
a,
c1)
<> {} &
Hom (
a,
c2)
<> {} &
Hom (
b,
c1)
<> {} &
Hom (
b,
c2)
<> {} &
a,
p1,
p2 is_product_of c1,
c2 &
b,
q1,
q2 is_product_of c1,
c2 holds
a,
b are_isomorphic
theorem
for
C being
category for
c1,
c2,
d being
Object of
C for
p1 being
Morphism of
d,
c1 for
p2 being
Morphism of
d,
c2 st
Hom (
d,
c1)
<> {} &
Hom (
d,
c2)
<> {} &
d,
p1,
p2 is_product_of c1,
c2 holds
d,
p2,
p1 is_product_of c2,
c1
definition
let C be
with_binary_products category;
let c1,
c2 be
Object of
C;
mode categorical_product of
c1,
c2 -> triple object means :
Def12:
ex
d being
Object of
C ex
p1 being
Morphism of
d,
c1 ex
p2 being
Morphism of
d,
c2 st
(
it = [d,p1,p2] &
Hom (
d,
c1)
<> {} &
Hom (
d,
c2)
<> {} &
d,
p1,
p2 is_product_of c1,
c2 );
correctness
existence
ex b1 being triple object ex d being Object of C ex p1 being Morphism of d,c1 ex p2 being Morphism of d,c2 st
( b1 = [d,p1,p2] & Hom (d,c1) <> {} & Hom (d,c2) <> {} & d,p1,p2 is_product_of c1,c2 );
end;
::
deftheorem Def12 defines
categorical_product CAT_8:def 12 :
for C being with_binary_products category
for c1, c2 being Object of C
for b4 being triple object holds
( b4 is categorical_product of c1,c2 iff ex d being Object of C ex p1 being Morphism of d,c1 ex p2 being Morphism of d,c2 st
( b4 = [d,p1,p2] & Hom (d,c1) <> {} & Hom (d,c2) <> {} & d,p1,p2 is_product_of c1,c2 ) );
definition
let C be
with_binary_products category;
let a,
b,
c,
d be
Object of
C;
let f be
Morphism of
a,
b;
assume A1:
Hom (
a,
b)
<> {}
;
let g be
Morphism of
c,
d;
assume A2:
Hom (
c,
d)
<> {}
;
correctness
existence
ex b1 being Morphism of a [x] c,b [x] d st
( f * (pr1 (a,c)) = (pr1 (b,d)) * b1 & g * (pr2 (a,c)) = (pr2 (b,d)) * b1 );
uniqueness
for b1, b2 being Morphism of a [x] c,b [x] d st f * (pr1 (a,c)) = (pr1 (b,d)) * b1 & g * (pr2 (a,c)) = (pr2 (b,d)) * b1 & f * (pr1 (a,c)) = (pr1 (b,d)) * b2 & g * (pr2 (a,c)) = (pr2 (b,d)) * b2 holds
b1 = b2;
end;
::
deftheorem Def16 defines
[x] CAT_8:def 16 :
for C being with_binary_products category
for a, b, c, d being Object of C
for f being Morphism of a,b st Hom (a,b) <> {} holds
for g being Morphism of c,d st Hom (c,d) <> {} holds
for b8 being Morphism of a [x] c,b [x] d holds
( b8 = f [x] g iff ( f * (pr1 (a,c)) = (pr1 (b,d)) * b8 & g * (pr2 (a,c)) = (pr2 (b,d)) * b8 ) );
::
deftheorem Def17 defines
is_product_of CAT_8:def 17 :
for C1, C2, D being category
for P1 being Functor of D,C1 st P1 is covariant holds
for P2 being Functor of D,C2 st P2 is covariant holds
( D,P1,P2 is_product_of C1,C2 iff for D1 being category
for G1 being Functor of D1,C1
for G2 being Functor of D1,C2 st G1 is covariant & G2 is covariant holds
ex H being Functor of D1,D st
( H is covariant & P1 (*) H = G1 & P2 (*) H = G2 & ( for H1 being Functor of D1,D st H1 is covariant & P1 (*) H1 = G1 & P2 (*) H1 = G2 holds
H = H1 ) ) );
theorem
for
C1,
C2,
A,
B being
category for
P1 being
Functor of
A,
C1 for
P2 being
Functor of
A,
C2 for
Q1 being
Functor of
B,
C1 for
Q2 being
Functor of
B,
C2 st
P1 is
covariant &
P2 is
covariant &
Q1 is
covariant &
Q2 is
covariant &
A,
P1,
P2 is_product_of C1,
C2 &
B,
Q1,
Q2 is_product_of C1,
C2 holds
A ~= B
theorem
for
C1,
C2,
D being
category for
P1 being
Functor of
D,
C1 for
P2 being
Functor of
D,
C2 st
P1 is
covariant &
P2 is
covariant &
D,
P1,
P2 is_product_of C1,
C2 holds
D,
P2,
P1 is_product_of C2,
C1
definition
let C1,
C2,
D1,
D2 be
category;
let F1 be
Functor of
C1,
D1;
let F2 be
Functor of
C2,
D2;
assume A1:
(
F1 is
covariant &
F2 is
covariant )
;
correctness
existence
ex b1 being Functor of (C1 [x] C2),(D1 [x] D2) st
( b1 is covariant & F1 (*) (pr1 (C1,C2)) = (pr1 (D1,D2)) (*) b1 & F2 (*) (pr2 (C1,C2)) = (pr2 (D1,D2)) (*) b1 );
uniqueness
for b1, b2 being Functor of (C1 [x] C2),(D1 [x] D2) st b1 is covariant & F1 (*) (pr1 (C1,C2)) = (pr1 (D1,D2)) (*) b1 & F2 (*) (pr2 (C1,C2)) = (pr2 (D1,D2)) (*) b1 & b2 is covariant & F1 (*) (pr1 (C1,C2)) = (pr1 (D1,D2)) (*) b2 & F2 (*) (pr2 (C1,C2)) = (pr2 (D1,D2)) (*) b2 holds
b1 = b2;
end;
::
deftheorem Def22 defines
[x] CAT_8:def 22 :
for C1, C2, D1, D2 being category
for F1 being Functor of C1,D1
for F2 being Functor of C2,D2 st F1 is covariant & F2 is covariant holds
for b7 being Functor of (C1 [x] C2),(D1 [x] D2) holds
( b7 = F1 [x] F2 iff ( b7 is covariant & F1 (*) (pr1 (C1,C2)) = (pr1 (D1,D2)) (*) b7 & F2 (*) (pr2 (C1,C2)) = (pr2 (D1,D2)) (*) b7 ) );
Lm2:
for C1, C2 being non empty category
for f1, g1 being morphism of C1
for f2, g2 being morphism of C2 st f1 |> g1 & f2 |> g2 holds
[f1,f2] |> [g1,g2]
theorem
for
C1,
C2 being non
empty category for
F1,
F2 being
covariant Functor of
C1,
C2 for
T being
Function of
(Ob C1),
(Mor C2) holds
( ex
T1 being
Functor of
C1,
C2 st
(
T = T1 | (Ob C1) &
T1 is_natural_transformation_of F1,
F2 ) iff ( ( for
a being
Object of
C1 holds
T . a in Hom (
(F1 . a),
(F2 . a)) ) & ( for
a1,
a2 being
Object of
C1 for
f being
Morphism of
a1,
a2 st
Hom (
a1,
a2)
<> {} holds
(T . a2) (*) (F1 . f) = (F2 . f) (*) (T . a1) ) ) )
Lm3:
for C, D being category
for F, F1, F2 being Functor of C,D
for T1 being natural_transformation of F1,F
for T2 being natural_transformation of F,F2 st F1 is_naturally_transformable_to F & F is_naturally_transformable_to F2 & F is covariant & F1 is covariant & F2 is covariant holds
ex T being natural_transformation of F1,F2 st
( T is_natural_transformation_of F1,F2 & ( for f, f1, f2 being morphism of C st f1 is identity & f2 is identity & f |> f1 & f2 |> f holds
T . f = ((T2 . f2) (*) (F . f)) (*) (T1 . f1) ) )
definition
let C,
D be
category;
let F,
F1,
F2 be
Functor of
C,
D;
assume that A1:
(
F1 is_naturally_transformable_to F &
F is_naturally_transformable_to F2 )
and A2:
(
F is
covariant &
F1 is
covariant &
F2 is
covariant )
;
let T1 be
natural_transformation of
F1,
F;
let T2 be
natural_transformation of
F,
F2;
existence
ex b1 being natural_transformation of F1,F2 st
for f, f1, f2 being morphism of C st f1 is identity & f2 is identity & f |> f1 & f2 |> f holds
b1 . f = ((T2 . f2) (*) (F . f)) (*) (T1 . f1)
uniqueness
for b1, b2 being natural_transformation of F1,F2 st ( for f, f1, f2 being morphism of C st f1 is identity & f2 is identity & f |> f1 & f2 |> f holds
b1 . f = ((T2 . f2) (*) (F . f)) (*) (T1 . f1) ) & ( for f, f1, f2 being morphism of C st f1 is identity & f2 is identity & f |> f1 & f2 |> f holds
b2 . f = ((T2 . f2) (*) (F . f)) (*) (T1 . f1) ) holds
b1 = b2
end;
Lm4:
for C1, C2 being category
for X being set st not C1 is empty & C2 is empty & X = { [[F1,F2],T] where F1, F2 is Functor of C1,C2, T is natural_transformation of F2,F1 : ( F1 is covariant & F2 is covariant & F1 is_naturally_transformable_to F2 ) } holds
( X = {} & { [[x2,x1],x3] where x1, x2, x3 is Element of X : ex F1, F2, F3 being Functor of C1,C2 ex T1 being natural_transformation of F1,F2 ex T2 being natural_transformation of F2,F3 st
( x1 = [[F1,F2],T1] & x2 = [[F2,F3],T2] & x3 = [[F1,F3],(T2 `*` T1)] ) } = {} )
Lm5:
for C1, C2 being category
for X1, X2 being set st C1 is empty & X1 = { [[F1,F2],T] where F1, F2 is Functor of C1,C2, T is natural_transformation of F2,F1 : ( F1 is covariant & F2 is covariant & F1 is_naturally_transformable_to F2 ) } & X2 = [[{},{}],{}] holds
( X1 = {X2} & { [[x2,x1],x3] where x1, x2, x3 is Element of X1 : ex F1, F2, F3 being Functor of C1,C2 ex T1 being natural_transformation of F1,F2 ex T2 being natural_transformation of F2,F3 st
( x1 = [[F1,F2],T1] & x2 = [[F2,F3],T2] & x3 = [[F1,F3],(T2 `*` T1)] ) } = {[[X2,X2],X2]} )
definition
let C1,
C2 be
category;
func Functors (
C1,
C2)
-> strict category means :
Def28:
( the
carrier of
it = { [[F1,F2],T] where F1, F2 is Functor of C1,C2, T is natural_transformation of F2,F1 : ( F1 is covariant & F2 is covariant & F1 is_naturally_transformable_to F2 ) } & the
composition of
it = { [[x2,x1],x3] where x1, x2, x3 is Element of the carrier of it : ex F1, F2, F3 being Functor of C1,C2 ex T1 being natural_transformation of F1,F2 ex T2 being natural_transformation of F2,F3 st
( x1 = [[F1,F2],T1] & x2 = [[F2,F3],T2] & x3 = [[F1,F3],(T2 `*` T1)] ) } );
existence
ex b1 being strict category st
( the carrier of b1 = { [[F1,F2],T] where F1, F2 is Functor of C1,C2, T is natural_transformation of F2,F1 : ( F1 is covariant & F2 is covariant & F1 is_naturally_transformable_to F2 ) } & the composition of b1 = { [[x2,x1],x3] where x1, x2, x3 is Element of the carrier of b1 : ex F1, F2, F3 being Functor of C1,C2 ex T1 being natural_transformation of F1,F2 ex T2 being natural_transformation of F2,F3 st
( x1 = [[F1,F2],T1] & x2 = [[F2,F3],T2] & x3 = [[F1,F3],(T2 `*` T1)] ) } )
uniqueness
for b1, b2 being strict category st the carrier of b1 = { [[F1,F2],T] where F1, F2 is Functor of C1,C2, T is natural_transformation of F2,F1 : ( F1 is covariant & F2 is covariant & F1 is_naturally_transformable_to F2 ) } & the composition of b1 = { [[x2,x1],x3] where x1, x2, x3 is Element of the carrier of b1 : ex F1, F2, F3 being Functor of C1,C2 ex T1 being natural_transformation of F1,F2 ex T2 being natural_transformation of F2,F3 st
( x1 = [[F1,F2],T1] & x2 = [[F2,F3],T2] & x3 = [[F1,F3],(T2 `*` T1)] ) } & the carrier of b2 = { [[F1,F2],T] where F1, F2 is Functor of C1,C2, T is natural_transformation of F2,F1 : ( F1 is covariant & F2 is covariant & F1 is_naturally_transformable_to F2 ) } & the composition of b2 = { [[x2,x1],x3] where x1, x2, x3 is Element of the carrier of b2 : ex F1, F2, F3 being Functor of C1,C2 ex T1 being natural_transformation of F1,F2 ex T2 being natural_transformation of F2,F3 st
( x1 = [[F1,F2],T1] & x2 = [[F2,F3],T2] & x3 = [[F1,F3],(T2 `*` T1)] ) } holds
b1 = b2
;
end;
::
deftheorem Def28 defines
Functors CAT_8:def 28 :
for C1, C2 being category
for b3 being strict category holds
( b3 = Functors (C1,C2) iff ( the carrier of b3 = { [[F1,F2],T] where F1, F2 is Functor of C1,C2, T is natural_transformation of F2,F1 : ( F1 is covariant & F2 is covariant & F1 is_naturally_transformable_to F2 ) } & the composition of b3 = { [[x2,x1],x3] where x1, x2, x3 is Element of the carrier of b3 : ex F1, F2, F3 being Functor of C1,C2 ex T1 being natural_transformation of F1,F2 ex T2 being natural_transformation of F2,F3 st
( x1 = [[F1,F2],T1] & x2 = [[F2,F3],T2] & x3 = [[F1,F3],(T2 `*` T1)] ) } ) );
theorem Th63:
for
C1,
C2 being non
empty category for
f1,
f2 being
morphism of
(Functors (C1,C2)) holds
(
f1 |> f2 iff ex
F,
F1,
F2 being
covariant Functor of
C1,
C2 ex
T1 being
natural_transformation of
F1,
F ex
T2 being
natural_transformation of
F,
F2 st
(
f1 = [[F,F2],T2] &
f2 = [[F1,F],T1] &
f1 (*) f2 = [[F1,F2],(T2 `*` T1)] & ( for
g1,
g2 being
morphism of
C1 st
g2 |> g1 holds
(
T2 . g2 |> T1 . g1 &
(T2 `*` T1) . (g2 (*) g1) = (T2 . g2) (*) (T1 . g1) ) ) ) )
theorem Th65:
for
C1,
C2 being non
empty category for
f being
morphism of
(Functors (C1,C2)) ex
F1,
F2 being
covariant Functor of
C1,
C2 ex
T being
natural_transformation of
F1,
F2 st
(
f = [[F1,F2],T] &
dom f = [[F1,F1],F1] &
cod f = [[F2,F2],F2] )
::
deftheorem Def29 defines
is_exponent_of CAT_8:def 29 :
for C being non empty with_binary_products category
for a, b, c being Object of C
for e being Morphism of c [x] a,b st Hom ((c [x] a),b) <> {} holds
( c,e is_exponent_of a,b iff for d being Object of C
for f being Morphism of d [x] a,b st Hom ((d [x] a),b) <> {} holds
( Hom (d,c) <> {} & ex h being Morphism of d,c st
( f = e * (h [x] (id- a)) & ( for h1 being Morphism of d,c st f = e * (h1 [x] (id- a)) holds
h = h1 ) ) ) );
theorem Th66:
for
C being
with_binary_products category for
a1,
a2,
b1,
b2,
c1,
c2 being
Object of
C for
f1 being
Morphism of
a1,
b1 for
f2 being
Morphism of
a2,
b2 for
g1 being
Morphism of
b1,
c1 for
g2 being
Morphism of
b2,
c2 st
Hom (
a1,
b1)
<> {} &
Hom (
b1,
c1)
<> {} &
Hom (
a2,
b2)
<> {} &
Hom (
b2,
c2)
<> {} holds
(g1 [x] g2) * (f1 [x] f2) = (g1 * f1) [x] (g2 * f2)
theorem
for
C being non
empty with_binary_products category for
a,
b,
c1,
c2 being
Object of
C for
e1 being
Morphism of
c1 [x] a,
b for
e2 being
Morphism of
c2 [x] a,
b st
Hom (
(c1 [x] a),
b)
<> {} &
Hom (
(c2 [x] a),
b)
<> {} &
c1,
e1 is_exponent_of a,
b &
c2,
e2 is_exponent_of a,
b holds
c1,
c2 are_isomorphic
Lm6:
for C, C1, C2 being non empty category st C = Functors (C1,C2) holds
ex E being Functor of (C [x] C1),C2 st
( E is covariant & ( for D being category
for F being Functor of (D [x] C1),C2 st F is covariant holds
ex H being Functor of D,C st
( H is covariant & F = E (*) (H [x] (id C1)) & ( for H1 being Functor of D,C st H1 is covariant & F = E (*) (H1 [x] (id C1)) holds
H = H1 ) ) ) )
Lm7:
for C1 being non empty category
for C2 being empty category
for E being Functor of ((OrdC 0) [x] C1),C2 st E = OrdC0-> C2 holds
OrdC 0,E is_exponent_of C1,C2
Lm8:
for C1 being empty category
for C2 being category
for E being Functor of ((OrdC 1) [x] C1),C2 st E = OrdC0-> C2 holds
OrdC 1,E is_exponent_of C1,C2