defpred S1[ set ] means ex q being FinSequence of S ex r being Element of S ^^ (len q) st
( q = $1 & decomp (S,(len q),r) = q );
A1:
S1[ <*> S]
A10:
for s being FinSequence of S
for t being Element of S st S1[s] holds
S1[s ^ <*t*>]
proof
let s be
FinSequence of
S;
for t being Element of S st S1[s] holds
S1[s ^ <*t*>]let t be
Element of
S;
( S1[s] implies S1[s ^ <*t*>] )
set n =
len s;
set q =
s ^ <*t*>;
assume A11:
S1[
s]
;
S1[s ^ <*t*>]
take
s ^ <*t*>
;
ex r being Element of S ^^ (len (s ^ <*t*>)) st
( s ^ <*t*> = s ^ <*t*> & decomp (S,(len (s ^ <*t*>)),r) = s ^ <*t*> )
consider q1 being
FinSequence of
S such that A12:
ex
r1 being
Element of
S ^^ (len q1) st
(
q1 = s &
decomp (
S,
(len q1),
r1)
= q1 )
by A11;
consider r1 being
Element of
S ^^ (len q1) such that A13:
q1 = s
and A14:
decomp (
S,
(len q1),
r1)
= q1
by A12;
set r =
r1 ^ t;
A15:
len (s ^ <*t*>) =
(len s) + (len <*t*>)
by FINSEQ_1:22
.=
(len s) + 1
by FINSEQ_1:39
;
r1 ^ t in (S ^^ (len s)) ^ S
by A13, Def2;
then reconsider r =
r1 ^ t as
Element of
S ^^ (len (s ^ <*t*>)) by A15, Th6;
take
r
;
( s ^ <*t*> = s ^ <*t*> & decomp (S,(len (s ^ <*t*>)),r) = s ^ <*t*> )
thus
s ^ <*t*> = s ^ <*t*>
;
decomp (S,(len (s ^ <*t*>)),r) = s ^ <*t*>
set q2 =
decomp (
S,
(len (s ^ <*t*>)),
r);
A20:
len (decomp (S,(len (s ^ <*t*>)),r)) = len (s ^ <*t*>)
by Th62;
for
k being
Nat st 1
<= k &
k <= len (s ^ <*t*>) holds
(s ^ <*t*>) . k = (decomp (S,(len (s ^ <*t*>)),r)) . k
proof
let k be
Nat;
( 1 <= k & k <= len (s ^ <*t*>) implies (s ^ <*t*>) . k = (decomp (S,(len (s ^ <*t*>)),r)) . k )
assume that A21:
1
<= k
and A22:
k <= len (s ^ <*t*>)
;
(s ^ <*t*>) . k = (decomp (S,(len (s ^ <*t*>)),r)) . k
k in Seg (len (s ^ <*t*>))
by A21, A22, FINSEQ_1:1;
then consider i being
Nat such that A23:
k = i + 1
and A24:
(decomp (S,(len (s ^ <*t*>)),r)) . k = S -head ((S ^^ i) -tail r)
by Def32;
per cases
( k <= len s or k > len s )
;
suppose A30:
k <= len s
;
(s ^ <*t*>) . k = (decomp (S,(len (s ^ <*t*>)),r)) . kthen A31:
k in Seg (len s)
by A21, FINSEQ_1:1;
then consider j being
Nat such that A32:
k = j + 1
and A33:
q1 . k = S -head ((S ^^ j) -tail r1)
by A13, A14, Def32;
A34:
k in dom s
by A31, FINSEQ_1:def 3;
A35:
(
r1 is
S ^^ i -headed &
(S ^^ i) -tail r1 is
S -headed )
by A13, A23, A30, Th57;
then A36:
(S ^^ i) -tail r = ((S ^^ i) -tail r1) ^ t
by Th56;
thus (s ^ <*t*>) . k =
S -head ((S ^^ i) -tail r1)
by A13, A23, A32, A33, A34, FINSEQ_1:def 7
.=
(decomp (S,(len (s ^ <*t*>)),r)) . k
by A24, A35, A36, Th56
;
verum end; end;
end;
hence
decomp (
S,
(len (s ^ <*t*>)),
r)
= s ^ <*t*>
by A20;
verum
end;
for q being FinSequence of S holds S1[q]
from FINSEQ_2:sch 2(A1, A10);
then
S1[p]
;
hence
ex b1 being Element of S ^^ (len p) st decomp (S,(len p),b1) = p
; verum