let X be non empty categorial set ; for Y being non empty set st ( for A, B, C being Element of X
for F being Functor of A,B
for G being Functor of B,C st F in Y & G in Y holds
G * F in Y ) & ( for A being Element of X holds id A in Y ) holds
ex C being strict Categorial Category st
( the carrier of C = X & ( for A, B being Element of X
for F being Functor of A,B holds
( [[A,B],F] is Morphism of C iff F in Y ) ) )
let Y be non empty set ; ( ( for A, B, C being Element of X
for F being Functor of A,B
for G being Functor of B,C st F in Y & G in Y holds
G * F in Y ) & ( for A being Element of X holds id A in Y ) implies ex C being strict Categorial Category st
( the carrier of C = X & ( for A, B being Element of X
for F being Functor of A,B holds
( [[A,B],F] is Morphism of C iff F in Y ) ) ) )
assume that
A1:
for A, B, C being Element of X
for F being Functor of A,B
for G being Functor of B,C st F in Y & G in Y holds
G * F in Y
and
A2:
for A being Element of X holds id A in Y
; ex C being strict Categorial Category st
( the carrier of C = X & ( for A, B being Element of X
for F being Functor of A,B holds
( [[A,B],F] is Morphism of C iff F in Y ) ) )
set B = { b where b is Element of Y : b is Function } ;
set a = the Element of X;
id the Element of X in Y
by A2;
then
id the Element of X in { b where b is Element of Y : b is Function }
;
then reconsider B = { b where b is Element of Y : b is Function } as non empty set ;
B is functional
then reconsider B = B as non empty functional set ;
reconsider A = X as non empty categorial set ;
defpred S1[ Element of A, Element of A, set ] means $3 is Functor of $1,$2;
deffunc H1( Function, Function) -> set = $1 * $2;
A3:
for a, b, c being Element of A
for f, g being Element of B st S1[a,b,f] & S1[b,c,g] holds
( H1(g,f) in B & S1[a,c,H1(g,f)] )
proof
let a,
b,
c be
Element of
A;
for f, g being Element of B st S1[a,b,f] & S1[b,c,g] holds
( H1(g,f) in B & S1[a,c,H1(g,f)] )let f,
g be
Element of
B;
( S1[a,b,f] & S1[b,c,g] implies ( H1(g,f) in B & S1[a,c,H1(g,f)] ) )
assume that A4:
S1[
a,
b,
f]
and A5:
S1[
b,
c,
g]
;
( H1(g,f) in B & S1[a,c,H1(g,f)] )
reconsider f =
f as
Functor of
a,
b by A4;
reconsider g =
g as
Functor of
b,
c by A5;
A6:
f in B
;
A7:
g in B
;
A8:
ex
b being
Element of
Y st
(
f = b &
b is
Function )
by A6;
ex
b being
Element of
Y st
(
g = b &
b is
Function )
by A7;
then
g * f in Y
by A1, A8;
hence
(
H1(
g,
f)
in B &
S1[
a,
c,
H1(
g,
f)] )
;
verum
end;
A9:
for a being Element of A ex f being Element of B st
( S1[a,a,f] & ( for b being Element of A
for g being Element of B holds
( ( S1[a,b,g] implies H1(g,f) = g ) & ( S1[b,a,g] implies H1(f,g) = g ) ) ) )
proof
let a be
Element of
A;
ex f being Element of B st
( S1[a,a,f] & ( for b being Element of A
for g being Element of B holds
( ( S1[a,b,g] implies H1(g,f) = g ) & ( S1[b,a,g] implies H1(f,g) = g ) ) ) )
reconsider f =
id a as
Element of
Y by A2;
f in B
;
then reconsider f =
f as
Element of
B ;
take
f
;
( S1[a,a,f] & ( for b being Element of A
for g being Element of B holds
( ( S1[a,b,g] implies H1(g,f) = g ) & ( S1[b,a,g] implies H1(f,g) = g ) ) ) )
thus
S1[
a,
a,
f]
;
for b being Element of A
for g being Element of B holds
( ( S1[a,b,g] implies H1(g,f) = g ) & ( S1[b,a,g] implies H1(f,g) = g ) )
let b be
Element of
A;
for g being Element of B holds
( ( S1[a,b,g] implies H1(g,f) = g ) & ( S1[b,a,g] implies H1(f,g) = g ) )let g be
Element of
B;
( ( S1[a,b,g] implies H1(g,f) = g ) & ( S1[b,a,g] implies H1(f,g) = g ) )
thus
(
S1[
a,
b,
g] implies
g * f = g )
by FUNCT_2:17;
( S1[b,a,g] implies H1(f,g) = g )
assume
S1[
b,
a,
g]
;
H1(f,g) = g
then reconsider G =
g as
Functor of
b,
a ;
(id a) * G = G
by FUNCT_2:17;
hence
H1(
f,
g)
= g
;
verum
end;
A10:
for a, b, c, d being Element of A
for f, g, h being Element of B st S1[a,b,f] & S1[b,c,g] & S1[c,d,h] holds
H1(h,H1(g,f)) = H1(H1(h,g),f)
by RELAT_1:36;
consider C being strict with_triple-like_morphisms Category such that
A11:
( the carrier of C = A & ( for a, b being Element of A
for f being Element of B st S1[a,b,f] holds
[[a,b],f] is Morphism of C ) & ( for m being Morphism of C ex a, b being Element of A ex f being Element of B st
( m = [[a,b],f] & S1[a,b,f] ) ) & ( for m1, m2 being Morphism of C
for a1, a2, a3 being Element of A
for f1, f2 being Element of B st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 (*) m1 = [[a1,a3],H1(f2,f1)] ) )
from CAT_5:sch 1(A3, A9, A10);
C is Categorial
proof
thus
the
carrier of
C is
categorial
by A11;
CAT_5:def 6 ( ( for a being Object of C
for A being Category st a = A holds
id a = [[A,A],(id A)] ) & ( for m being Morphism of C
for A, B being Category st A = dom m & B = cod m holds
ex F being Functor of A,B st m = [[A,B],F] ) & ( for m1, m2 being Morphism of C
for A, B, C being Category
for F being Functor of A,B
for G being Functor of B,C st m1 = [[A,B],F] & m2 = [[B,C],G] holds
m2 (*) m1 = [[A,C],(G * F)] ) )
hereby ( ( for m being Morphism of C
for A, B being Category st A = dom m & B = cod m holds
ex F being Functor of A,B st m = [[A,B],F] ) & ( for m1, m2 being Morphism of C
for A, B, C being Category
for F being Functor of A,B
for G being Functor of B,C st m1 = [[A,B],F] & m2 = [[B,C],G] holds
m2 (*) m1 = [[A,C],(G * F)] ) )
let a be
Object of
C;
for D being Category st a = D holds
id a = [[D,D],(id D)]let D be
Category;
( a = D implies id a = [[D,D],(id D)] )assume A12:
a = D
;
id a = [[D,D],(id D)]then
id D in Y
by A2, A11;
then
id D in B
;
then reconsider f =
id D as
Element of
B ;
reconsider x =
a as
Element of
A by A11;
reconsider F =
[[x,x],f] as
Morphism of
C by A11, A12;
consider b,
c being
Element of
A,
g being
Element of
B such that A13:
id a = [[b,c],g]
and A14:
S1[
b,
c,
g]
by A11;
A15:
dom (id a) = (id a) `11
by Th2;
A16:
(id a) `11 = b
by A13, MCART_1:85;
cod F =
F `12
by Th2
.=
x
by MCART_1:85
;
then F =
(id a) (*) F
by CAT_1:21
.=
[[x,c],(g * (id the carrier' of D))]
by A11, A13, A15, A16
.=
[[x,c],g]
by A12, A14, A15, A16, FUNCT_2:17
;
hence
id a = [[D,D],(id D)]
by A12, A13, A15, MCART_1:85;
verum
end;
hereby for m1, m2 being Morphism of C
for A, B, C being Category
for F being Functor of A,B
for G being Functor of B,C st m1 = [[A,B],F] & m2 = [[B,C],G] holds
m2 (*) m1 = [[A,C],(G * F)]
let m be
Morphism of
C;
for A, B being Category st A = dom m & B = cod m holds
ex F being Functor of A,B st m = [[A,B],F]consider a,
b being
Element of
A,
f being
Element of
B such that A17:
m = [[a,b],f]
and A18:
S1[
a,
b,
f]
by A11;
A19:
dom m = m `11
by Th2;
A20:
cod m = m `12
by Th2;
A21:
dom m = a
by A17, A19, MCART_1:85;
cod m = b
by A17, A20, MCART_1:85;
hence
for
A,
B being
Category st
A = dom m &
B = cod m holds
ex
F being
Functor of
A,
B st
m = [[A,B],F]
by A17, A18, A21;
verum
end;
let m1,
m2 be
Morphism of
C;
for A, B, C being Category
for F being Functor of A,B
for G being Functor of B,C st m1 = [[A,B],F] & m2 = [[B,C],G] holds
m2 (*) m1 = [[A,C],(G * F)]
consider a1,
b1 being
Element of
A,
f1 being
Element of
B such that A22:
m1 = [[a1,b1],f1]
and
S1[
a1,
b1,
f1]
by A11;
consider a2,
b2 being
Element of
A,
f2 being
Element of
B such that A23:
m2 = [[a2,b2],f2]
and
S1[
a2,
b2,
f2]
by A11;
let A,
B,
C be
Category;
for F being Functor of A,B
for G being Functor of B,C st m1 = [[A,B],F] & m2 = [[B,C],G] holds
m2 (*) m1 = [[A,C],(G * F)]let F be
Functor of
A,
B;
for G being Functor of B,C st m1 = [[A,B],F] & m2 = [[B,C],G] holds
m2 (*) m1 = [[A,C],(G * F)]let G be
Functor of
B,
C;
( m1 = [[A,B],F] & m2 = [[B,C],G] implies m2 (*) m1 = [[A,C],(G * F)] )
assume that A24:
m1 = [[A,B],F]
and A25:
m2 = [[B,C],G]
;
m2 (*) m1 = [[A,C],(G * F)]
A26:
[A,B] = [a1,b1]
by A22, A24, XTUPLE_0:1;
A27:
[B,C] = [a2,b2]
by A23, A25, XTUPLE_0:1;
A28:
f1 = F
by A22, A24, XTUPLE_0:1;
A29:
f2 = G
by A23, A25, XTUPLE_0:1;
A30:
A = a1
by A26, XTUPLE_0:1;
A31:
B = b1
by A26, XTUPLE_0:1;
C = b2
by A27, XTUPLE_0:1;
hence
m2 (*) m1 = [[A,C],(G * F)]
by A11, A22, A25, A28, A29, A30, A31;
verum
end;
then reconsider C = C as strict Categorial Category ;
take
C
; ( the carrier of C = X & ( for A, B being Element of X
for F being Functor of A,B holds
( [[A,B],F] is Morphism of C iff F in Y ) ) )
thus
the carrier of C = X
by A11; for A, B being Element of X
for F being Functor of A,B holds
( [[A,B],F] is Morphism of C iff F in Y )
let A9, B9 be Element of X; for F being Functor of A9,B9 holds
( [[A9,B9],F] is Morphism of C iff F in Y )
let F be Functor of A9,B9; ( [[A9,B9],F] is Morphism of C iff F in Y )
hereby ( F in Y implies [[A9,B9],F] is Morphism of C )
assume
[[A9,B9],F] is
Morphism of
C
;
F in Ythen reconsider m =
[[A9,B9],F] as
Morphism of
C ;
consider a,
b being
Element of
A,
f being
Element of
B such that A32:
m = [[a,b],f]
and
S1[
a,
b,
f]
by A11;
m `2 = f
by A32;
then
F in B
;
then
ex
b being
Element of
Y st
(
F = b &
b is
Function )
;
hence
F in Y
;
verum
end;
assume
F in Y
; [[A9,B9],F] is Morphism of C
then
F in B
;
hence
[[A9,B9],F] is Morphism of C
by A11; verum