let p be FinSequence; ( p <> {} implies ex x being object ex q being FinSequence st
( p = <*x*> ^ q & len p = (len q) + 1 ) )
defpred S1[ Nat] means for p being FinSequence st p <> {} & len p = $1 holds
ex x being object ex q being FinSequence st
( p = <*x*> ^ q & len p = (len q) + 1 );
assume A1:
p <> {}
; ex x being object ex q being FinSequence st
( p = <*x*> ^ q & len p = (len q) + 1 )
now for i being Nat st ( for p being FinSequence st p <> {} & len p = i holds
ex x being object ex q being FinSequence st
( p = <*x*> ^ q & len p = (len q) + 1 ) ) holds
for p being FinSequence st p <> {} & len p = i + 1 holds
ex x being object ex q being FinSequence st
( p = <*x*> ^ q & len p = (len q) + 1 )let i be
Nat;
( ( for p being FinSequence st p <> {} & len p = i holds
ex x being object ex q being FinSequence st
( p = <*x*> ^ q & len p = (len q) + 1 ) ) implies for p being FinSequence st p <> {} & len p = i + 1 holds
ex x being object ex q being FinSequence st
( q = <*b4*> ^ b5 & len q = (len b5) + 1 ) )assume A2:
for
p being
FinSequence st
p <> {} &
len p = i holds
ex
x being
object ex
q being
FinSequence st
(
p = <*x*> ^ q &
len p = (len q) + 1 )
;
for p being FinSequence st p <> {} & len p = i + 1 holds
ex x being object ex q being FinSequence st
( q = <*b4*> ^ b5 & len q = (len b5) + 1 )let p be
FinSequence;
( p <> {} & len p = i + 1 implies ex x being object ex q being FinSequence st
( q = <*b3*> ^ b4 & len q = (len b4) + 1 ) )assume that A3:
p <> {}
and A4:
len p = i + 1
;
ex x being object ex q being FinSequence st
( q = <*b3*> ^ b4 & len q = (len b4) + 1 )consider q being
FinSequence,
y being
object such that A5:
p = q ^ <*y*>
by A3, FINSEQ_1:46;
A6:
len p = (len q) + (len <*y*>)
by A5, FINSEQ_1:22;
A7:
len <*y*> = 1
by FINSEQ_1:39;
per cases
( q = {} or q <> {} )
;
suppose
q <> {}
;
ex x being object ex q being FinSequence st
( q = <*b3*> ^ b4 & len q = (len b4) + 1 )then consider x being
object ,
r being
FinSequence such that A9:
q = <*x*> ^ r
and A10:
len q = (len r) + 1
by A2, A4, A7, A6;
A11:
len (r ^ <*y*>) = (len r) + 1
by A7, FINSEQ_1:22;
p = <*x*> ^ (r ^ <*y*>)
by A5, A9, FINSEQ_1:32;
hence
ex
x being
object ex
q being
FinSequence st
(
p = <*x*> ^ q &
len p = (len q) + 1 )
by A7, A6, A10, A11;
verum end; end; end;
then A12:
for i being Nat st S1[i] holds
S1[i + 1]
;
A13:
S1[ 0 ]
;
for i being Nat holds S1[i]
from NAT_1:sch 2(A13, A12);
hence
ex x being object ex q being FinSequence st
( p = <*x*> ^ q & len p = (len q) + 1 )
by A1; verum