deffunc H1( set , set , set , set , set ) -> set = $4 (#) $5;
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();
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 ;
( 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)
;
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
by YELLOW16:1;
hence
H1(
a,
b,
c,
f,
g)
in F2(
a,
c)
by A1, A7, A8;
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();
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 ;
( 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)
;
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 =
(g * f) (#) h
by YELLOW16:1
.=
h * (g * f)
by YELLOW16:1
.=
(h * g) * f
by RELAT_1:36
.=
f (#) (h * g)
by YELLOW16:1
;
hence
H1(
a,
c,
d,
H1(
a,
b,
c,
f,
g),
h)
= H1(
a,
b,
d,
f,
H1(
b,
c,
d,
g,
h))
by YELLOW16:1;
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();
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);
( 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;
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();
for g being set st g in F2(a,b) holds
H1(a,a,b,f,g) = glet g be
set ;
( g in F2(a,b) implies H1(a,a,b,f,g) = g )
assume A14:
g in F2(
a,
b)
;
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 =
h * f
by A15, YELLOW16:1
.=
g
by A15, A16, RELAT_1:52
;
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();
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);
( 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;
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();
for g being set st g in F2(b,a) holds
H1(b,a,a,g,f) = glet g be
set ;
( g in F2(b,a) implies H1(b,a,a,g,f) = g )
assume A18:
g in F2(
b,
a)
;
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 =
f * h
by A19, YELLOW16:1
.=
g
by A19, A20, RELAT_1:53
;
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
;
YELLOW18:def 7 for a1, a2 being object of C holds <^a1,a2^> c= Funcs ((D . a1),(D . a2))
let a1,
a2 be
object of
C;
<^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;
verum
end;
A28:
C is semi-functional
proof
let a1,
a2,
a3 be
object of
C;
ALTCAT_1:def 12 ( <^a1,a2^> = {} or <^a2,a3^> = {} or <^a1,a3^> = {} or for b1 being Element of <^a1,a2^>
for b2 being Element of <^a2,a3^>
for b3, b4 being set holds
( not b1 = b3 or not b2 = b4 or b2 * b1 = b3 * b4 ) )
assume that A29:
<^a1,a2^> <> {}
and A30:
<^a2,a3^> <> {}
and
<^a1,a3^> <> {}
;
for b1 being Element of <^a1,a2^>
for b2 being Element of <^a2,a3^>
for b3, b4 being set holds
( not b1 = b3 or not b2 = b4 or b2 * b1 = b3 * b4 )
let f be
Morphism of
a1,
a2;
for b1 being Element of <^a2,a3^>
for b2, b3 being set holds
( not f = b2 or not b1 = b3 or b1 * f = b2 * b3 )let g be
Morphism of
a2,
a3;
for b1, b2 being set holds
( not f = b1 or not g = b2 or g * f = b1 * b2 )let f9,
g9 be
Function;
( not f = f9 or not g = g9 or g * f = f9 * g9 )
assume that A31:
f = f9
and A32:
g = g9
;
g * f = f9 * g9
thus g * f =
f9 (#) g9
by A23, A29, A30, A31, A32
.=
g9 * f9
by YELLOW16:1
;
verum
end;
A33:
now let a be
object of
C;
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 let b be
object of
C;
( <^a,b^> <> {} implies for f being Morphism of a,b holds f * e = f )assume A34:
<^a,b^> <> {}
;
for f being Morphism of a,b holds f * e = flet f be
Morphism of
a,
b;
f * e = fA35:
<^a,b^> = F2(
a,
b)
by A22;
A36:
F2(
a,
b)
c= Funcs (
F3(
a),
F3(
b))
by A2, A21;
f in <^a,b^>
by A34;
then consider h being
Function such that A37:
f = h
and A38:
dom h = F3(
a)
and
rng h c= F3(
b)
by A35, A36, FUNCT_2:def 2;
thus f * e =
h * (id F3(a))
by A28, A34, A37, ALTCAT_1:def 12
.=
f
by A37, A38, RELAT_1:52
;
verum end; hence
idm a = id F3(
a)
by ALTCAT_1:def 17;
verum end;
C is set-id-inheriting
then reconsider C = C as strict semi-functional para-functional set-id-inheriting category by A25, A28;
take
C
; ( 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; ( ( 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 for a, b being object of C holds <^a,b^> = F2(a,b)
end;
thus
for a, b being object of C holds <^a,b^> = F2(a,b)
by A22; verum