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 ;
( x in F1() implies ex y being object st S1[x,y] )
defpred S2[
Nat]
means P1[
x,$1];
assume
x in F1()
;
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
;
S1[x,n]
thus
S1[
x,
n]
by A4;
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); verum