Users' Mathboxes Mathbox for Alexander van der Vekens < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  clwwlkel Structured version   Unicode version

Theorem clwwlkel 30598
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 12377 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ` 
0 )  e.  V
)
3 ccatws1n0 12423 . . . . . . 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 1152 . . . . 5  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( P concat  <" ( P ` 
0 ) "> )  =/=  (/) )
653adant3 1008 . . . 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 1014 . . . . 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 1152 . . . . . . 7  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( P `  0 )  e.  V )
98s1cld 12407 . . . . . 6  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  <" ( P `  0 ) ">  e. Word  V )
1093adant3 1008 . . . . 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 12387 . . . . 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 12407 . . . . . . . . . . . . . . . . 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 11703 . . . . . . . . . . . . . . . . . . . 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 10774 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  NN  ->  N  e.  ZZ )
1918adantr 465 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  N  e.  ZZ )
20 elfzo0 11699 . . . . . . . . . . . . . . . . . . . . 21  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  <->  ( i  e. 
NN0  /\  ( N  -  1 )  e.  NN  /\  i  < 
( N  -  1 ) ) )
21 nn0re 10694 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( i  e.  NN0  ->  i  e.  RR )
2221adantr 465 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  i  e.  RR )
23 nnre 10435 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( N  e.  NN  ->  N  e.  RR )
24 peano2rem 9781 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 1168 . . . . . . . . . . . . . . . . . . . . . . . . . 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 10371 . . . . . . . . . . . . . . . . . . . . . . . . . . 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 9557 . . . . . . . . . . . . . . . . . . . . . . . . . 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 1217 . . . . . . . . . . . . . . . . . . . . . . . 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 1007 . . . . . . . . . . . . . . . . . . . . 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 11701 . . . . . . . . . . . . . . . . . . 19  |-  ( i  e.  ( 0..^ N )  <->  ( i  e. 
NN0  /\  N  e.  ZZ  /\  i  <  N
) )
4317, 19, 41, 42syl3anbrc 1172 . . . . . . . . . . . . . . . . . 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 6203 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
# `  P )  =  N  ->  ( 0..^ ( # `  P
) )  =  ( 0..^ N ) )
4645eleq2d 2522 . . . . . . . . . . . . . . . . . . 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 12389 . . . . . . . . . . . . . . . 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 1219 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  i
)  =  ( P `
 i ) )
5251eqcomd 2460 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( P `  i )  =  ( ( P concat  <" ( P `  0 ) "> ) `  i
) )
53 elfzom1p1elfzo 30358 . . . . . . . . . . . . . . . . . 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 2543 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( i  +  1 )  e.  ( 0..^ ( # `  P ) ) )
58 ccatval1 12389 . . . . . . . . . . . . . . . 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 1219 . . . . . . . . . . . . . . 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 2460 . . . . . . . . . . . . . 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 4065 . . . . . . . . . . . . 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 2521 . . . . . . . . . . . 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 2841 . . . . . . . . . . 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 1011 . . . . . . 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 1182 . . . . . 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 11731 . . . . . . . . . . . . . . . . . 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 2522 . . . . . . . . . . . . . . . . . 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 12389 . . . . . . . . . . . . . . . 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 1219 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) )  =  ( P `  ( N  -  1
) ) )
76 oveq1 6202 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  =  ( # `  P
)  ->  ( N  -  1 )  =  ( ( # `  P
)  -  1 ) )
7776fveq2d 5798 . . . . . . . . . . . . . . . . . . 19  |-  ( N  =  ( # `  P
)  ->  ( P `  ( N  -  1 ) )  =  ( P `  ( (
# `  P )  -  1 ) ) )
7877eqcoms 2464 . . . . . . . . . . . . . . . . . 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 12379 . . . . . . . . . . . . . . . . . 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 2496 . . . . . . . . . . . . . . . 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 2494 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  P )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) ) )
85 fveq2 5794 . . . . . . . . . . . . . . . . 17  |-  ( N  =  ( # `  P
)  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  N
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  ( # `
 P ) ) )
8685eqcoms 2464 . . . . . . . . . . . . . . . 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 10436 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  NN  ->  N  e.  CC )
89 ax-1cn 9446 . . . . . . . . . . . . . . . . . . . 20  |-  1  e.  CC
9089a1i 11 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  NN  ->  1  e.  CC )
9188, 90npcand 9829 . . . . . . . . . . . . . . . . . 18  |-  ( N  e.  NN  ->  (
( N  -  1 )  +  1 )  =  N )
9291eqcomd 2460 . . . . . . . . . . . . . . . . 17  |-  ( N  e.  NN  ->  N  =  ( ( N  -  1 )  +  1 ) )
9392fveq2d 5798 . . . . . . . . . . . . . . . 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 12424 . . . . . . . . . . . . . . . 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 2502 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ` 
0 )  =  ( ( P concat  <" ( P `  0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
9884, 97preq12d 4065 . . . . . . . . . . . . 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 2521 . . . . . . . . . . . 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 1011 . . . . . . . 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 1182 . . . . . . 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 6220 . . . . . . . 8  |-  ( N  -  1 )  e. 
_V
106 fveq2 5794 . . . . . . . . . 10  |-  ( i  =  ( N  - 
1 )  ->  (
( P concat  <" ( P `  0 ) "> ) `  i
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  ( N  -  1 ) ) )
107 oveq1 6202 . . . . . . . . . . 11  |-  ( i  =  ( N  - 
1 )  ->  (
i  +  1 )  =  ( ( N  -  1 )  +  1 ) )
108107fveq2d 5798 . . . . . . . . . 10  |-  ( i  =  ( N  - 
1 )  ->  (
( P concat  <" ( P `  0 ) "> ) `  (
i  +  1 ) )  =  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
109106, 108preq12d 4065 . . . . . . . . 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 2521 . . . . . . . 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 4018 . . . . . . 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 9846 . . . . . . . . . . . 12  |-  ( N  e.  NN  ->  (
( N  +  1 )  -  1 )  =  ( ( N  -  1 )  +  1 ) )
114113oveq2d 6211 . . . . . . . . . . 11  |-  ( N  e.  NN  ->  (
0..^ ( ( N  +  1 )  - 
1 ) )  =  ( 0..^ ( ( N  -  1 )  +  1 ) ) )
115 nnm1nn0 10727 . . . . . . . . . . . . 13  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  NN0 )
116 elnn0uz 11004 . . . . . . . . . . . . 13  |-  ( ( N  -  1 )  e.  NN0  <->  ( N  - 
1 )  e.  (
ZZ>= `  0 ) )
117115, 116sylib 196 . . . . . . . . . . . 12  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  ( ZZ>= `  0
) )
118 fzosplitsn 11745 . . . . . . . . . . . 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 2493 . . . . . . . . . 10  |-  ( N  e.  NN  ->  (
0..^ ( ( N  +  1 )  - 
1 ) )  =  ( ( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) )
121120raleqdv 3023 . . . . . . . . 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 3640 . . . . . . . . 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 1011 . . . . . . 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 1009 . . . . . 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 913 . . . . 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 12388 . . . . . . . . . . 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 12409 . . . . . . . . . . . . 13  |-  ( # `  <" ( P `
 0 ) "> )  =  1
132131a1i 11 . . . . . . . . . . . 12  |-  ( (
# `  P )  =  N  ->  ( # `  <" ( P `
 0 ) "> )  =  1 )
133130, 132oveq12d 6213 . . . . . . . . . . 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 2493 . . . . . . . . 9  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( # `  ( P concat  <" ( P `
 0 ) "> ) )  =  ( N  +  1 ) )
1361353adant3 1008 . . . . . . . 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 6210 . . . . . . 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 6211 . . . . . 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 3023 . . . . 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 1168 . . 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 10692 . . . . . 6  |-  ( N  e.  NN  ->  N  e.  NN0 )
143 iswwlkn 30461 . . . . . 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 1254 . . . . 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 30460 . . . . . . 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 1008 . . . . . 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 1009 . . 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 913 . 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 12425 . . . . . 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 11698 . . . . . . . . 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 2522 . . . . . . . 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 12389 . . . . . 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 1219 . . . . 5  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  0 )  =  ( P ` 
0 ) )
161152, 160eqtr4d 2496 . . . 4  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  ( P concat  <" ( P ` 
0 ) "> ) )  =  ( ( P concat  <" ( P `  0 ) "> ) `  0
) )
1621613ad2antl3 1152 . . 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 1008 . 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 5794 . . . 4  |-  ( w  =  ( P concat  <" ( P `  0 ) "> )  ->  ( lastS  `  w )  =  ( lastS  `  ( P concat  <" ( P `  0 ) "> ) ) )
165 fveq1 5793 . . . 4  |-  ( w  =  ( P concat  <" ( P `  0 ) "> )  ->  (
w `  0 )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  0 )
)
166164, 165eqeq12d 2474 . . 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 3220 . 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 965    = wceq 1370    e. wcel 1758    =/= wne 2645   A.wral 2796   {crab 2800    u. cun 3429   (/)c0 3740   {csn 3980   {cpr 3982   class class class wbr 4395   ran crn 4944   ` cfv 5521  (class class class)co 6195   CCcc 9386   RRcr 9387   0cc0 9388   1c1 9389    + caddc 9391    < clt 9524    - cmin 9701   NNcn 10428   NN0cn0 10685   ZZcz 10752   ZZ>=cuz 10967  ..^cfzo 11660   #chash 12215  Word cword 12334   lastS clsw 12335   concat cconcat 12336   <"cs1 12337   WWalks cwwlk 30454   WWalksN cwwlkn 30455
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1592  ax-4 1603  ax-5 1671  ax-6 1710  ax-7 1730  ax-8 1760  ax-9 1762  ax-10 1777  ax-11 1782  ax-12 1794  ax-13 1954  ax-ext 2431  ax-rep 4506  ax-sep 4516  ax-nul 4524  ax-pow 4573  ax-pr 4634  ax-un 6477  ax-cnex 9444  ax-resscn 9445  ax-1cn 9446  ax-icn 9447  ax-addcl 9448  ax-addrcl 9449  ax-mulcl 9450  ax-mulrcl 9451  ax-mulcom 9452  ax-addass 9453  ax-mulass 9454  ax-distr 9455  ax-i2m1 9456  ax-1ne0 9457  ax-1rid 9458  ax-rnegex 9459  ax-rrecex 9460  ax-cnre 9461  ax-pre-lttri 9462  ax-pre-lttrn 9463  ax-pre-ltadd 9464  ax-pre-mulgt0 9465
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 966  df-3an 967  df-tru 1373  df-ex 1588  df-nf 1591  df-sb 1703  df-eu 2265  df-mo 2266  df-clab 2438  df-cleq 2444  df-clel 2447  df-nfc 2602  df-ne 2647  df-nel 2648  df-ral 2801  df-rex 2802  df-reu 2803  df-rab 2805  df-v 3074  df-sbc 3289  df-csb 3391  df-dif 3434  df-un 3436  df-in 3438  df-ss 3445  df-pss 3447  df-nul 3741  df-if 3895  df-pw 3965  df-sn 3981  df-pr 3983  df-tp 3985  df-op 3987  df-uni 4195  df-int 4232  df-iun 4276  df-br 4396  df-opab 4454  df-mpt 4455  df-tr 4489  df-eprel 4735  df-id 4739  df-po 4744  df-so 4745  df-fr 4782  df-we 4784  df-ord 4825  df-on 4826  df-lim 4827  df-suc 4828  df-xp 4949  df-rel 4950  df-cnv 4951  df-co 4952  df-dm 4953  df-rn 4954  df-res 4955  df-ima 4956  df-iota 5484  df-fun 5523  df-fn 5524  df-f 5525  df-f1 5526  df-fo 5527  df-f1o 5528  df-fv 5529  df-riota 6156  df-ov 6198  df-oprab 6199  df-mpt2 6200  df-om 6582  df-1st 6682  df-2nd 6683  df-recs 6937  df-rdg 6971  df-1o 7025  df-oadd 7029  df-er 7206  df-map 7321  df-pm 7322  df-en 7416  df-dom 7417  df-sdom 7418  df-fin 7419  df-card 8215  df-pnf 9526  df-mnf 9527  df-xr 9528  df-ltxr 9529  df-le 9530  df-sub 9703  df-neg 9704  df-nn 10429  df-n0 10686  df-z 10753  df-uz 10968  df-fz 11550  df-fzo 11661  df-hash 12216  df-word 12342  df-lsw 12343  df-concat 12344  df-s1 12345  df-wwlk 30456  df-wwlkn 30457
This theorem is referenced by:  clwwlkfo  30602  clwwlknwwlkncl  30605
  Copyright terms: Public domain W3C validator