MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  clwwlkel Structured version   Unicode version

Theorem clwwlkel 24497
Description: Obtaining a closed walk (as word) by appending the first symbol to the word representing a walk. (Contributed by AV, 28-Sep-2018.) (Proof shortened by AV, 20-Oct-2018.)
Hypothesis
Ref Expression
clwwlkbij.d  |-  D  =  { w  e.  ( ( V WWalksN  E ) `  N )  |  ( lastS  `  w )  =  ( w `  0 ) }
Assertion
Ref Expression
clwwlkel  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( P concat  <" ( P ` 
0 ) "> )  e.  D )
Distinct variable groups:    i, E, w    i, N, w    P, i, w    i, V, w
Allowed substitution hints:    D( w, i)    X( w, i)    Y( w, i)

Proof of Theorem clwwlkel
StepHypRef Expression
1 simprl 755 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  P  e. Word  V
)
2 fstwrdne0 12546 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ` 
0 )  e.  V
)
3 ccatws1n0 12599 . . . . . . 7  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( P concat  <" ( P `  0 ) "> )  =/=  (/) )
41, 2, 3syl2anc 661 . . . . . 6  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P concat  <" ( P `  0 ) "> )  =/=  (/) )
543ad2antl3 1160 . . . . 5  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( P concat  <" ( P ` 
0 ) "> )  =/=  (/) )
653adant3 1016 . . . 4  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( P concat  <" ( P ` 
0 ) "> )  =/=  (/) )
7 simp2l 1022 . . . . 5  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  P  e. Word  V )
823ad2antl3 1160 . . . . . . 7  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( P `  0 )  e.  V )
98s1cld 12578 . . . . . 6  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  <" ( P `  0 ) ">  e. Word  V )
1093adant3 1016 . . . . 5  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  <" ( P `  0 ) ">  e. Word  V )
11 ccatcl 12558 . . . . 5  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V )  ->  ( P concat  <" ( P `
 0 ) "> )  e. Word  V
)
127, 10, 11syl2anc 661 . . . 4  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( P concat  <" ( P ` 
0 ) "> )  e. Word  V )
131adantr 465 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  P  e. Word  V )
142s1cld 12578 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  <" ( P `
 0 ) ">  e. Word  V )
1514adantr 465 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  <" ( P `  0 ) ">  e. Word  V )
16 elfzonn0 11835 . . . . . . . . . . . . . . . . . . . 20  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  ->  i  e.  NN0 )
1716adantl 466 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
i  e.  NN0 )
18 nnz 10886 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  NN  ->  N  e.  ZZ )
1918adantr 465 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  N  e.  ZZ )
20 elfzo0 11831 . . . . . . . . . . . . . . . . . . . . 21  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  <->  ( i  e. 
NN0  /\  ( N  -  1 )  e.  NN  /\  i  < 
( N  -  1 ) ) )
21 nn0re 10804 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( i  e.  NN0  ->  i  e.  RR )
2221adantr 465 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  i  e.  RR )
23 nnre 10543 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( N  e.  NN  ->  N  e.  RR )
24 peano2rem 9886 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( N  e.  RR  ->  ( N  -  1 )  e.  RR )
2523, 24syl 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  RR )
2625adantl 466 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( N  -  1 )  e.  RR )
2723adantl 466 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  N  e.  RR )
2822, 26, 273jca 1176 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( i  e.  RR  /\  ( N  -  1 )  e.  RR  /\  N  e.  RR )
)
2928adantr 465 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  ( i  e.  RR  /\  ( N  -  1 )  e.  RR  /\  N  e.  RR ) )
30 simpr 461 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  i  <  ( N  -  1 ) )
3123ltm1d 10478 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( N  e.  NN  ->  ( N  -  1 )  <  N )
3231adantl 466 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( N  -  1 )  <  N )
3332adantr 465 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  ( N  -  1 )  < 
N )
34 lttr 9661 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( i  e.  RR  /\  ( N  -  1
)  e.  RR  /\  N  e.  RR )  ->  ( ( i  < 
( N  -  1 )  /\  ( N  -  1 )  < 
N )  ->  i  <  N ) )
3534imp 429 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  RR  /\  ( N  -  1 )  e.  RR  /\  N  e.  RR )  /\  ( i  <  ( N  -  1 )  /\  ( N  - 
1 )  <  N
) )  ->  i  <  N )
3629, 30, 33, 35syl12anc 1226 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  i  <  N )
3736ex 434 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( i  <  ( N  -  1 )  ->  i  <  N
) )
3837impancom 440 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( i  e.  NN0  /\  i  <  ( N  - 
1 ) )  -> 
( N  e.  NN  ->  i  <  N ) )
39383adant2 1015 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( i  e.  NN0  /\  ( N  -  1
)  e.  NN  /\  i  <  ( N  - 
1 ) )  -> 
( N  e.  NN  ->  i  <  N ) )
4020, 39sylbi 195 . . . . . . . . . . . . . . . . . . . 20  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  ->  ( N  e.  NN  ->  i  <  N ) )
4140impcom 430 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
i  <  N )
42 elfzo0z 11833 . . . . . . . . . . . . . . . . . . 19  |-  ( i  e.  ( 0..^ N )  <->  ( i  e. 
NN0  /\  N  e.  ZZ  /\  i  <  N
) )
4317, 19, 41, 42syl3anbrc 1180 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
i  e.  ( 0..^ N ) )
4443adantlr 714 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  i  e.  ( 0..^ N ) )
45 oveq2 6292 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
# `  P )  =  N  ->  ( 0..^ ( # `  P
) )  =  ( 0..^ N ) )
4645eleq2d 2537 . . . . . . . . . . . . . . . . . . 19  |-  ( (
# `  P )  =  N  ->  ( i  e.  ( 0..^ (
# `  P )
)  <->  i  e.  ( 0..^ N ) ) )
4746ad2antll 728 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( i  e.  ( 0..^ ( # `  P ) )  <->  i  e.  ( 0..^ N ) ) )
4847adantr 465 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( i  e.  ( 0..^ ( # `  P ) )  <->  i  e.  ( 0..^ N ) ) )
4944, 48mpbird 232 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  i  e.  ( 0..^ ( # `  P
) ) )
50 ccatval1 12560 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V  /\  i  e.  ( 0..^ ( # `  P ) ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  i )  =  ( P `  i ) )
5113, 15, 49, 50syl3anc 1228 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  i
)  =  ( P `
 i ) )
5251eqcomd 2475 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( P `  i )  =  ( ( P concat  <" ( P `  0 ) "> ) `  i
) )
53 elfzom1p1elfzo 11863 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
( i  +  1 )  e.  ( 0..^ N ) )
5453adantlr 714 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( i  +  1 )  e.  ( 0..^ N ) )
5545ad2antll 728 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( 0..^ (
# `  P )
)  =  ( 0..^ N ) )
5655adantr 465 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( 0..^ ( # `  P
) )  =  ( 0..^ N ) )
5754, 56eleqtrrd 2558 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( i  +  1 )  e.  ( 0..^ ( # `  P ) ) )
58 ccatval1 12560 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V  /\  ( i  +  1 )  e.  ( 0..^ ( # `  P ) ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) )  =  ( P `  ( i  +  1 ) ) )
5913, 15, 57, 58syl3anc 1228 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) )  =  ( P `
 ( i  +  1 ) ) )
6059eqcomd 2475 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( P `  ( i  +  1 ) )  =  ( ( P concat  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) )
6152, 60preq12d 4114 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  =  { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) } )
6261eleq1d 2536 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( {
( P `  i
) ,  ( P `
 ( i  +  1 ) ) }  e.  ran  E  <->  { (
( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
6362ralbidva 2900 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  <->  A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
6463biimpcd 224 . . . . . . . . . 10  |-  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  ->  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `
 P )  =  N ) )  ->  A. i  e.  (
0..^ ( N  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
6564adantr 465 . . . . . . . . 9  |-  ( ( A. i  e.  ( 0..^ ( N  - 
1 ) ) { ( P `  i
) ,  ( P `
 ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P ) ,  ( P ` 
0 ) }  e.  ran  E )  ->  (
( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
) )
6665expdcom 439 . . . . . . . 8  |-  ( N  e.  NN  ->  (
( P  e. Word  V  /\  ( # `  P
)  =  N )  ->  ( ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P ) ,  ( P `  0 ) }  e.  ran  E
)  ->  A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
) ) )
67663ad2ant3 1019 . . . . . . 7  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( P  e. Word  V  /\  ( # `  P
)  =  N )  ->  ( ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P ) ,  ( P `  0 ) }  e.  ran  E
)  ->  A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
) ) )
68673imp 1190 . . . . . 6  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
)
69 fzo0end 11872 . . . . . . . . . . . . . . . . . 18  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  ( 0..^ N ) )
7069adantr 465 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( N  - 
1 )  e.  ( 0..^ N ) )
7145eleq2d 2537 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  P )  =  N  ->  ( ( N  -  1 )  e.  ( 0..^ (
# `  P )
)  <->  ( N  - 
1 )  e.  ( 0..^ N ) ) )
7271ad2antll 728 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( N  -  1 )  e.  ( 0..^ ( # `  P ) )  <->  ( N  -  1 )  e.  ( 0..^ N ) ) )
7370, 72mpbird 232 . . . . . . . . . . . . . . . 16  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( N  - 
1 )  e.  ( 0..^ ( # `  P
) ) )
74 ccatval1 12560 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V  /\  ( N  -  1 )  e.  ( 0..^ ( # `  P ) ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) )  =  ( P `  ( N  -  1
) ) )
751, 14, 73, 74syl3anc 1228 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) )  =  ( P `  ( N  -  1
) ) )
76 oveq1 6291 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  =  ( # `  P
)  ->  ( N  -  1 )  =  ( ( # `  P
)  -  1 ) )
7776fveq2d 5870 . . . . . . . . . . . . . . . . . . 19  |-  ( N  =  ( # `  P
)  ->  ( P `  ( N  -  1 ) )  =  ( P `  ( (
# `  P )  -  1 ) ) )
7877eqcoms 2479 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  P )  =  N  ->  ( P `
 ( N  - 
1 ) )  =  ( P `  (
( # `  P )  -  1 ) ) )
7978adantl 466 . . . . . . . . . . . . . . . . 17  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( P `  ( N  -  1 ) )  =  ( P `
 ( ( # `  P )  -  1 ) ) )
80 lsw 12550 . . . . . . . . . . . . . . . . . 18  |-  ( P  e. Word  V  ->  ( lastS  `  P )  =  ( P `  ( (
# `  P )  -  1 ) ) )
8180adantr 465 . . . . . . . . . . . . . . . . 17  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( lastS  `  P )  =  ( P `  (
( # `  P )  -  1 ) ) )
8279, 81eqtr4d 2511 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( P `  ( N  -  1 ) )  =  ( lastS  `  P
) )
8382adantl 466 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P `  ( N  -  1
) )  =  ( lastS  `  P ) )
8475, 83eqtr2d 2509 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  P )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) ) )
85 fveq2 5866 . . . . . . . . . . . . . . . . 17  |-  ( N  =  ( # `  P
)  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  N
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  ( # `
 P ) ) )
8685eqcoms 2479 . . . . . . . . . . . . . . . 16  |-  ( (
# `  P )  =  N  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  N
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  ( # `
 P ) ) )
8786ad2antll 728 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  N )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( # `  P
) ) )
88 nncn 10544 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  NN  ->  N  e.  CC )
89 ax-1cn 9550 . . . . . . . . . . . . . . . . . . . 20  |-  1  e.  CC
9089a1i 11 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  NN  ->  1  e.  CC )
9188, 90npcand 9934 . . . . . . . . . . . . . . . . . 18  |-  ( N  e.  NN  ->  (
( N  -  1 )  +  1 )  =  N )
9291eqcomd 2475 . . . . . . . . . . . . . . . . 17  |-  ( N  e.  NN  ->  N  =  ( ( N  -  1 )  +  1 ) )
9392fveq2d 5870 . . . . . . . . . . . . . . . 16  |-  ( N  e.  NN  ->  (
( P concat  <" ( P `  0 ) "> ) `  N
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
9493adantr 465 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  N )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( ( N  -  1 )  +  1 ) ) )
95 ccatws1ls 12600 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( ( P concat  <" ( P `  0 ) "> ) `  ( # `
 P ) )  =  ( P ` 
0 ) )
961, 2, 95syl2anc 661 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( # `  P
) )  =  ( P `  0 ) )
9787, 94, 963eqtr3rd 2517 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ` 
0 )  =  ( ( P concat  <" ( P `  0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
9884, 97preq12d 4114 . . . . . . . . . . . . 13  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  { ( lastS  `  P
) ,  ( P `
 0 ) }  =  { ( ( P concat  <" ( P `
 0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) } )
9998eleq1d 2536 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( { ( lastS  `  P ) ,  ( P `  0 ) }  e.  ran  E  <->  { ( ( P concat  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) )
10099biimpcd 224 . . . . . . . . . . 11  |-  ( { ( lastS  `  P ) ,  ( P ` 
0 ) }  e.  ran  E  ->  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `
 P )  =  N ) )  ->  { ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( ( N  -  1 )  +  1 ) ) }  e.  ran  E
) )
101100adantl 466 . . . . . . . . . 10  |-  ( ( A. i  e.  ( 0..^ ( N  - 
1 ) ) { ( P `  i
) ,  ( P `
 ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P ) ,  ( P ` 
0 ) }  e.  ran  E )  ->  (
( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  { (
( P concat  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) )
102101expdcom 439 . . . . . . . . 9  |-  ( N  e.  NN  ->  (
( P  e. Word  V  /\  ( # `  P
)  =  N )  ->  ( ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P ) ,  ( P `  0 ) }  e.  ran  E
)  ->  { (
( P concat  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) ) )
1031023ad2ant3 1019 . . . . . . . 8  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( P  e. Word  V  /\  ( # `  P
)  =  N )  ->  ( ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P ) ,  ( P `  0 ) }  e.  ran  E
)  ->  { (
( P concat  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) ) )
1041033imp 1190 . . . . . . 7  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  { (
( P concat  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E )
105 ovex 6309 . . . . . . . 8  |-  ( N  -  1 )  e. 
_V
106 fveq2 5866 . . . . . . . . . 10  |-  ( i  =  ( N  - 
1 )  ->  (
( P concat  <" ( P `  0 ) "> ) `  i
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  ( N  -  1 ) ) )
107 oveq1 6291 . . . . . . . . . . 11  |-  ( i  =  ( N  - 
1 )  ->  (
i  +  1 )  =  ( ( N  -  1 )  +  1 ) )
108107fveq2d 5870 . . . . . . . . . 10  |-  ( i  =  ( N  - 
1 )  ->  (
( P concat  <" ( P `  0 ) "> ) `  (
i  +  1 ) )  =  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
109106, 108preq12d 4114 . . . . . . . . 9  |-  ( i  =  ( N  - 
1 )  ->  { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  =  {
( ( P concat  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) } )
110109eleq1d 2536 . . . . . . . 8  |-  ( i  =  ( N  - 
1 )  ->  ( { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  <->  { ( ( P concat  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) )
111105, 110ralsn 4066 . . . . . . 7  |-  ( A. i  e.  { ( N  -  1 ) }  { ( ( P concat  <" ( P `
 0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <->  { ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( ( N  -  1 )  +  1 ) ) }  e.  ran  E
)
112104, 111sylibr 212 . . . . . 6  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  A. i  e.  { ( N  - 
1 ) }  {
( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )
11388, 90, 90addsubd 9951 . . . . . . . . . . . 12  |-  ( N  e.  NN  ->  (
( N  +  1 )  -  1 )  =  ( ( N  -  1 )  +  1 ) )
114113oveq2d 6300 . . . . . . . . . . 11  |-  ( N  e.  NN  ->  (
0..^ ( ( N  +  1 )  - 
1 ) )  =  ( 0..^ ( ( N  -  1 )  +  1 ) ) )
115 nnm1nn0 10837 . . . . . . . . . . . . 13  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  NN0 )
116 elnn0uz 11119 . . . . . . . . . . . . 13  |-  ( ( N  -  1 )  e.  NN0  <->  ( N  - 
1 )  e.  (
ZZ>= `  0 ) )
117115, 116sylib 196 . . . . . . . . . . . 12  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  ( ZZ>= `  0
) )
118 fzosplitsn 11886 . . . . . . . . . . . 12  |-  ( ( N  -  1 )  e.  ( ZZ>= `  0
)  ->  ( 0..^ ( ( N  - 
1 )  +  1 ) )  =  ( ( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) )
119117, 118syl 16 . . . . . . . . . . 11  |-  ( N  e.  NN  ->  (
0..^ ( ( N  -  1 )  +  1 ) )  =  ( ( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) )
120114, 119eqtrd 2508 . . . . . . . . . 10  |-  ( N  e.  NN  ->  (
0..^ ( ( N  +  1 )  - 
1 ) )  =  ( ( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) )
121120raleqdv 3064 . . . . . . . . 9  |-  ( N  e.  NN  ->  ( A. i  e.  (
0..^ ( ( N  +  1 )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <->  A. i  e.  (
( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) { ( ( P concat  <" ( P `
 0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
122 ralunb 3685 . . . . . . . . 9  |-  ( A. i  e.  ( (
0..^ ( N  - 
1 ) )  u. 
{ ( N  - 
1 ) } ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  <->  ( A. i  e.  ( 0..^ ( N  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  /\  A. i  e. 
{ ( N  - 
1 ) }  {
( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
123121, 122syl6bb 261 . . . . . . . 8  |-  ( N  e.  NN  ->  ( A. i  e.  (
0..^ ( ( N  +  1 )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <-> 
( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  /\  A. i  e.  {
( N  -  1 ) }  { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
1241233ad2ant3 1019 . . . . . . 7  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( A. i  e.  ( 0..^ ( ( N  +  1 )  -  1 ) ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  <->  ( A. i  e.  ( 0..^ ( N  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  /\  A. i  e. 
{ ( N  - 
1 ) }  {
( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
1251243ad2ant1 1017 . . . . . 6  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( A. i  e.  ( 0..^ ( ( N  + 
1 )  -  1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <-> 
( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  /\  A. i  e.  {
( N  -  1 ) }  { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
12668, 112, 125mpbir2and 920 . . . . 5  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  A. i  e.  ( 0..^ ( ( N  +  1 )  -  1 ) ) { ( ( P concat  <" ( P ` 
0 ) "> ) `  i ) ,  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
)
127 simprl 755 . . . . . . . . . . 11  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  P  e. Word  V )
128 ccatlen 12559 . . . . . . . . . . 11  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V )  ->  ( # `
 ( P concat  <" ( P `  0 ) "> ) )  =  ( ( # `  P
)  +  ( # `  <" ( P `
 0 ) "> ) ) )
129127, 9, 128syl2anc 661 . . . . . . . . . 10  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( # `  ( P concat  <" ( P `
 0 ) "> ) )  =  ( ( # `  P
)  +  ( # `  <" ( P `
 0 ) "> ) ) )
130 id 22 . . . . . . . . . . . 12  |-  ( (
# `  P )  =  N  ->  ( # `  P )  =  N )
131 s1len 12580 . . . . . . . . . . . . 13  |-  ( # `  <" ( P `
 0 ) "> )  =  1
132131a1i 11 . . . . . . . . . . . 12  |-  ( (
# `  P )  =  N  ->  ( # `  <" ( P `
 0 ) "> )  =  1 )
133130, 132oveq12d 6302 . . . . . . . . . . 11  |-  ( (
# `  P )  =  N  ->  ( (
# `  P )  +  ( # `  <" ( P `  0
) "> )
)  =  ( N  +  1 ) )
134133ad2antll 728 . . . . . . . . . 10  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( ( # `
 P )  +  ( # `  <" ( P `  0
) "> )
)  =  ( N  +  1 ) )
135129, 134eqtrd 2508 . . . . . . . . 9  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( # `  ( P concat  <" ( P `
 0 ) "> ) )  =  ( N  +  1 ) )
1361353adant3 1016 . . . . . . . 8  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( # `  ( P concat  <" ( P `
 0 ) "> ) )  =  ( N  +  1 ) )
137136oveq1d 6299 . . . . . . 7  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( ( # `
 ( P concat  <" ( P `  0 ) "> ) )  - 
1 )  =  ( ( N  +  1 )  -  1 ) )
138137oveq2d 6300 . . . . . 6  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( 0..^ ( ( # `  ( P concat  <" ( P `
 0 ) "> ) )  - 
1 ) )  =  ( 0..^ ( ( N  +  1 )  -  1 ) ) )
139138raleqdv 3064 . . . . 5  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( A. i  e.  ( 0..^ ( ( # `  ( P concat  <" ( P `
 0 ) "> ) )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <->  A. i  e.  (
0..^ ( ( N  +  1 )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
140126, 139mpbird 232 . . . 4  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  A. i  e.  ( 0..^ ( (
# `  ( P concat  <" ( P ` 
0 ) "> ) )  -  1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )
1416, 12, 1403jca 1176 . . 3  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( ( P concat  <" ( P `
 0 ) "> )  =/=  (/)  /\  ( P concat  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P concat  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
142 nnnn0 10802 . . . . . 6  |-  ( N  e.  NN  ->  N  e.  NN0 )
143 iswwlkn 24388 . . . . . 6  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN0 )  -> 
( ( P concat  <" ( P `  0 ) "> )  e.  ( ( V WWalksN  E ) `  N )  <->  ( ( P concat  <" ( P `
 0 ) "> )  e.  ( V WWalks  E )  /\  ( # `  ( P concat  <" ( P ` 
0 ) "> ) )  =  ( N  +  1 ) ) ) )
144142, 143syl3an3 1263 . . . . 5  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( P concat  <" ( P `  0 ) "> )  e.  ( ( V WWalksN  E ) `  N )  <->  ( ( P concat  <" ( P `
 0 ) "> )  e.  ( V WWalks  E )  /\  ( # `  ( P concat  <" ( P ` 
0 ) "> ) )  =  ( N  +  1 ) ) ) )
145 iswwlk 24387 . . . . . . 7  |-  ( ( V  e.  X  /\  E  e.  Y )  ->  ( ( P concat  <" ( P `  0 ) "> )  e.  ( V WWalks  E )  <->  ( ( P concat  <" ( P `
 0 ) "> )  =/=  (/)  /\  ( P concat  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P concat  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
1461453adant3 1016 . . . . . 6  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( P concat  <" ( P `  0 ) "> )  e.  ( V WWalks  E )  <->  ( ( P concat  <" ( P `
 0 ) "> )  =/=  (/)  /\  ( P concat  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P concat  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
147146anbi1d 704 . . . . 5  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( ( P concat  <" ( P ` 
0 ) "> )  e.  ( V WWalks  E )  /\  ( # `  ( P concat  <" ( P `  0 ) "> ) )  =  ( N  +  1 ) )  <->  ( (
( P concat  <" ( P `  0 ) "> )  =/=  (/)  /\  ( P concat  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P concat  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )  /\  ( # `  ( P concat  <" ( P `  0 ) "> ) )  =  ( N  +  1 ) ) ) )
148144, 147bitrd 253 . . . 4  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( P concat  <" ( P `  0 ) "> )  e.  ( ( V WWalksN  E ) `  N )  <->  ( (
( P concat  <" ( P `  0 ) "> )  =/=  (/)  /\  ( P concat  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P concat  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )  /\  ( # `  ( P concat  <" ( P `  0 ) "> ) )  =  ( N  +  1 ) ) ) )
1491483ad2ant1 1017 . . 3  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( ( P concat  <" ( P `
 0 ) "> )  e.  ( ( V WWalksN  E ) `  N )  <->  ( (
( P concat  <" ( P `  0 ) "> )  =/=  (/)  /\  ( P concat  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P concat  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P concat  <" ( P `  0 ) "> ) `  i
) ,  ( ( P concat  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )  /\  ( # `  ( P concat  <" ( P `  0 ) "> ) )  =  ( N  +  1 ) ) ) )
150141, 136, 149mpbir2and 920 . 2  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( P concat  <" ( P ` 
0 ) "> )  e.  ( ( V WWalksN  E ) `  N
) )
151 lswccats1 12601 . . . . . 6  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( lastS  `  ( P concat  <" ( P `  0 ) "> ) )  =  ( P `  0
) )
1521, 2, 151syl2anc 661 . . . . 5  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  ( P concat  <" ( P ` 
0 ) "> ) )  =  ( P `  0 ) )
153 lbfzo0 11830 . . . . . . . . 9  |-  ( 0  e.  ( 0..^ N )  <->  N  e.  NN )
154153biimpri 206 . . . . . . . 8  |-  ( N  e.  NN  ->  0  e.  ( 0..^ N ) )
155154adantr 465 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  0  e.  ( 0..^ N ) )
15645eleq2d 2537 . . . . . . . 8  |-  ( (
# `  P )  =  N  ->  ( 0  e.  ( 0..^ (
# `  P )
)  <->  0  e.  ( 0..^ N ) ) )
157156ad2antll 728 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( 0  e.  ( 0..^ ( # `  P ) )  <->  0  e.  ( 0..^ N ) ) )
158155, 157mpbird 232 . . . . . 6  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  0  e.  ( 0..^ ( # `  P
) ) )
159 ccatval1 12560 . . . . . 6  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V  /\  0  e.  ( 0..^ ( # `  P ) ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  0 )  =  ( P ` 
0 ) )
1601, 14, 158, 159syl3anc 1228 . . . . 5  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  0 )  =  ( P ` 
0 ) )
161152, 160eqtr4d 2511 . . . 4  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  ( P concat  <" ( P ` 
0 ) "> ) )  =  ( ( P concat  <" ( P `  0 ) "> ) `  0
) )
1621613ad2antl3 1160 . . 3  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( lastS  `  ( P concat  <" ( P `
 0 ) "> ) )  =  ( ( P concat  <" ( P `  0 ) "> ) `  0
) )
1631623adant3 1016 . 2  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( lastS  `  ( P concat  <" ( P `
 0 ) "> ) )  =  ( ( P concat  <" ( P `  0 ) "> ) `  0
) )
164 fveq2 5866 . . . 4  |-  ( w  =  ( P concat  <" ( P `  0 ) "> )  ->  ( lastS  `  w )  =  ( lastS  `  ( P concat  <" ( P `  0 ) "> ) ) )
165 fveq1 5865 . . . 4  |-  ( w  =  ( P concat  <" ( P `  0 ) "> )  ->  (
w `  0 )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  0 )
)
166164, 165eqeq12d 2489 . . 3  |-  ( w  =  ( P concat  <" ( P `  0 ) "> )  ->  (
( lastS  `  w )  =  ( w `  0
)  <->  ( lastS  `  ( P concat  <" ( P ` 
0 ) "> ) )  =  ( ( P concat  <" ( P `  0 ) "> ) `  0
) ) )
167 clwwlkbij.d . . 3  |-  D  =  { w  e.  ( ( V WWalksN  E ) `  N )  |  ( lastS  `  w )  =  ( w `  0 ) }
168166, 167elrab2 3263 . 2  |-  ( ( P concat  <" ( P `
 0 ) "> )  e.  D  <->  ( ( P concat  <" ( P `  0 ) "> )  e.  ( ( V WWalksN  E ) `  N )  /\  ( lastS  `  ( P concat  <" ( P `  0 ) "> ) )  =  ( ( P concat  <" ( P `  0 ) "> ) `  0
) ) )
169150, 163, 168sylanbrc 664 1  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N )  /\  ( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  e.  ran  E  /\  { ( lastS  `  P
) ,  ( P `
 0 ) }  e.  ran  E ) )  ->  ( P concat  <" ( P ` 
0 ) "> )  e.  D )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 184    /\ wa 369    /\ w3a 973    = wceq 1379    e. wcel 1767    =/= wne 2662   A.wral 2814   {crab 2818    u. cun 3474   (/)c0 3785   {csn 4027   {cpr 4029   class class class wbr 4447   ran crn 5000   ` cfv 5588  (class class class)co 6284   CCcc 9490   RRcr 9491   0cc0 9492   1c1 9493    + caddc 9495    < clt 9628    - cmin 9805   NNcn 10536   NN0cn0 10795   ZZcz 10864   ZZ>=cuz 11082  ..^cfzo 11792   #chash 12373  Word cword 12500   lastS clsw 12501   concat cconcat 12502   <"cs1 12503   WWalks cwwlk 24381   WWalksN cwwlkn 24382
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1601  ax-4 1612  ax-5 1680  ax-6 1719  ax-7 1739  ax-8 1769  ax-9 1771  ax-10 1786  ax-11 1791  ax-12 1803  ax-13 1968  ax-ext 2445  ax-rep 4558  ax-sep 4568  ax-nul 4576  ax-pow 4625  ax-pr 4686  ax-un 6576  ax-cnex 9548  ax-resscn 9549  ax-1cn 9550  ax-icn 9551  ax-addcl 9552  ax-addrcl 9553  ax-mulcl 9554  ax-mulrcl 9555  ax-mulcom 9556  ax-addass 9557  ax-mulass 9558  ax-distr 9559  ax-i2m1 9560  ax-1ne0 9561  ax-1rid 9562  ax-rnegex 9563  ax-rrecex 9564  ax-cnre 9565  ax-pre-lttri 9566  ax-pre-lttrn 9567  ax-pre-ltadd 9568  ax-pre-mulgt0 9569
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 974  df-3an 975  df-tru 1382  df-ex 1597  df-nf 1600  df-sb 1712  df-eu 2279  df-mo 2280  df-clab 2453  df-cleq 2459  df-clel 2462  df-nfc 2617  df-ne 2664  df-nel 2665  df-ral 2819  df-rex 2820  df-reu 2821  df-rab 2823  df-v 3115  df-sbc 3332  df-csb 3436  df-dif 3479  df-un 3481  df-in 3483  df-ss 3490  df-pss 3492  df-nul 3786  df-if 3940  df-pw 4012  df-sn 4028  df-pr 4030  df-tp 4032  df-op 4034  df-uni 4246  df-int 4283  df-iun 4327  df-br 4448  df-opab 4506  df-mpt 4507  df-tr 4541  df-eprel 4791  df-id 4795  df-po 4800  df-so 4801  df-fr 4838  df-we 4840  df-ord 4881  df-on 4882  df-lim 4883  df-suc 4884  df-xp 5005  df-rel 5006  df-cnv 5007  df-co 5008  df-dm 5009  df-rn 5010  df-res 5011  df-ima 5012  df-iota 5551  df-fun 5590  df-fn 5591  df-f 5592  df-f1 5593  df-fo 5594  df-f1o 5595  df-fv 5596  df-riota 6245  df-ov 6287  df-oprab 6288  df-mpt2 6289  df-om 6685  df-1st 6784  df-2nd 6785  df-recs 7042  df-rdg 7076  df-1o 7130  df-oadd 7134  df-er 7311  df-map 7422  df-pm 7423  df-en 7517  df-dom 7518  df-sdom 7519  df-fin 7520  df-card 8320  df-pnf 9630  df-mnf 9631  df-xr 9632  df-ltxr 9633  df-le 9634  df-sub 9807  df-neg 9808  df-nn 10537  df-n0 10796  df-z 10865  df-uz 11083  df-fz 11673  df-fzo 11793  df-hash 12374  df-word 12508  df-lsw 12509  df-concat 12510  df-s1 12511  df-wwlk 24383  df-wwlkn 24384
This theorem is referenced by:  clwwlkfo  24501  clwwlknwwlkncl  24504
  Copyright terms: Public domain W3C validator