deffunc H1( Element of Funcs (DISJOINT_PAIRS A),[A]) -> set = [{ ($1 . s1) where s1 is Element of DISJOINT_PAIRS A : ( $1 . s1 in s1 `2 & s1 in B ) } ,{ ($1 . s2) where s2 is Element of DISJOINT_PAIRS A : ( $1 . s2 in s2 `1 & s2 in B ) } ];
set N = { H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : for s being Element of DISJOINT_PAIRS A st s in B holds
g . s in (s `1 ) \/ (s `2 ) } ;
set N' = { H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : g .: B c= union { ((s `1 ) \/ (s `2 )) where s is Element of DISJOINT_PAIRS A : s in B } } ;
set M = (DISJOINT_PAIRS A) /\ { H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : for s being Element of DISJOINT_PAIRS A st s in B holds
g . s in (s `1 ) \/ (s `2 ) } ;
defpred S1[ Function] means for s being Element of DISJOINT_PAIRS A st s in B holds
$1 . s in (s `1 ) \/ (s `2 );
defpred S2[ Function] means $1 .: B c= union { ((s `1 ) \/ (s `2 )) where s is Element of DISJOINT_PAIRS A : s in B } ;
A1:
for g being Element of Funcs (DISJOINT_PAIRS A),[A] st S1[g] holds
S2[g]
A7:
{ H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : S1[g] } c= { H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : S2[g] }
from FRAENKEL:sch 1(A1);
A8:
B is finite
;
deffunc H2( set ) -> set = ($1 `1 ) \/ ($1 `2 );
A9:
{ H2(s) where s is Element of DISJOINT_PAIRS A : s in B } is finite
from FRAENKEL:sch 21(A8);
then A10:
union { ((s `1 ) \/ (s `2 )) where s is Element of DISJOINT_PAIRS A : s in B } is finite
by A9, FINSET_1:25;
A16:
(DISJOINT_PAIRS A) /\ { H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : for s being Element of DISJOINT_PAIRS A st s in B holds
g . s in (s `1 ) \/ (s `2 ) } c= DISJOINT_PAIRS A
by XBOOLE_1:17;
{ H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : g .: B c= union { ((s `1 ) \/ (s `2 )) where s is Element of DISJOINT_PAIRS A : s in B } } is finite
from FRAENKEL:sch 25(A8, A10, A11);
then
{ H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : for s being Element of DISJOINT_PAIRS A st s in B holds
g . s in (s `1 ) \/ (s `2 ) } is finite
by A7;
then
(DISJOINT_PAIRS A) /\ { H1(g) where g is Element of Funcs (DISJOINT_PAIRS A),[A] : for s being Element of DISJOINT_PAIRS A st s in B holds
g . s in (s `1 ) \/ (s `2 ) } is finite
;
hence
(DISJOINT_PAIRS A) /\ { [{ (g . t1) where t1 is Element of DISJOINT_PAIRS A : ( g . t1 in t1 `2 & t1 in B ) } ,{ (g . t2) where t2 is Element of DISJOINT_PAIRS A : ( g . t2 in t2 `1 & t2 in B ) } ] where g is Element of Funcs (DISJOINT_PAIRS A),[A] : for s being Element of DISJOINT_PAIRS A st s in B holds
g . s in (s `1 ) \/ (s `2 ) } is Element of Fin (DISJOINT_PAIRS A)
by A16, FINSUB_1:def 5; :: thesis: verum