defpred S1[ object , object ] means for c being Element of F1()
for t being Element of F2() st $1 = [c,t] holds
( ( P1[c,t] implies $2 = F4(c,t) ) & ( P2[c,t] implies $2 = F5(c,t) ) );
defpred S2[ object ] means for c being Element of F1()
for d being Element of F2() holds
( not $1 = [c,d] or P1[c,d] or P2[c,d] );
consider F being set such that
A2:
for z being object holds
( z in F iff ( z in [:F1(),F2():] & S2[z] ) )
from XBOOLE_0:sch 1();
A3:
for x1 being object st x1 in F holds
ex z being object st S1[x1,z]
proof
let x1 be
object ;
( x1 in F implies ex z being object st S1[x1,z] )
assume A4:
x1 in F
;
ex z being object st S1[x1,z]
then
x1 in [:F1(),F2():]
by A2;
then consider f9,
g9 being
object such that A5:
f9 in F1()
and A6:
g9 in F2()
and A7:
x1 = [f9,g9]
by ZFMISC_1:def 2;
reconsider g9 =
g9 as
Element of
F2()
by A6;
reconsider f9 =
f9 as
Element of
F1()
by A5;
now ex z being Element of F3() st
for p being Element of F1()
for d being Element of F2() st x1 = [p,d] holds
( ( P1[p,d] implies z = F4(p,d) ) & ( P2[p,d] implies z = F5(p,d) ) )per cases
( P1[f9,g9] or P2[f9,g9] )
by A2, A4, A7;
suppose A8:
P1[
f9,
g9]
;
ex z being Element of F3() st
for p being Element of F1()
for d being Element of F2() st x1 = [p,d] holds
( ( P1[p,d] implies z = F4(p,d) ) & ( P2[p,d] implies z = F5(p,d) ) )take z =
F4(
f9,
g9);
for p being Element of F1()
for d being Element of F2() st x1 = [p,d] holds
( ( P1[p,d] implies z = F4(p,d) ) & ( P2[p,d] implies z = F5(p,d) ) )let p be
Element of
F1();
for d being Element of F2() st x1 = [p,d] holds
( ( P1[p,d] implies z = F4(p,d) ) & ( P2[p,d] implies z = F5(p,d) ) )let d be
Element of
F2();
( x1 = [p,d] implies ( ( P1[p,d] implies z = F4(p,d) ) & ( P2[p,d] implies z = F5(p,d) ) ) )assume
x1 = [p,d]
;
( ( P1[p,d] implies z = F4(p,d) ) & ( P2[p,d] implies z = F5(p,d) ) )then
(
f9 = p &
g9 = d )
by A7, XTUPLE_0:1;
hence
( (
P1[
p,
d] implies
z = F4(
p,
d) ) & (
P2[
p,
d] implies
z = F5(
p,
d) ) )
by A1, A8;
verum end; suppose A9:
P2[
f9,
g9]
;
ex z being Element of F3() st
for r being Element of F1()
for d being Element of F2() st x1 = [r,d] holds
( ( P1[r,d] implies z = F4(r,d) ) & ( P2[r,d] implies z = F5(r,d) ) )take z =
F5(
f9,
g9);
for r being Element of F1()
for d being Element of F2() st x1 = [r,d] holds
( ( P1[r,d] implies z = F4(r,d) ) & ( P2[r,d] implies z = F5(r,d) ) )let r be
Element of
F1();
for d being Element of F2() st x1 = [r,d] holds
( ( P1[r,d] implies z = F4(r,d) ) & ( P2[r,d] implies z = F5(r,d) ) )let d be
Element of
F2();
( x1 = [r,d] implies ( ( P1[r,d] implies z = F4(r,d) ) & ( P2[r,d] implies z = F5(r,d) ) ) )assume
x1 = [r,d]
;
( ( P1[r,d] implies z = F4(r,d) ) & ( P2[r,d] implies z = F5(r,d) ) )then
(
f9 = r &
g9 = d )
by A7, XTUPLE_0:1;
hence
( (
P1[
r,
d] implies
z = F4(
r,
d) ) & (
P2[
r,
d] implies
z = F5(
r,
d) ) )
by A1, A9;
verum end; end; end;
hence
ex
z being
object st
S1[
x1,
z]
;
verum
end;
consider f being Function such that
A10:
( dom f = F & ( for z being object st z in F holds
S1[z,f . z] ) )
from CLASSES1:sch 1(A3);
A11:
rng f c= F3()
F c= [:F1(),F2():]
by A2;
then reconsider f = f as PartFunc of [:F1(),F2():],F3() by A10, A11, RELSET_1:4;
take
f
; ( ( for c being Element of F1()
for d being Element of F2() holds
( [c,d] in dom f iff ( P1[c,d] or P2[c,d] ) ) ) & ( for c being Element of F1()
for d being Element of F2() st [c,d] in dom f holds
( ( P1[c,d] implies f . [c,d] = F4(c,d) ) & ( P2[c,d] implies f . [c,d] = F5(c,d) ) ) ) )
thus
for c being Element of F1()
for h being Element of F2() holds
( [c,h] in dom f iff ( P1[c,h] or P2[c,h] ) )
for c being Element of F1()
for d being Element of F2() st [c,d] in dom f holds
( ( P1[c,d] implies f . [c,d] = F4(c,d) ) & ( P2[c,d] implies f . [c,d] = F5(c,d) ) )proof
let c be
Element of
F1();
for h being Element of F2() holds
( [c,h] in dom f iff ( P1[c,h] or P2[c,h] ) )let g be
Element of
F2();
( [c,g] in dom f iff ( P1[c,g] or P2[c,g] ) )
thus
( not
[c,g] in dom f or
P1[
c,
g] or
P2[
c,
g] )
by A2, A10;
( ( P1[c,g] or P2[c,g] ) implies [c,g] in dom f )
assume A17:
(
P1[
c,
g] or
P2[
c,
g] )
;
[c,g] in dom f
A18:
now for h9 being Element of F1()
for j9 being Element of F2() holds
( not [c,g] = [h9,j9] or P1[h9,j9] or P2[h9,j9] )let h9 be
Element of
F1();
for j9 being Element of F2() holds
( not [c,g] = [h9,j9] or P1[h9,j9] or P2[h9,j9] )let j9 be
Element of
F2();
( not [c,g] = [h9,j9] or P1[h9,j9] or P2[h9,j9] )assume A19:
[c,g] = [h9,j9]
;
( P1[h9,j9] or P2[h9,j9] )then
c = h9
by XTUPLE_0:1;
hence
(
P1[
h9,
j9] or
P2[
h9,
j9] )
by A17, A19, XTUPLE_0:1;
verum end;
[c,g] in [:F1(),F2():]
by ZFMISC_1:87;
hence
[c,g] in dom f
by A2, A10, A18;
verum
end;
let c be Element of F1(); for d being Element of F2() st [c,d] in dom f holds
( ( P1[c,d] implies f . [c,d] = F4(c,d) ) & ( P2[c,d] implies f . [c,d] = F5(c,d) ) )
let d be Element of F2(); ( [c,d] in dom f implies ( ( P1[c,d] implies f . [c,d] = F4(c,d) ) & ( P2[c,d] implies f . [c,d] = F5(c,d) ) ) )
assume
[c,d] in dom f
; ( ( P1[c,d] implies f . [c,d] = F4(c,d) ) & ( P2[c,d] implies f . [c,d] = F5(c,d) ) )
hence
( ( P1[c,d] implies f . [c,d] = F4(c,d) ) & ( P2[c,d] implies f . [c,d] = F5(c,d) ) )
by A10; verum