let X be non empty categorial set ; :: thesis: 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 ; :: thesis: ( ( 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
; :: thesis: 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 } ;
consider a being Element of X;
id a in Y
by A2;
then
id a 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;
:: thesis: 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;
:: thesis: ( S1[a,b,f] & S1[b,c,g] implies ( H1(g,f) in B & S1[a,c,H1(g,f)] ) )
assume A4:
(
S1[
a,
b,
f] &
S1[
b,
c,
g] )
;
:: thesis: ( H1(g,f) in B & S1[a,c,H1(g,f)] )
then reconsider f =
f as
Functor of
a,
b ;
reconsider g =
g as
Functor of
b,
c by A4;
(
f in B &
g in B )
;
then
( ex
b being
Element of
Y st
(
f = b &
b is
Function ) & ex
b being
Element of
Y st
(
g = b &
b is
Function ) )
;
then
g * f in Y
by A1;
hence
(
H1(
g,
f)
in B &
S1[
a,
c,
H1(
g,
f)] )
;
:: thesis: verum
end;
A5:
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;
:: thesis: 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
;
:: thesis: ( 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]
;
:: thesis: 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;
:: thesis: 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;
:: thesis: ( ( 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:23;
:: thesis: ( S1[b,a,g] implies H1(f,g) = g )
assume
S1[
b,
a,
g]
;
:: thesis: H1(f,g) = g
then reconsider G =
g as
Functor of
b,
a ;
(id a) * G = G
by FUNCT_2:23;
hence
H1(
f,
g)
= g
;
:: thesis: verum
end;
A6:
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:55;
consider C being strict with_triple-like_morphisms Category such that
A7:
( 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, A5, A6);
C is Categorial
proof
thus
the
carrier of
C is
categorial
by A7;
:: according to CAT_5:def 6 :: thesis: ( ( 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 :: thesis: ( ( 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;
:: thesis: for D being Category st a = D holds
id a = [[D,D],(id D)]let D be
Category;
:: thesis: ( a = D implies id a = [[D,D],(id D)] )assume A8:
a = D
;
:: thesis: id a = [[D,D],(id D)]then
id D in Y
by A2, A7;
then
id D in B
;
then reconsider f =
id D as
Element of
B ;
reconsider x =
a as
Element of
A by A7;
reconsider F =
[[x,x],f] as
Morphism of
C by A7, A8;
consider b,
c being
Element of
A,
g being
Element of
B such that A9:
(
id a = [[b,c],g] &
S1[
b,
c,
g] )
by A7;
A10:
(
dom (id a) = a &
cod (id a) = a &
dom (id a) = (id a) `11 &
cod (id a) = (id a) `12 &
(id a) `11 = b &
(id a) `12 = c )
by A9, Th2, CAT_1:44, MCART_1:89;
cod F =
F `12
by Th2
.=
x
by MCART_1:89
;
then F =
(id a) * F
by CAT_1:46
.=
[[x,c],(g * (id the carrier' of D))]
by A7, A9, A10
.=
[[x,c],g]
by A8, A9, A10, FUNCT_2:23
;
hence
id a = [[D,D],(id D)]
by A8, A9, A10;
:: thesis: verum
end;
hereby :: thesis: 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;
:: thesis: 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 A11:
(
m = [[a,b],f] &
S1[
a,
b,
f] )
by A7;
(
dom m = m `11 &
cod m = m `12 )
by Th2;
then
(
dom m = a &
cod m = b )
by A11, MCART_1:89;
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 A11;
:: thesis: verum
end;
let m1,
m2 be
Morphism of
C;
:: thesis: 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 A12:
(
m1 = [[a1,b1],f1] &
S1[
a1,
b1,
f1] )
by A7;
consider a2,
b2 being
Element of
A,
f2 being
Element of
B such that A13:
(
m2 = [[a2,b2],f2] &
S1[
a2,
b2,
f2] )
by A7;
let A,
B,
C be
Category;
:: thesis: 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;
:: thesis: 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;
:: thesis: ( m1 = [[A,B],F] & m2 = [[B,C],G] implies m2 * m1 = [[A,C],(G * F)] )
assume
(
m1 = [[A,B],F] &
m2 = [[B,C],G] )
;
:: thesis: m2 * m1 = [[A,C],(G * F)]
then A14:
(
[A,B] = [a1,b1] &
[B,C] = [a2,b2] &
f1 = F &
f2 = G )
by A12, A13, ZFMISC_1:33;
then
(
A = a1 &
B = b1 &
B = a2 &
C = b2 )
by ZFMISC_1:33;
hence
m2 * m1 = [[A,C],(G * F)]
by A7, A12, A13, A14;
:: thesis: verum
end;
then reconsider C = C as strict Categorial Category ;
take
C
; :: thesis: ( 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 A7; :: thesis: 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 A', B' be Element of X; :: thesis: for F being Functor of A',B' holds
( [[A',B'],F] is Morphism of C iff F in Y )
let F be Functor of A',B'; :: thesis: ( [[A',B'],F] is Morphism of C iff F in Y )
hereby :: thesis: ( F in Y implies [[A',B'],F] is Morphism of C )
assume
[[A',B'],F] is
Morphism of
C
;
:: thesis: F in Ythen reconsider m =
[[A',B'],F] as
Morphism of
C ;
consider a,
b being
Element of
A,
f being
Element of
B such that A15:
(
m = [[a,b],f] &
S1[
a,
b,
f] )
by A7;
(
m `2 = F &
m `2 = f )
by A15, MCART_1:7;
then
F in B
;
then
ex
b being
Element of
Y st
(
F = b &
b is
Function )
;
hence
F in Y
;
:: thesis: verum
end;
assume
F in Y
; :: thesis: [[A',B'],F] is Morphism of C
then
F in B
;
hence
[[A',B'],F] is Morphism of C
by A7; :: thesis: verum