defpred S1[ object , object ] means for X being set st $1 = X holds
$2 = f .: X;
A1:
for x being object st x in bool (dom f) holds
ex y being object st S1[x,y]
A2:
for x, y1, y2 being object st x in bool (dom f) & S1[x,y1] & S1[x,y2] holds
y1 = y2
proof
let x,
y1,
y2 be
object ;
( x in bool (dom f) & S1[x,y1] & S1[x,y2] implies y1 = y2 )
assume that
x in bool (dom f)
and A3:
for
X being
set st
x = X holds
y1 = f .: X
and A4:
for
X being
set st
x = X holds
y2 = f .: X
;
y1 = y2
reconsider x =
x as
set by TARSKI:1;
thus y1 =
f .: x
by A3
.=
y2
by A4
;
verum
end;
consider g being Function such that
A5:
( dom g = bool (dom f) & ( for x being object st x in bool (dom f) holds
S1[x,g . x] ) )
from FUNCT_1:sch 2(A2, A1);
take
g
; ( dom g = bool (dom f) & ( for X being set st X c= dom f holds
g . X = f .: X ) )
thus
( dom g = bool (dom f) & ( for X being set st X c= dom f holds
g . X = f .: X ) )
by A5; verum