let X, Y be non-empty non empty FinSequence; ex I being Function of [:(product X),(product Y):],(product (X ^ Y)) st
( I is one-to-one & I is onto & ( for x, y being FinSequence st x in product X & y in product Y holds
I . (x,y) = x ^ y ) )
defpred S1[ object , object , object ] means ex x, y being FinSequence st
( x = $1 & y = $2 & $3 = x ^ y );
A1:
for x, y being object st x in product X & y in product Y holds
ex z being object st
( z in product (X ^ Y) & S1[x,y,z] )
proof
let x,
y be
object ;
( x in product X & y in product Y implies ex z being object st
( z in product (X ^ Y) & S1[x,y,z] ) )
assume A2:
(
x in product X &
y in product Y )
;
ex z being object st
( z in product (X ^ Y) & S1[x,y,z] )
then consider g being
Function such that A3:
(
x = g &
dom g = dom X & ( for
z being
object st
z in dom X holds
g . z in X . z ) )
by CARD_3:def 5;
A4:
dom g = Seg (len X)
by A3, FINSEQ_1:def 3;
then reconsider g =
g as
FinSequence by FINSEQ_1:def 2;
consider h being
Function such that A5:
(
y = h &
dom h = dom Y & ( for
z being
object st
z in dom Y holds
h . z in Y . z ) )
by A2, CARD_3:def 5;
A6:
dom h = Seg (len Y)
by A5, FINSEQ_1:def 3;
then reconsider h =
h as
FinSequence by FINSEQ_1:def 2;
A7:
(
len g = len X &
len h = len Y )
by A4, A6, FINSEQ_1:def 3;
A8:
dom (g ^ h) =
Seg ((len g) + (len h))
by FINSEQ_1:def 7
.=
Seg (len (X ^ Y))
by A7, FINSEQ_1:22
.=
dom (X ^ Y)
by FINSEQ_1:def 3
;
for
z being
object st
z in dom (X ^ Y) holds
(g ^ h) . z in (X ^ Y) . z
then
g ^ h in product (X ^ Y)
by A8, CARD_3:9;
hence
ex
z being
object st
(
z in product (X ^ Y) &
S1[
x,
y,
z] )
by A3, A5;
verum
end;
consider I being Function of [:(product X),(product Y):],(product (X ^ Y)) such that
A14:
for x, y being object st x in product X & y in product Y holds
S1[x,y,I . (x,y)]
from BINOP_1:sch 1(A1);
A15:
for x, y being FinSequence st x in product X & y in product Y holds
I . (x,y) = x ^ y
now for z1, z2 being object st z1 in [:(product X),(product Y):] & z2 in [:(product X),(product Y):] & I . z1 = I . z2 holds
z1 = z2let z1,
z2 be
object ;
( z1 in [:(product X),(product Y):] & z2 in [:(product X),(product Y):] & I . z1 = I . z2 implies z1 = z2 )assume A16:
(
z1 in [:(product X),(product Y):] &
z2 in [:(product X),(product Y):] &
I . z1 = I . z2 )
;
z1 = z2consider x1,
y1 being
object such that A17:
(
x1 in product X &
y1 in product Y &
z1 = [x1,y1] )
by A16, ZFMISC_1:def 2;
consider x2,
y2 being
object such that A18:
(
x2 in product X &
y2 in product Y &
z2 = [x2,y2] )
by A16, ZFMISC_1:def 2;
consider xx1,
yy1 being
FinSequence such that A19:
(
xx1 = x1 &
yy1 = y1 &
I . (
x1,
y1)
= xx1 ^ yy1 )
by A14, A17;
consider xx2,
yy2 being
FinSequence such that A20:
(
xx2 = x2 &
yy2 = y2 &
I . (
x2,
y2)
= xx2 ^ yy2 )
by A14, A18;
A21:
dom xx1 =
dom X
by A17, A19, CARD_3:9
.=
dom xx2
by A18, A20, CARD_3:9
;
xx1 =
(xx1 ^ yy1) | (dom xx1)
by FINSEQ_1:21
.=
xx2
by A16, A17, A18, A19, A20, A21, FINSEQ_1:21
;
hence
z1 = z2
by A16, A17, A18, A19, A20, FINSEQ_1:33;
verum end;
then A22:
I is one-to-one
by FUNCT_2:19;
now for w being object st w in product (X ^ Y) holds
w in rng Ilet w be
object ;
( w in product (X ^ Y) implies w in rng I )assume
w in product (X ^ Y)
;
w in rng Ithen consider g being
Function such that A23:
(
w = g &
dom g = dom (X ^ Y) & ( for
i being
object st
i in dom (X ^ Y) holds
g . i in (X ^ Y) . i ) )
by CARD_3:def 5;
A24:
dom g = Seg (len (X ^ Y))
by A23, FINSEQ_1:def 3;
then reconsider g =
g as
FinSequence by FINSEQ_1:def 2;
set x =
g | (len X);
set y =
g /^ (len X);
A26:
(g | (len X)) ^ (g /^ (len X)) = g
by RFINSEQ:8;
A27:
len (X ^ Y) = (len X) + (len Y)
by FINSEQ_1:22;
then A28:
len X <= len (X ^ Y)
by NAT_1:11;
A29:
len g = len (X ^ Y)
by A24, FINSEQ_1:def 3;
then
len (g | (len X)) = len X
by A27, FINSEQ_1:59, NAT_1:11;
then A30:
dom (g | (len X)) =
Seg (len X)
by FINSEQ_1:def 3
.=
dom X
by FINSEQ_1:def 3
;
for
z being
object st
z in dom X holds
(g | (len X)) . z in X . z
then A34:
g | (len X) in product X
by A30, CARD_3:9;
dom (g | (len X)) = Seg (len X)
by A30, FINSEQ_1:def 3;
then A35:
len (g | (len X)) = len X
by FINSEQ_1:def 3;
len (g /^ (len X)) =
(len g) - (len X)
by A28, A29, RFINSEQ:def 1
.=
len Y
by A29, A27
;
then
Seg (len (g /^ (len X))) = dom Y
by FINSEQ_1:def 3;
then A36:
dom (g /^ (len X)) = dom Y
by FINSEQ_1:def 3;
for
z being
object st
z in dom Y holds
(g /^ (len X)) . z in Y . z
then A39:
g /^ (len X) in product Y
by A36, CARD_3:9;
reconsider z =
[(g | (len X)),(g /^ (len X))] as
Element of
[:(product X),(product Y):] by A34, A39, ZFMISC_1:87;
w =
I . (
(g | (len X)),
(g /^ (len X)))
by A23, A26, A15, A34, A39
.=
I . z
;
hence
w in rng I
by FUNCT_2:112;
verum end;
then
product (X ^ Y) c= rng I
by TARSKI:def 3;
then
product (X ^ Y) = rng I
by XBOOLE_0:def 10;
then
I is onto
by FUNCT_2:def 3;
hence
ex I being Function of [:(product X),(product Y):],(product (X ^ Y)) st
( I is one-to-one & I is onto & ( for x, y being FinSequence st x in product X & y in product Y holds
I . (x,y) = x ^ y ) )
by A15, A22; verum