defpred S1[ object , object ] means ex n being Nat st
( $2 = n & P1[$1,n] & ( for m being Nat st P1[$1,m] holds
n <= m ) );
A2: for x being object st x in F1() holds
ex y being object st S1[x,y]
proof
let x be object ; :: thesis: ( x in F1() implies ex y being object st S1[x,y] )
defpred S2[ Nat] means P1[x,$1];
assume x in F1() ; :: thesis: ex y being object st S1[x,y]
then ex n being Nat st S2[n] by A1;
then A3: ex n being Nat st S2[n] ;
consider n being Nat such that
A4: ( S2[n] & ( for m being Nat st S2[m] holds
n <= m ) ) from NAT_1:sch 5(A3);
take n ; :: thesis: S1[x,n]
thus S1[x,n] by A4; :: thesis: verum
end;
thus ex f being Function st
( dom f = F1() & ( for x being object st x in F1() holds
S1[x,f . x] ) ) from CLASSES1:sch 1(A2); :: thesis: verum