deffunc H1( set , set , set , set , set ) -> set = $4 (#) $5;
A4: now :: thesis: for a, b being Element of F1()
for f being set st f in F2(a,b) holds
f is Function
let a, b be Element of F1(); :: thesis: for f being set st f in F2(a,b) holds
f is Function

let f be set ; :: thesis: ( f in F2(a,b) implies f is Function )
assume A5: f in F2(a,b) ; :: thesis: f is Function
F2(a,b) c= Funcs (F3(a),F3(b)) by A2;
hence f is Function by A5; :: thesis: verum
end;
A6: for a, b, c being Element of F1()
for f, g being set st f in F2(a,b) & g in F2(b,c) holds
H1(a,b,c,f,g) in F2(a,c)
proof
let a, b, c be Element of F1(); :: thesis: for f, g being set st f in F2(a,b) & g in F2(b,c) holds
H1(a,b,c,f,g) in F2(a,c)

let f, g be set ; :: thesis: ( f in F2(a,b) & g in F2(b,c) implies H1(a,b,c,f,g) in F2(a,c) )
assume that
A7: f in F2(a,b) and
A8: g in F2(b,c) ; :: thesis: H1(a,b,c,f,g) in F2(a,c)
reconsider f = f, g = g as Function by A4, A7, A8;
g * f = f (#) g ;
hence H1(a,b,c,f,g) in F2(a,c) by A1, A7, A8; :: thesis: verum
end;
A9: for a, b, c, d being Element of F1()
for f, g, h being set st f in F2(a,b) & g in F2(b,c) & h in F2(c,d) holds
H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
proof
let a, b, c, d be Element of F1(); :: thesis: for f, g, h being set st f in F2(a,b) & g in F2(b,c) & h in F2(c,d) holds
H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))

let f, g, h be set ; :: thesis: ( f in F2(a,b) & g in F2(b,c) & h in F2(c,d) implies H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) )
assume that
A10: f in F2(a,b) and
A11: g in F2(b,c) and
A12: h in F2(c,d) ; :: thesis: H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h))
reconsider f = f, g = g, h = h as Function by A4, A10, A11, A12;
(f (#) g) (#) h = f (#) (h * g) by RELAT_1:36;
hence H1(a,c,d,H1(a,b,c,f,g),h) = H1(a,b,d,f,H1(b,c,d,g,h)) ; :: thesis: verum
end;
A13: for a being Element of F1() ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g ) )
proof
let a be Element of F1(); :: thesis: ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g ) )

take f = id F3(a); :: thesis: ( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g ) )

thus f in F2(a,a) by A3; :: thesis: for b being Element of F1()
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g

let b be Element of F1(); :: thesis: for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = g

let g be set ; :: thesis: ( g in F2(a,b) implies H1(a,a,b,f,g) = g )
assume A14: g in F2(a,b) ; :: thesis: H1(a,a,b,f,g) = g
F2(a,b) c= Funcs (F3(a),F3(b)) by A2;
then consider h being Function such that
A15: g = h and
A16: dom h = F3(a) and
rng h c= F3(b) by A14, FUNCT_2:def 2;
thus f (#) g = g by A15, A16, RELAT_1:52; :: thesis: verum
end;
A17: for a being Element of F1() ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g ) )
proof
let a be Element of F1(); :: thesis: ex f being set st
( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g ) )

take f = id F3(a); :: thesis: ( f in F2(a,a) & ( for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g ) )

thus f in F2(a,a) by A3; :: thesis: for b being Element of F1()
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g

let b be Element of F1(); :: thesis: for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = g

let g be set ; :: thesis: ( g in F2(b,a) implies H1(b,a,a,g,f) = g )
assume A18: g in F2(b,a) ; :: thesis: H1(b,a,a,g,f) = g
F2(b,a) c= Funcs (F3(b),F3(a)) by A2;
then consider h being Function such that
A19: g = h and
dom h = F3(b) and
A20: rng h c= F3(a) by A18, FUNCT_2:def 2;
thus g (#) f = g by A19, A20, RELAT_1:53; :: thesis: verum
end;
consider C being strict category such that
A21: the carrier of C = F1() and
A22: for a, b being Object of C holds <^a,b^> = F2(a,b) and
A23: for a, b, c being Object of C st <^a,b^> <> {} & <^b,c^> <> {} holds
for f being Morphism of a,b
for g being Morphism of b,c holds g * f = H1(a,b,c,f,g) from YELLOW18:sch 4(A6, A9, A13, A17);
consider D being ManySortedSet of C such that
A24: for x being Element of C holds D . x = F3(x) from PBOOLE:sch 5();
A25: C is para-functional
proof
take D ; :: according to YELLOW18:def 7 :: thesis: for a1, a2 being Object of C holds <^a1,a2^> c= Funcs ((D . a1),(D . a2))
let a1, a2 be Object of C; :: thesis: <^a1,a2^> c= Funcs ((D . a1),(D . a2))
A26: <^a1,a2^> = F2(a1,a2) by A22;
A27: F3(a1) = D . a1 by A24;
F3(a2) = D . a2 by A24;
hence <^a1,a2^> c= Funcs ((D . a1),(D . a2)) by A2, A21, A26, A27; :: thesis: verum
end;
A28: C is semi-functional by A23;
A29: now :: thesis: for a being Object of C holds idm a = id F3(a)
let a be Object of C; :: thesis: idm a = id F3(a)
id F3(a) in F2(a,a) by A3, A21;
then reconsider e = id F3(a) as Morphism of a,a by A22;
now :: thesis: for b being Object of C st <^a,b^> <> {} holds
for f being Morphism of a,b holds f * e = f
let b be Object of C; :: thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds f * e = f )
assume A30: <^a,b^> <> {} ; :: thesis: for f being Morphism of a,b holds f * e = f
let f be Morphism of a,b; :: thesis: f * e = f
A31: <^a,b^> = F2(a,b) by A22;
A32: F2(a,b) c= Funcs (F3(a),F3(b)) by A2, A21;
f in <^a,b^> by A30;
then consider h being Function such that
A33: f = h and
A34: dom h = F3(a) and
rng h c= F3(b) by A31, A32, FUNCT_2:def 2;
thus f * e = h * (id F3(a)) by A28, A30, A33
.= f by A33, A34, RELAT_1:52 ; :: thesis: verum
end;
hence idm a = id F3(a) by ALTCAT_1:def 17; :: thesis: verum
end;
A35: now :: thesis: for i being set st i in the carrier of C holds
C -carrier_of i = D . i
let i be set ; :: thesis: ( i in the carrier of C implies C -carrier_of i = D . i )
assume i in the carrier of C ; :: thesis: C -carrier_of i = D . i
then reconsider a = i as Object of C ;
thus C -carrier_of i = proj1 (idm a) by Def8
.= proj1 (id F3(a)) by A29
.= F3(a)
.= D . i by A24 ; :: thesis: verum
end;
C is set-id-inheriting
proof
let a be Object of C; :: according to YELLOW18:def 10 :: thesis: idm a = id (the_carrier_of a)
thus idm a = id F3(a) by A29
.= id (D . a) by A24
.= id (the_carrier_of a) by A35 ; :: thesis: verum
end;
then reconsider C = C as strict semi-functional para-functional set-id-inheriting category by A25, A28;
take C ; :: thesis: ( the carrier of C = F1() & ( for a being Object of C holds the_carrier_of a = F3(a) ) & ( for a, b being Object of C holds <^a,b^> = F2(a,b) ) )
thus the carrier of C = F1() by A21; :: thesis: ( ( for a being Object of C holds the_carrier_of a = F3(a) ) & ( for a, b being Object of C holds <^a,b^> = F2(a,b) ) )
hereby :: thesis: for a, b being Object of C holds <^a,b^> = F2(a,b)
let a be Object of C; :: thesis: the_carrier_of a = F3(a)
thus the_carrier_of a = D . a by A35
.= F3(a) by A24 ; :: thesis: verum
end;
thus for a, b being Object of C holds <^a,b^> = F2(a,b) by A22; :: thesis: verum