defpred S1[ set , set ] means ex a, b being LATTICE st
( $1 = [a,b] & ( for f being set holds
( f in $2 iff ( f in MonFuncs (a,b) & P1[a,b,f] ) ) ) );
set A = F1();
A4: now
let x be set ; :: thesis: ( x in [:F1(),F1():] implies ex y being set st S1[x,y] )
assume x in [:F1(),F1():] ; :: thesis: ex y being set st S1[x,y]
then consider a, b being set such that
A5: ( a in F1() & b in F1() ) and
A6: x = [a,b] by ZFMISC_1:def 2;
reconsider a = a, b = b as LATTICE by A1, A5;
defpred S2[ set ] means P1[a,b,$1];
consider y being set such that
A7: for f being set holds
( f in y iff ( f in MonFuncs (a,b) & S2[f] ) ) from XBOOLE_0:sch 1();
take y = y; :: thesis: S1[x,y]
thus S1[x,y] by A6, A7; :: thesis: verum
end;
consider F being Function such that
dom F = [:F1(),F1():] and
A8: for x being set st x in [:F1(),F1():] holds
S1[x,F . x] from CLASSES1:sch 1(A4);
defpred S2[ set , set ] means for a being LATTICE st a = $1 holds
$2 = the carrier of a;
A9: now
let x be set ; :: thesis: ( x in F1() implies ex b being set st S2[x,b] )
assume x in F1() ; :: thesis: ex b being set st S2[x,b]
then reconsider a = x as LATTICE by A1;
reconsider b = the carrier of a as set ;
take b = b; :: thesis: S2[x,b]
thus S2[x,b] ; :: thesis: verum
end;
consider D being Function such that
dom D = F1() and
A10: for x being set st x in F1() holds
S2[x,D . x] from CLASSES1:sch 1(A9);
deffunc H1( set , set ) -> set = F . [$1,$2];
A11: now
let a, b be LATTICE; :: thesis: ( a in F1() & b in F1() implies for f being set holds
( ( f in F . [a,b] implies ( P1[a,b,f] & f in MonFuncs (a,b) & f in Funcs ( the carrier of a, the carrier of b) & f is monotone Function of a,b ) ) & ( f is monotone Function of a,b & P1[a,b,f] implies f in F . [a,b] ) ) )

assume ( a in F1() & b in F1() ) ; :: thesis: for f being set holds
( ( f in F . [a,b] implies ( P1[a,b,f] & f in MonFuncs (a,b) & f in Funcs ( the carrier of a, the carrier of b) & f is monotone Function of a,b ) ) & ( f is monotone Function of a,b & P1[a,b,f] implies f in F . [a,b] ) )

then [a,b] in [:F1(),F1():] by ZFMISC_1:87;
then consider a9, b9 being LATTICE such that
A12: [a,b] = [a9,b9] and
A13: for f being set holds
( f in F . [a,b] iff ( f in MonFuncs (a9,b9) & P1[a9,b9,f] ) ) by A8;
let f be set ; :: thesis: ( ( f in F . [a,b] implies ( P1[a,b,f] & f in MonFuncs (a,b) & f in Funcs ( the carrier of a, the carrier of b) & f is monotone Function of a,b ) ) & ( f is monotone Function of a,b & P1[a,b,f] implies f in F . [a,b] ) )
A14: ( a = a9 & b = b9 ) by A12, ZFMISC_1:27;
hereby :: thesis: ( f is monotone Function of a,b & P1[a,b,f] implies f in F . [a,b] )
assume A15: f in F . [a,b] ; :: thesis: ( P1[a,b,f] & f in MonFuncs (a,b) & f in Funcs ( the carrier of a, the carrier of b) & f is monotone Function of a,b )
hence P1[a,b,f] by A13, A14; :: thesis: ( f in MonFuncs (a,b) & f in Funcs ( the carrier of a, the carrier of b) & f is monotone Function of a,b )
thus f in MonFuncs (a,b) by A13, A14, A15; :: thesis: ( f in Funcs ( the carrier of a, the carrier of b) & f is monotone Function of a,b )
then ex g being Function of a,b st
( f = g & g in Funcs ( the carrier of a, the carrier of b) & g is monotone ) by ORDERS_3:def 6;
hence ( f in Funcs ( the carrier of a, the carrier of b) & f is monotone Function of a,b ) ; :: thesis: verum
end;
assume f is monotone Function of a,b ; :: thesis: ( P1[a,b,f] implies f in F . [a,b] )
then reconsider g = f as monotone Function of a,b ;
( the carrier of b <> {} implies ( dom g = the carrier of a & rng g c= the carrier of b ) ) by FUNCT_2:def 1;
then g in Funcs ( the carrier of a, the carrier of b) by FUNCT_2:def 2;
then f in MonFuncs (a,b) by ORDERS_3:def 6;
hence ( P1[a,b,f] implies f in F . [a,b] ) by A13, A14; :: thesis: verum
end;
A16: for a, b, c being Element of F1()
for f, g being Function st f in H1(a,b) & g in H1(b,c) holds
g * f in H1(a,c)
proof
let a, b, c be Element of F1(); :: thesis: for f, g being Function st f in H1(a,b) & g in H1(b,c) holds
g * f in H1(a,c)

let f, g be Function; :: thesis: ( f in H1(a,b) & g in H1(b,c) implies g * f in H1(a,c) )
assume that
A17: f in F . [a,b] and
A18: g in F . [b,c] ; :: thesis: g * f in H1(a,c)
reconsider x = a, y = b, z = c as LATTICE by A1;
reconsider g9 = g as monotone Function of y,z by A11, A18;
reconsider f9 = f as monotone Function of x,y by A11, A17;
( P1[x,y,f9] & P1[y,z,g9] ) by A11, A17, A18;
then P1[a,c,g9 * f9] by A2;
then ( g9 * f9 is monotone Function of x,z implies g9 * f9 in F . [x,z] ) by A11;
hence g * f in H1(a,c) by YELLOW_2:12; :: thesis: verum
end;
deffunc H2( set ) -> set = D . $1;
A19: for a, b being Element of F1() holds H1(a,b) c= Funcs (H2(a),H2(b))
proof
let a, b be Element of F1(); :: thesis: H1(a,b) c= Funcs (H2(a),H2(b))
let f be set ; :: according to TARSKI:def 3 :: thesis: ( not f in H1(a,b) or f in Funcs (H2(a),H2(b)) )
reconsider x = a, y = b as LATTICE by A1;
assume f in F . [a,b] ; :: thesis: f in Funcs (H2(a),H2(b))
then f in Funcs ( the carrier of x, the carrier of y) by A11;
then f in Funcs ((D . a), the carrier of y) by A10;
hence f in Funcs (H2(a),H2(b)) by A10; :: thesis: verum
end;
A20: now
let a be Element of F1(); :: thesis: id H2(a) in H1(a,a)
reconsider x = a as LATTICE by A1;
( id (D . a) = id x & P1[x,x, id x] ) by A3, A10;
hence id H2(a) in H1(a,a) by A11; :: thesis: verum
end;
consider C being strict concrete category such that
A21: the carrier of C = F1() and
for a being object of C holds the_carrier_of a = H2(a) and
A22: for a, b being object of C holds <^a,b^> = H1(a,b) from YELLOW18:sch 16(A16, A19, A20);
take C ; :: thesis: ( C is lattice-wise & the carrier of C = F1() & ( for a, b being LATTICE
for f being monotone Function of a,b holds
( f in the Arrows of C . (a,b) iff ( a in F1() & b in F1() & P1[a,b,f] ) ) ) )

thus ( C is semi-functional & C is set-id-inheriting ) ; :: according to YELLOW21:def 4 :: thesis: ( ( for a being object of C holds a is LATTICE ) & ( for a, b being object of C
for A, B being LATTICE st A = a & B = b holds
<^a,b^> c= MonFuncs (A,B) ) & the carrier of C = F1() & ( for a, b being LATTICE
for f being monotone Function of a,b holds
( f in the Arrows of C . (a,b) iff ( a in F1() & b in F1() & P1[a,b,f] ) ) ) )

thus for a being object of C holds a is LATTICE by A1, A21; :: thesis: ( ( for a, b being object of C
for A, B being LATTICE st A = a & B = b holds
<^a,b^> c= MonFuncs (A,B) ) & the carrier of C = F1() & ( for a, b being LATTICE
for f being monotone Function of a,b holds
( f in the Arrows of C . (a,b) iff ( a in F1() & b in F1() & P1[a,b,f] ) ) ) )

thus for a, b being object of C
for A, B being LATTICE st A = a & B = b holds
<^a,b^> c= MonFuncs (A,B) :: thesis: ( the carrier of C = F1() & ( for a, b being LATTICE
for f being monotone Function of a,b holds
( f in the Arrows of C . (a,b) iff ( a in F1() & b in F1() & P1[a,b,f] ) ) ) )
proof
let a, b be object of C; :: thesis: for A, B being LATTICE st A = a & B = b holds
<^a,b^> c= MonFuncs (A,B)

let A, B be LATTICE; :: thesis: ( A = a & B = b implies <^a,b^> c= MonFuncs (A,B) )
assume A23: ( A = a & B = b ) ; :: thesis: <^a,b^> c= MonFuncs (A,B)
let f be set ; :: according to TARSKI:def 3 :: thesis: ( not f in <^a,b^> or f in MonFuncs (A,B) )
<^a,b^> = F . [A,B] by A22, A23;
hence ( not f in <^a,b^> or f in MonFuncs (A,B) ) by A11, A21, A23; :: thesis: verum
end;
thus the carrier of C = F1() by A21; :: thesis: for a, b being LATTICE
for f being monotone Function of a,b holds
( f in the Arrows of C . (a,b) iff ( a in F1() & b in F1() & P1[a,b,f] ) )

let a, b be LATTICE; :: thesis: for f being monotone Function of a,b holds
( f in the Arrows of C . (a,b) iff ( a in F1() & b in F1() & P1[a,b,f] ) )

let f be monotone Function of a,b; :: thesis: ( f in the Arrows of C . (a,b) iff ( a in F1() & b in F1() & P1[a,b,f] ) )
hereby :: thesis: ( a in F1() & b in F1() & P1[a,b,f] implies f in the Arrows of C . (a,b) )
assume A24: f in the Arrows of C . (a,b) ; :: thesis: ( a in F1() & b in F1() & P1[a,b,f] )
then [a,b] in dom the Arrows of C by FUNCT_1:def 2;
then A25: [a,b] in [:F1(),F1():] by A21, PARTFUN1:def 2;
hence ( a in F1() & b in F1() ) by ZFMISC_1:87; :: thesis: P1[a,b,f]
reconsider x = a, y = b as object of C by A21, A25, ZFMISC_1:87;
the Arrows of C . [a,b] = <^x,y^>
.= F . [x,y] by A22 ;
hence P1[a,b,f] by A11, A21, A24; :: thesis: verum
end;
assume A26: ( a in F1() & b in F1() ) ; :: thesis: ( not P1[a,b,f] or f in the Arrows of C . (a,b) )
then reconsider x = a, y = b as object of C by A21;
the Arrows of C . [a,b] = <^x,y^>
.= F . [x,y] by A22 ;
hence ( not P1[a,b,f] or f in the Arrows of C . (a,b) ) by A11, A26; :: thesis: verum