defpred S1[ object , object ] means ( ( P1[$1] implies $2 = F2($1) ) & ( P1[$1] implies $2 = F3($1) ) );
A1:
now for i being object st i in F1() holds
ex j being object st S1[i,j]let i be
object ;
( i in F1() implies ex j being object st S1[i,j] )assume
i in F1()
;
ex j being object st S1[i,j]thus
ex
j being
object st
S1[
i,
j]
verumproof
per cases
( P1[i] or not P1[i] )
;
suppose A2:
P1[
i]
;
ex j being object st S1[i,j]take
F2(
i)
;
S1[i,F2(i)]thus
S1[
i,
F2(
i)]
by A2;
verum end; suppose A3:
P1[
i]
;
ex j being object st S1[i,j]take
F3(
i)
;
S1[i,F3(i)]thus
S1[
i,
F3(
i)]
by A3;
verum end; end;
end; end;
consider f being ManySortedSet of F1() such that
A4:
for i being object st i in F1() holds
S1[i,f . i]
from PBOOLE:sch 3(A1);
take
f
; for i being Element of F1() st i in F1() holds
( ( P1[i] implies f . i = F2(i) ) & ( P1[i] implies f . i = F3(i) ) )
thus
for i being Element of F1() st i in F1() holds
( ( P1[i] implies f . i = F2(i) ) & ( P1[i] implies f . i = F3(i) ) )
by A4; verum