defpred S1[ object , object ] means for x, y being object st $1 = [x,y] holds
P1[x,y,$2];
set D = [:F1(),F2():];
A3:
for p being object st p in [:F1(),F2():] holds
ex z being object st S1[p,z]
proof
let p be
object ;
( p in [:F1(),F2():] implies ex z being object st S1[p,z] )
assume
p in [:F1(),F2():]
;
ex z being object st S1[p,z]
then consider x1,
y1 being
object such that A4:
(
x1 in F1() &
y1 in F2() )
and A5:
p = [x1,y1]
by ZFMISC_1:def 2;
consider z being
object such that A6:
P1[
x1,
y1,
z]
by A2, A4;
take
z
;
S1[p,z]
let x,
y be
object ;
( p = [x,y] implies P1[x,y,z] )
assume A7:
p = [x,y]
;
P1[x,y,z]
then
x = x1
by A5, XTUPLE_0:1;
hence
P1[
x,
y,
z]
by A5, A6, A7, XTUPLE_0:1;
verum
end;
A8:
for p, y1, y2 being object st p in [:F1(),F2():] & S1[p,y1] & S1[p,y2] holds
y1 = y2
proof
let p,
y1,
y2 be
object ;
( p in [:F1(),F2():] & S1[p,y1] & S1[p,y2] implies y1 = y2 )
assume
p in [:F1(),F2():]
;
( not S1[p,y1] or not S1[p,y2] or y1 = y2 )
then consider x1,
x2 being
object such that A9:
(
x1 in F1() &
x2 in F2() )
and A10:
p = [x1,x2]
by ZFMISC_1:def 2;
assume
( ( for
x,
y being
object st
p = [x,y] holds
P1[
x,
y,
y1] ) & ( for
x,
y being
object st
p = [x,y] holds
P1[
x,
y,
y2] ) )
;
y1 = y2
then
(
P1[
x1,
x2,
y1] &
P1[
x1,
x2,
y2] )
by A10;
hence
y1 = y2
by A1, A9;
verum
end;
consider f being Function such that
A11:
dom f = [:F1(),F2():]
and
A12:
for p being object st p in [:F1(),F2():] holds
S1[p,f . p]
from FUNCT_1:sch 2(A8, A3);
take
f
; ( dom f = [:F1(),F2():] & ( for x, y being object st x in F1() & y in F2() holds
P1[x,y,f . (x,y)] ) )
thus
dom f = [:F1(),F2():]
by A11; for x, y being object st x in F1() & y in F2() holds
P1[x,y,f . (x,y)]
let x, y be object ; ( x in F1() & y in F2() implies P1[x,y,f . (x,y)] )
assume
( x in F1() & y in F2() )
; P1[x,y,f . (x,y)]
then
[x,y] in [:F1(),F2():]
by ZFMISC_1:def 2;
hence
P1[x,y,f . (x,y)]
by A12; verum