defpred S1[ object , object ] means for h being Function st h = $1 holds
$2 = [(f . (pr1 h)),(g . (pr2 h))];
set Y = [|A,B|] . rj;
set X = ([|A,B|] #) . pj;
A1:
([|A,B|] #) . pj = product ([|A,B|] * pj)
by FINSEQ_2:def 5;
A2:
for x being object st x in ([|A,B|] #) . pj holds
ex y being object st
( y in [|A,B|] . rj & S1[x,y] )
proof
let x be
object ;
( x in ([|A,B|] #) . pj implies ex y being object st
( y in [|A,B|] . rj & S1[x,y] ) )
A3:
rng pj c= I
by FINSEQ_1:def 4;
assume
x in ([|A,B|] #) . pj
;
ex y being object st
( y in [|A,B|] . rj & S1[x,y] )
then consider h1 being
Function such that A4:
h1 = x
and A5:
dom h1 = dom ([|A,B|] * pj)
and A6:
for
z being
object st
z in dom ([|A,B|] * pj) holds
h1 . z in ([|A,B|] * pj) . z
by A1, CARD_3:def 5;
A7:
dom [|A,B|] = I
by PARTFUN1:def 2;
then A8:
dom h1 = dom pj
by A5, A3, RELAT_1:27;
then A9:
dom (pr1 h1) = dom pj
by MCART_1:def 12;
dom A = I
by PARTFUN1:def 2;
then A10:
dom (pr1 h1) = dom (A * pj)
by A3, A9, RELAT_1:27;
for
z being
object st
z in dom (A * pj) holds
(pr1 h1) . z in (A * pj) . z
proof
let z be
object ;
( z in dom (A * pj) implies (pr1 h1) . z in (A * pj) . z )
assume A11:
z in dom (A * pj)
;
(pr1 h1) . z in (A * pj) . z
dom ([|A,B|] * pj) = dom pj
by A7, A3, RELAT_1:27;
then A12:
([|A,B|] * pj) . z = [|A,B|] . (pj . z)
by A9, A10, A11, FUNCT_1:12;
(
h1 . z in ([|A,B|] * pj) . z &
pj . z in rng pj )
by A5, A6, A8, A9, A10, A11, FUNCT_1:def 3;
then
h1 . z in [:(A . (pj . z)),(B . (pj . z)):]
by A3, A12, PBOOLE:def 16;
then consider a,
b being
object such that A13:
a in A . (pj . z)
and
b in B . (pj . z)
and A14:
h1 . z = [a,b]
by ZFMISC_1:def 2;
(pr1 h1) . z =
(h1 . z) `1
by A8, A9, A10, A11, MCART_1:def 12
.=
a
by A14
;
hence
(pr1 h1) . z in (A * pj) . z
by A11, A13, FUNCT_1:12;
verum
end;
then
pr1 h1 in product (A * pj)
by A10, CARD_3:9;
then
pr1 h1 in (A #) . pj
by FINSEQ_2:def 5;
then
pr1 h1 in dom f
by FUNCT_2:def 1;
then A15:
f . (pr1 h1) in rng f
by FUNCT_1:3;
take y =
[(f . (pr1 h1)),(g . (pr2 h1))];
( y in [|A,B|] . rj & S1[x,y] )
(
rng f c= A . rj &
rng g c= B . rj )
by RELAT_1:def 19;
then A16:
[:(rng f),(rng g):] c= [:(A . rj),(B . rj):]
by ZFMISC_1:96;
A17:
dom (pr2 h1) = dom pj
by A8, MCART_1:def 13;
A18:
dom B = I
by PARTFUN1:def 2;
then A19:
dom (pr2 h1) = dom (B * pj)
by A3, A17, RELAT_1:27;
A20:
for
z being
object st
z in dom (B * pj) holds
(pr2 h1) . z in (B * pj) . z
proof
let z be
object ;
( z in dom (B * pj) implies (pr2 h1) . z in (B * pj) . z )
assume A21:
z in dom (B * pj)
;
(pr2 h1) . z in (B * pj) . z
dom ([|A,B|] * pj) = dom pj
by A7, A3, RELAT_1:27;
then A22:
([|A,B|] * pj) . z = [|A,B|] . (pj . z)
by A17, A19, A21, FUNCT_1:12;
(
h1 . z in ([|A,B|] * pj) . z &
pj . z in rng pj )
by A5, A6, A8, A17, A19, A21, FUNCT_1:def 3;
then
h1 . z in [:(A . (pj . z)),(B . (pj . z)):]
by A3, A22, PBOOLE:def 16;
then consider a,
b being
object such that
a in A . (pj . z)
and A23:
b in B . (pj . z)
and A24:
h1 . z = [a,b]
by ZFMISC_1:def 2;
(pr2 h1) . z =
(h1 . z) `2
by A8, A17, A19, A21, MCART_1:def 13
.=
b
by A24
;
hence
(pr2 h1) . z in (B * pj) . z
by A21, A23, FUNCT_1:12;
verum
end;
dom (pr2 h1) = dom pj
by A8, MCART_1:def 13;
then
dom (pr2 h1) = dom (B * pj)
by A18, A3, RELAT_1:27;
then
pr2 h1 in product (B * pj)
by A20, CARD_3:9;
then
pr2 h1 in (B #) . pj
by FINSEQ_2:def 5;
then
pr2 h1 in dom g
by FUNCT_2:def 1;
then
g . (pr2 h1) in rng g
by FUNCT_1:3;
then
[(f . (pr1 h1)),(g . (pr2 h1))] in [:(rng f),(rng g):]
by A15, ZFMISC_1:87;
then
[(f . (pr1 h1)),(g . (pr2 h1))] in [:(A . rj),(B . rj):]
by A16;
hence
y in [|A,B|] . rj
by PBOOLE:def 16;
S1[x,y]
let h be
Function;
( h = x implies y = [(f . (pr1 h)),(g . (pr2 h))] )
assume
x = h
;
y = [(f . (pr1 h)),(g . (pr2 h))]
hence
y = [(f . (pr1 h)),(g . (pr2 h))]
by A4;
verum
end;
consider F being Function of (([|A,B|] #) . pj),([|A,B|] . rj) such that
A25:
for x being object st x in ([|A,B|] #) . pj holds
S1[x,F . x]
from FUNCT_2:sch 1(A2);
take
F
; for h being Function st h in ([|A,B|] #) . pj holds
F . h = [(f . (pr1 h)),(g . (pr2 h))]
thus
for h being Function st h in ([|A,B|] #) . pj holds
F . h = [(f . (pr1 h)),(g . (pr2 h))]
by A25; verum