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