let X be set ; for f1, f2 being FinSequence ex Y being Subset of NAT st
( Seq ((f1 ^ f2) | X) = (Seq (f1 | X)) ^ (Seq (f2 | Y)) & ( for n being Nat st n > 0 holds
( n in Y iff n + (len f1) in X /\ (dom (f1 ^ f2)) ) ) )
let f1, f2 be FinSequence; ex Y being Subset of NAT st
( Seq ((f1 ^ f2) | X) = (Seq (f1 | X)) ^ (Seq (f2 | Y)) & ( for n being Nat st n > 0 holds
( n in Y iff n + (len f1) in X /\ (dom (f1 ^ f2)) ) ) )
set f12 = f1 ^ f2;
set n1 = len f1;
set n2 = len f2;
set X12 = X /\ (dom (f1 ^ f2));
set X1 = (X /\ (dom (f1 ^ f2))) /\ (Seg (len f1));
set X2 = (X /\ (dom (f1 ^ f2))) \ (Seg (len f1));
set Y2 = { i where i is Element of NAT : i + (len f1) in (X /\ (dom (f1 ^ f2))) \ (Seg (len f1)) } ;
{ i where i is Element of NAT : i + (len f1) in (X /\ (dom (f1 ^ f2))) \ (Seg (len f1)) } c= NAT
then reconsider Y2 = { i where i is Element of NAT : i + (len f1) in (X /\ (dom (f1 ^ f2))) \ (Seg (len f1)) } as Subset of NAT ;
set Sf2 = (len f1) Shift f2;
A1:
f1 ^ f2 = f1 \/ ((len f1) Shift f2)
by VALUED_1:49;
take
Y2
; ( Seq ((f1 ^ f2) | X) = (Seq (f1 | X)) ^ (Seq (f2 | Y2)) & ( for n being Nat st n > 0 holds
( n in Y2 iff n + (len f1) in X /\ (dom (f1 ^ f2)) ) ) )
A2:
(X /\ (dom (f1 ^ f2))) /\ (dom ((len f1) Shift f2)) c= (X /\ (dom (f1 ^ f2))) \ (Seg (len f1))
( f1 | ((X /\ (dom (f1 ^ f2))) /\ (Seg (len f1))) c= f1 & f2 | Y2 c= f2 )
by RELAT_1:59;
then consider ss being FinSubsequence such that
A9:
( ss = (f1 | ((X /\ (dom (f1 ^ f2))) /\ (Seg (len f1)))) \/ ((len f1) Shift (f2 | Y2)) & (Seq (f1 | ((X /\ (dom (f1 ^ f2))) /\ (Seg (len f1))))) ^ (Seq (f2 | Y2)) = Seq ss )
by VALUED_1:64;
A10:
dom f1 = Seg (len f1)
by FINSEQ_1:def 3;
then
(dom (f1 ^ f2)) /\ (Seg (len f1)) = Seg (len f1)
by FINSEQ_1:26, XBOOLE_1:28;
then A11: f1 | X =
f1 | (X /\ ((dom (f1 ^ f2)) /\ (Seg (len f1))))
by A10, RELAT_1:157
.=
f1 | ((X /\ (dom (f1 ^ f2))) /\ (Seg (len f1)))
by XBOOLE_1:16
;
(X /\ (dom (f1 ^ f2))) \ (Seg (len f1)) c= (X /\ (dom (f1 ^ f2))) /\ (dom ((len f1) Shift f2))
then A16:
(X /\ (dom (f1 ^ f2))) \ (Seg (len f1)) = (X /\ (dom (f1 ^ f2))) /\ (dom ((len f1) Shift f2))
by A2;
(f1 ^ f2) | X = (f1 ^ f2) | (X /\ (dom (f1 ^ f2)))
by RELAT_1:157;
then (f1 ^ f2) | X =
(f1 ^ f2) * (id (X /\ (dom (f1 ^ f2))))
by RELAT_1:65
.=
(f1 * (id (X /\ (dom (f1 ^ f2))))) \/ (((len f1) Shift f2) * (id (X /\ (dom (f1 ^ f2)))))
by A1, RELAT_1:32
.=
(f1 | (X /\ (dom (f1 ^ f2)))) \/ (((len f1) Shift f2) * (id (X /\ (dom (f1 ^ f2)))))
by RELAT_1:65
.=
(f1 | (X /\ (dom (f1 ^ f2)))) \/ (((len f1) Shift f2) | (X /\ (dom (f1 ^ f2))))
by RELAT_1:65
.=
(f1 | (X /\ (dom (f1 ^ f2)))) \/ (((len f1) Shift f2) | ((X /\ (dom (f1 ^ f2))) \ (Seg (len f1))))
by A16, RELAT_1:157
.=
(f1 | ((X /\ (dom (f1 ^ f2))) /\ (Seg (len f1)))) \/ (((len f1) Shift f2) | ((X /\ (dom (f1 ^ f2))) \ (Seg (len f1))))
by A10, RELAT_1:157
;
hence
Seq ((f1 ^ f2) | X) = (Seq (f1 | X)) ^ (Seq (f2 | Y2))
by A7, A11, A9, Th11; for n being Nat st n > 0 holds
( n in Y2 iff n + (len f1) in X /\ (dom (f1 ^ f2)) )
let n be Nat; ( n > 0 implies ( n in Y2 iff n + (len f1) in X /\ (dom (f1 ^ f2)) ) )
assume
n > 0
; ( n in Y2 iff n + (len f1) in X /\ (dom (f1 ^ f2)) )
then
n + (len f1) > 0 + (len f1)
by XREAL_1:6;
then A17:
not n + (len f1) in Seg (len f1)
by FINSEQ_1:1;
assume
n + (len f1) in X /\ (dom (f1 ^ f2))
; n in Y2
then
n + (len f1) in (X /\ (dom (f1 ^ f2))) \ (Seg (len f1))
by A17, XBOOLE_0:def 5;
hence
n in Y2
by A7; verum