defpred S1[ set , set , set , set ] means ( P2[$1,$2,$3] & not $1 in union $4 );
consider f being Function of NAT,(bool (bool F1())) such that
A1:
f . 0 = F2()
and
A2:
for n being Element of NAT holds f . (n + 1) = { (union { F3(c,n) where c is Element of F1() : for fq being Subset-Family of F1()
for q being Element of NAT st q <= n & fq = f . q holds
S1[c,V,n,fq] } ) where V is Subset of F1() : P1[V] }
from PCOMPS_2:sch 2();
take
f
; ( f . 0 = F2() & ( for n being Element of NAT holds f . (n + 1) = { (union { F3(c,n) where c is Element of F1() : ( P2[c,V,n] & not c in union { (union (f . q)) where q is Element of NAT : q <= n } ) } ) where V is Subset of F1() : P1[V] } ) )
thus
f . 0 = F2()
by A1; for n being Element of NAT holds f . (n + 1) = { (union { F3(c,n) where c is Element of F1() : ( P2[c,V,n] & not c in union { (union (f . q)) where q is Element of NAT : q <= n } ) } ) where V is Subset of F1() : P1[V] }
let n be Element of NAT ; f . (n + 1) = { (union { F3(c,n) where c is Element of F1() : ( P2[c,V,n] & not c in union { (union (f . q)) where q is Element of NAT : q <= n } ) } ) where V is Subset of F1() : P1[V] }
deffunc H1( set ) -> set = union { F3(c,n) where c is Element of F1() : for fq being Subset-Family of F1()
for q being Element of NAT st q <= n & fq = f . q holds
( P2[c,$1,n] & not c in union fq ) } ;
deffunc H2( set ) -> set = union { F3(c,n) where c is Element of F1() : ( P2[c,$1,n] & not c in union { (union (f . q)) where q is Element of NAT : q <= n } ) } ;
set fxxx1 = { H1(V) where V is Subset of F1() : P1[V] } ;
set fxxx = { H2(V) where V is Subset of F1() : P1[V] } ;
{ H1(V) where V is Subset of F1() : P1[V] } = { H2(V) where V is Subset of F1() : P1[V] }
from FRAENKEL:sch 6(A3);
hence
f . (n + 1) = { (union { F3(c,n) where c is Element of F1() : ( P2[c,V,n] & not c in union { (union (f . q)) where q is Element of NAT : q <= n } ) } ) where V is Subset of F1() : P1[V] }
by A2; verum