reserve A,B,C,Y,x,y,z for set, U, D for non empty set,
X for non empty Subset of D, d,d1,d2 for Element of D;
reserve P,Q,R for Relation, g for Function, p,q for FinSequence;
reserve f for BinOp of D, i,m,n for Nat;
reserve X for set, f for Function;
reserve U1,U2 for non empty set;

theorem (m+n)-tuples_on D=D-concatenation.: [:m-tuples_on D,n-tuples_on D:]
proof
reconsider m,n as Element of NAT by ORDINAL1:def 12;
set U=D, LH=(m+n)-tuples_on U, M=m-tuples_on U, N=n-tuples_on U,
C=U-concatenation, RH=C.:[:M,N:];
A1: LH=the set of all z^t where z is Tuple of m,U,  t is Tuple of n,U
by FINSEQ_2:105;
A2: dom C=[:U*,U*:] by FUNCT_2:def 1;
A3: M c= U* & N c= U* by FINSEQ_2:134;
now
let y be object; assume y in LH; then
consider Tz being Tuple of m,U, Tt being Tuple of n,U such that
A4: y=Tz^Tt by A1;
reconsider zz=Tz as Element of M by FINSEQ_2:131;
reconsider tt=Tt as Element of N by FINSEQ_2:131;
reconsider x=[zz,tt] as Element of [:M,N:];
reconsider xx=x as Element of dom C by A2, A3, ZFMISC_1:96, TARSKI:def 3;
A5: C.:{x} c= RH by RELAT_1:123;
y= C.(Tz,Tt) by A4, Lm10 .= C.x; then
y in {C.xx} by TARSKI:def 1; then y in Im(C,xx) by FUNCT_1:59;
hence y in RH by A5;
end; then
A6: LH c= RH;
now
let y be object; assume y in RH; then consider x being object such that
A7:x in dom C & x in [:M,N:] & y=C.x by FUNCT_1:def 6;
consider z,t being object such that
A8:z in M & t in N & x=[z,t] by ZFMISC_1:def 2, A7;
reconsider zz=z as Element of M by A8; reconsider tt=t as Element of N by A8;
reconsider zzz=zz, ttt=tt as FinSequence of U;
reconsider Tz=zz as Tuple of m, U; reconsider Tt=tt as Tuple of n, U;
y= C.(zzz,ttt) by A7, A8 .= Tz^Tt by Lm10;
hence y in LH by A1;
end;
then RH c= LH; hence thesis by A6;
end;
