defpred S1[ set , set ] means for f, g being strict covariant Functor of A,B st [f,g] = $1 holds
for x being set holds
( x in $2 iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) );
A1: for i being set st i in [:(Funct A,B),(Funct A,B):] holds
ex j being set st S1[i,j]
proof
let i be set ; :: thesis: ( i in [:(Funct A,B),(Funct A,B):] implies ex j being set st S1[i,j] )
assume i in [:(Funct A,B),(Funct A,B):] ; :: thesis: ex j being set st S1[i,j]
then consider f, g being set such that
A2: ( f in Funct A,B & g in Funct A,B & i = [f,g] ) by ZFMISC_1:def 2;
reconsider f = f, g = g as strict covariant Functor of A,B by A2, Def10;
defpred S2[ set , set ] means ex o being object of A st
( $1 = o & $2 = <^(f . o),(g . o)^> );
A3: for a being Element of A ex j being set st S2[a,j]
proof
let a be Element of A; :: thesis: ex j being set st S2[a,j]
reconsider o = a as object of A ;
consider j being set such that
A4: j = <^(f . o),(g . o)^> ;
thus ex j being set st S2[a,j] by A4; :: thesis: verum
end;
consider N being ManySortedSet of such that
A5: for a being Element of A holds S2[a,N . a] from PBOOLE:sch 6(A3);
defpred S3[ set ] means ( f is_naturally_transformable_to g & $1 is natural_transformation of f,g );
consider j being set such that
A6: for x being set holds
( x in j iff ( x in product N & S3[x] ) ) from XBOOLE_0:sch 1();
take j ; :: thesis: S1[i,j]
let f', g' be strict covariant Functor of A,B; :: thesis: ( [f',g'] = i implies for x being set holds
( x in j iff ( f' is_naturally_transformable_to g' & x is natural_transformation of f',g' ) ) )

assume A7: [f',g'] = i ; :: thesis: for x being set holds
( x in j iff ( f' is_naturally_transformable_to g' & x is natural_transformation of f',g' ) )

let x be set ; :: thesis: ( x in j iff ( f' is_naturally_transformable_to g' & x is natural_transformation of f',g' ) )
thus ( x in j implies ( f' is_naturally_transformable_to g' & x is natural_transformation of f',g' ) ) :: thesis: ( f' is_naturally_transformable_to g' & x is natural_transformation of f',g' implies x in j )
proof end;
thus ( f' is_naturally_transformable_to g' & x is natural_transformation of f',g' implies x in j ) :: thesis: verum
proof
assume A9: ( f' is_naturally_transformable_to g' & x is natural_transformation of f',g' ) ; :: thesis: x in j
then A10: f' is_transformable_to g' by Def6;
A11: ( f' = f & g' = g ) by A2, A7, ZFMISC_1:33;
reconsider h = x as ManySortedSet of by A9;
A12: dom h = the carrier of A by PARTFUN1:def 4;
set I = the carrier of A;
A13: for i' being set st i' in the carrier of A holds
h . i' in N . i'
proof
let i' be set ; :: thesis: ( i' in the carrier of A implies h . i' in N . i' )
assume i' in the carrier of A ; :: thesis: h . i' in N . i'
then reconsider i' = i' as Element of A ;
consider i'' being object of A such that
A14: i'' = i' and
A15: N . i' = <^(f . i''),(g . i'')^> by A5;
A16: <^(f . i''),(g . i'')^> <> {} by A10, A11, Def1;
h . i'' is Element of <^(f . i''),(g . i'')^> by A9, A10, A11, Def2;
hence h . i' in N . i' by A14, A15, A16; :: thesis: verum
end;
A17: for i' being set st i' in dom N holds
h . i' in N . i'
proof
let i' be set ; :: thesis: ( i' in dom N implies h . i' in N . i' )
assume A18: i' in dom N ; :: thesis: h . i' in N . i'
dom N = the carrier of A by PARTFUN1:def 4;
hence h . i' in N . i' by A13, A18; :: thesis: verum
end;
dom h = dom N by A12, PARTFUN1:def 4;
then x in product N by A17, CARD_3:18;
hence x in j by A6, A9, A11; :: thesis: verum
end;
end;
consider a being ManySortedSet of such that
A19: for i being set st i in [:(Funct A,B),(Funct A,B):] holds
S1[i,a . i] from PBOOLE:sch 3(A1);
defpred S2[ set , set , set ] means for f, g, h being strict covariant Functor of A,B st [f,g,h] = $3 holds
for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h st [t2,t1] = $2 & ex v being Function st v . $2 = $1 holds
$1 = t2 `*` t1;
A20: for o being set st o in [:(Funct A,B),(Funct A,B),(Funct A,B):] holds
for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S2[y,x,o] )
proof
let o be set ; :: thesis: ( o in [:(Funct A,B),(Funct A,B),(Funct A,B):] implies for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S2[y,x,o] ) )

assume o in [:(Funct A,B),(Funct A,B),(Funct A,B):] ; :: thesis: for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S2[y,x,o] )

then o in [:[:(Funct A,B),(Funct A,B):],(Funct A,B):] by ZFMISC_1:def 3;
then consider ff, h being set such that
A21: ff in [:(Funct A,B),(Funct A,B):] and
A22: h in Funct A,B and
A23: o = [ff,h] by ZFMISC_1:def 2;
consider f, g being set such that
A24: f in Funct A,B and
A25: g in Funct A,B and
A26: ff = [f,g] by A21, ZFMISC_1:def 2;
A27: o = [f,g,h] by A23, A26, MCART_1:def 3;
reconsider T = Funct A,B as non empty set by A22;
reconsider i = f, j = g, k = h as Element of T by A22, A24, A25;
A28: {|a,a|} . [i,j,k] = {|a,a|} . i,j,k by MULTOP_1:def 1
.= [:(a . j,k),(a . i,j):] by ALTCAT_1:def 6 ;
A29: {|a|} . [i,j,k] = {|a|} . i,j,k by MULTOP_1:def 1
.= a . i,k by ALTCAT_1:def 5 ;
for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S2[y,x,o] )
proof
let x be set ; :: thesis: ( x in {|a,a|} . o implies ex y being set st
( y in {|a|} . o & S2[y,x,o] ) )

assume x in {|a,a|} . o ; :: thesis: ex y being set st
( y in {|a|} . o & S2[y,x,o] )

then consider x2, x1 being set such that
A30: x2 in a . j,k and
A31: x1 in a . i,j and
A32: x = [x2,x1] by A27, A28, ZFMISC_1:def 2;
A33: x2 in a . [j,k] by A30;
A34: x1 in a . [i,j] by A31;
reconsider i' = i, j' = j, k' = k as strict covariant Functor of A,B by Def10;
A35: ( i' is_naturally_transformable_to j' & x1 is natural_transformation of i',j' ) by A19, A34;
reconsider x1 = x1 as natural_transformation of i',j' by A19, A34;
A36: ( j' is_naturally_transformable_to k' & x2 is natural_transformation of j',k' ) by A19, A33;
reconsider x2 = x2 as natural_transformation of j',k' by A19, A33;
reconsider vv = x2 `*` x1 as natural_transformation of i',k' ;
A37: ( i' is_naturally_transformable_to k' & vv is natural_transformation of i',k' ) by A35, A36, Th10;
[i',k'] in [:(Funct A,B),(Funct A,B):] by ZFMISC_1:def 2;
then A38: vv in a . [i',k'] by A19, A37;
for f, g, h being strict covariant Functor of A,B st [f,g,h] = o holds
for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h st [t2,t1] = x & ex v being Function st v . x = vv holds
vv = t2 `*` t1
proof
let f, g, h be strict covariant Functor of A,B; :: thesis: ( [f,g,h] = o implies for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h st [t2,t1] = x & ex v being Function st v . x = vv holds
vv = t2 `*` t1 )

assume A39: [f,g,h] = o ; :: thesis: for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h st [t2,t1] = x & ex v being Function st v . x = vv holds
vv = t2 `*` t1

let t1 be natural_transformation of f,g; :: thesis: for t2 being natural_transformation of g,h st [t2,t1] = x & ex v being Function st v . x = vv holds
vv = t2 `*` t1

let t2 be natural_transformation of g,h; :: thesis: ( [t2,t1] = x & ex v being Function st v . x = vv implies vv = t2 `*` t1 )
assume that
A40: [t2,t1] = x and
ex v being Function st v . x = vv ; :: thesis: vv = t2 `*` t1
A41: ( i' = f & j' = g & k' = h ) by A27, A39, MCART_1:28;
then reconsider x1 = x1 as natural_transformation of f,g ;
reconsider x2 = x2 as natural_transformation of g,h by A41;
( x2 = t2 & x1 = t1 ) by A32, A40, ZFMISC_1:33;
hence vv = t2 `*` t1 by A41; :: thesis: verum
end;
hence ex y being set st
( y in {|a|} . o & S2[y,x,o] ) by A27, A29, A38; :: thesis: verum
end;
hence for x being set st x in {|a,a|} . o holds
ex y being set st
( y in {|a|} . o & S2[y,x,o] ) ; :: thesis: verum
end;
consider c being ManySortedFunction of {|a,a|},{|a|} such that
A42: for i being set st i in [:(Funct A,B),(Funct A,B),(Funct A,B):] holds
ex v being Function of ({|a,a|} . i),({|a|} . i) st
( v = c . i & ( for x being set st x in {|a,a|} . i holds
S2[v . x,x,i] ) ) from MSSUBFAM:sch 1(A20);
set F = AltCatStr(# (Funct A,B),a,c #);
A43: not Funct A,B is empty
proof
consider f being strict covariant Functor of A,B;
f in Funct A,B by Def10;
hence not Funct A,B is empty ; :: thesis: verum
end;
AltCatStr(# (Funct A,B),a,c #) is transitive
proof
let o1, o2, o3 be object of AltCatStr(# (Funct A,B),a,c #); :: according to ALTCAT_1:def 4 :: thesis: ( <^o1,o2^> = {} or <^o2,o3^> = {} or not <^o1,o3^> = {} )
assume A44: ( <^o1,o2^> <> {} & <^o2,o3^> <> {} ) ; :: thesis: not <^o1,o3^> = {}
reconsider a1 = o1, a2 = o2, a3 = o3 as strict covariant Functor of A,B by A43, Def10;
A45: [o1,o2] in [:(Funct A,B),(Funct A,B):] by A43, ZFMISC_1:def 2;
consider y being set such that
A46: y in a . [o1,o2] by A44, XBOOLE_0:def 1;
A47: ( a1 is_naturally_transformable_to a2 & y is natural_transformation of a1,a2 ) by A19, A45, A46;
reconsider y = y as natural_transformation of a1,a2 by A19, A45, A46;
A48: [o2,o3] in [:(Funct A,B),(Funct A,B):] by A43, ZFMISC_1:def 2;
consider x being set such that
A49: x in a . [o2,o3] by A44, XBOOLE_0:def 1;
A50: ( a2 is_naturally_transformable_to a3 & x is natural_transformation of a2,a3 ) by A19, A48, A49;
reconsider x = x as natural_transformation of a2,a3 by A19, A48, A49;
A51: x `*` y is natural_transformation of a1,a3 ;
A52: [o1,o3] in [:(Funct A,B),(Funct A,B):] by A43, ZFMISC_1:def 2;
( a1 is_naturally_transformable_to a3 & ex x being set st x is natural_transformation of a1,a3 ) by A47, A50, A51, Th10;
hence not <^o1,o3^> = {} by A19, A52; :: thesis: verum
end;
then reconsider F = AltCatStr(# (Funct A,B),a,c #) as non empty transitive strict AltCatStr by A43;
take F ; :: thesis: ( the carrier of F = Funct A,B & ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of F . F,G iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of F . F,G,H & f . t2,t1 = t2 `*` t1 ) ) )

thus the carrier of F = Funct A,B ; :: thesis: ( ( for F, G being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of F . F,G iff ( F is_naturally_transformable_to G & x is natural_transformation of F,G ) ) ) & ( for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of F . F,G,H & f . t2,t1 = t2 `*` t1 ) ) )

thus for f, g being strict covariant Functor of A,B
for x being set holds
( x in the Arrows of F . f,g iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) ) :: thesis: for F, G, H being strict covariant Functor of A,B st F is_naturally_transformable_to G & G is_naturally_transformable_to H holds
for t1 being natural_transformation of F,G
for t2 being natural_transformation of G,H ex f being Function st
( f = the Comp of F . F,G,H & f . t2,t1 = t2 `*` t1 )
proof
let f, g be strict covariant Functor of A,B; :: thesis: for x being set holds
( x in the Arrows of F . f,g iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) )

let x be set ; :: thesis: ( x in the Arrows of F . f,g iff ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) )
thus ( x in the Arrows of F . f,g implies ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) ) :: thesis: ( f is_naturally_transformable_to g & x is natural_transformation of f,g implies x in the Arrows of F . f,g )
proof end;
thus ( f is_naturally_transformable_to g & x is natural_transformation of f,g implies x in the Arrows of F . f,g ) :: thesis: verum
proof
assume A54: ( f is_naturally_transformable_to g & x is natural_transformation of f,g ) ; :: thesis: x in the Arrows of F . f,g
( f in Funct A,B & g in Funct A,B ) by Def10;
then [f,g] in [:(Funct A,B),(Funct A,B):] by ZFMISC_1:106;
hence x in the Arrows of F . f,g by A19, A54; :: thesis: verum
end;
end;
let f, g, h be strict covariant Functor of A,B; :: thesis: ( f is_naturally_transformable_to g & g is_naturally_transformable_to h implies for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h ex f being Function st
( f = the Comp of F . f,g,h & f . t2,t1 = t2 `*` t1 ) )

assume A55: ( f is_naturally_transformable_to g & g is_naturally_transformable_to h ) ; :: thesis: for t1 being natural_transformation of f,g
for t2 being natural_transformation of g,h ex f being Function st
( f = the Comp of F . f,g,h & f . t2,t1 = t2 `*` t1 )

let t1 be natural_transformation of f,g; :: thesis: for t2 being natural_transformation of g,h ex f being Function st
( f = the Comp of F . f,g,h & f . t2,t1 = t2 `*` t1 )

let t2 be natural_transformation of g,h; :: thesis: ex f being Function st
( f = the Comp of F . f,g,h & f . t2,t1 = t2 `*` t1 )

A56: ( f in Funct A,B & g in Funct A,B & h in Funct A,B ) by Def10;
A57: [:(Funct A,B),(Funct A,B),(Funct A,B):] = [:[:(Funct A,B),(Funct A,B):],(Funct A,B):] by ZFMISC_1:def 3;
A58: [f,g,h] = [[f,g],h] by MCART_1:def 3;
A59: [g,h] in [:(Funct A,B),(Funct A,B):] by A56, ZFMISC_1:106;
A60: [f,g] in [:(Funct A,B),(Funct A,B):] by A56, ZFMISC_1:106;
then [f,g,h] in [:(Funct A,B),(Funct A,B),(Funct A,B):] by A56, A57, A58, ZFMISC_1:106;
then consider v being Function of ({|a,a|} . [f,g,h]),({|a|} . [f,g,h]) such that
A61: v = c . [f,g,h] and
A62: for x being set st x in {|a,a|} . [f,g,h] holds
S2[v . x,x,[f,g,h]] by A42;
A63: v = c . f,g,h by A61, MULTOP_1:def 1;
reconsider T = Funct A,B as non empty set by A56;
reconsider i = f, j = g, k = h as Element of T by Def10;
A64: {|a,a|} . [i,j,k] = {|a,a|} . i,j,k by MULTOP_1:def 1
.= [:(a . j,k),(a . i,j):] by ALTCAT_1:def 6 ;
A65: t1 in a . [f,g] by A19, A55, A60;
t2 in a . [g,h] by A19, A55, A59;
then [t2,t1] in {|a,a|} . [f,g,h] by A64, A65, ZFMISC_1:106;
then v . t2,t1 = t2 `*` t1 by A62;
hence ex f being Function st
( f = the Comp of F . f,g,h & f . t2,t1 = t2 `*` t1 ) by A63; :: thesis: verum