defpred S1[ set , set ] means for h being FinSequence of [:A,B:] st $1 = h holds
$2 = [(f1 . (pr1 h)),(f2 . (pr2 h))];
set ar = (arity f1) -tuples_on [:A,B:];
set ab = { s where s is Element of [:A,B:] * : len s = arity f1 } ;
A2:
dom f1 = (arity f1) -tuples_on A
by UNIALG_2:2;
A3:
dom f2 = (arity f2) -tuples_on B
by UNIALG_2:2;
A4:
rng f1 c= A
by RELAT_1:def 19;
A5:
rng f2 c= B
by RELAT_1:def 19;
A6:
for x, y being set st x in (arity f1) -tuples_on [:A,B:] & S1[x,y] holds
y in [:A,B:]
proof
let x,
y be
set ;
:: thesis: ( x in (arity f1) -tuples_on [:A,B:] & S1[x,y] implies y in [:A,B:] )
assume A7:
(
x in (arity f1) -tuples_on [:A,B:] &
S1[
x,
y] )
;
:: thesis: y in [:A,B:]
then consider s being
Element of
[:A,B:] * such that A8:
(
x = s &
len s = arity f1 )
;
A9:
y = [(f1 . (pr1 s)),(f2 . (pr2 s))]
by A7, A8;
A10:
(
len (pr1 s) = len s &
len (pr2 s) = len s )
by Def1, Def2;
reconsider s1 =
pr1 s as
Element of
A * by FINSEQ_1:def 11;
reconsider s2 =
pr2 s as
Element of
B * by FINSEQ_1:def 11;
s1 in { s3 where s3 is Element of A * : len s3 = arity f1 }
by A8, A10;
then A11:
f1 . s1 in rng f1
by A2, FUNCT_1:def 5;
s2 in { s3 where s3 is Element of B * : len s3 = arity f2 }
by A1, A8, A10;
then
f2 . s2 in rng f2
by A3, FUNCT_1:def 5;
hence
y in [:A,B:]
by A4, A5, A9, A11, ZFMISC_1:106;
:: thesis: verum
end;
A12:
for x, y, z being set st x in (arity f1) -tuples_on [:A,B:] & S1[x,y] & S1[x,z] holds
y = z
proof
let x,
y,
z be
set ;
:: thesis: ( x in (arity f1) -tuples_on [:A,B:] & S1[x,y] & S1[x,z] implies y = z )
assume A13:
(
x in (arity f1) -tuples_on [:A,B:] &
S1[
x,
y] &
S1[
x,
z] )
;
:: thesis: y = z
then consider s being
Element of
[:A,B:] * such that A14:
(
x = s &
len s = arity f1 )
;
(
y = [(f1 . (pr1 s)),(f2 . (pr2 s))] &
z = [(f1 . (pr1 s)),(f2 . (pr2 s))] )
by A13, A14;
hence
y = z
;
:: thesis: verum
end;
consider f being PartFunc of ((arity f1) -tuples_on [:A,B:]),[:A,B:] such that
A15:
for x being set holds
( x in dom f iff ( x in (arity f1) -tuples_on [:A,B:] & ex y being set st S1[x,y] ) )
and
A16:
for x being set st x in dom f holds
S1[x,f . x]
from PARTFUN1:sch 2(A6, A12);
A17:
dom f = (arity f1) -tuples_on [:A,B:]
(arity f1) -tuples_on [:A,B:] in { (i -tuples_on [:A,B:]) where i is Element of NAT : verum }
;
then
(arity f1) -tuples_on [:A,B:] c= union { (i -tuples_on [:A,B:]) where i is Element of NAT : verum }
by ZFMISC_1:92;
then
(arity f1) -tuples_on [:A,B:] c= [:A,B:] *
by FINSEQ_2:128;
then reconsider f = f as PartFunc of ([:A,B:] * ),[:A,B:] by RELSET_1:17;
A20:
f is homogeneous
f is quasi_total
then reconsider f = f as non empty homogeneous quasi_total PartFunc of ([:A,B:] * ),[:A,B:] by A17, A20;
take
f
; :: thesis: ( dom f = (arity f1) -tuples_on [:A,B:] & ( for h being FinSequence of [:A,B:] st h in dom f holds
f . h = [(f1 . (pr1 h)),(f2 . (pr2 h))] ) )
thus
dom f = (arity f1) -tuples_on [:A,B:]
by A17; :: thesis: for h being FinSequence of [:A,B:] st h in dom f holds
f . h = [(f1 . (pr1 h)),(f2 . (pr2 h))]
let h be FinSequence of [:A,B:]; :: thesis: ( h in dom f implies f . h = [(f1 . (pr1 h)),(f2 . (pr2 h))] )
assume
h in dom f
; :: thesis: f . h = [(f1 . (pr1 h)),(f2 . (pr2 h))]
hence
f . h = [(f1 . (pr1 h)),(f2 . (pr2 h))]
by A16; :: thesis: verum