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 30364
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 750 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  P  e. Word  V
)
2 fstwrdne0 12260 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ` 
0 )  e.  V
)
3 ccatws1n0 12306 . . . . . . 7  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( P concat  <" ( P `  0 ) "> )  =/=  (/) )
41, 2, 3syl2anc 656 . . . . . 6  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P concat  <" ( P `  0 ) "> )  =/=  (/) )
543ad2antl3 1147 . . . . 5  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( P concat  <" ( P ` 
0 ) "> )  =/=  (/) )
653adant3 1003 . . . 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 1009 . . . . 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 1147 . . . . . . 7  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( P `  0 )  e.  V )
98s1cld 12290 . . . . . 6  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  <" ( P `  0 ) ">  e. Word  V )
1093adant3 1003 . . . . 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 12270 . . . . 5  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V )  ->  ( P concat  <" ( P `
 0 ) "> )  e. Word  V
)
127, 10, 11syl2anc 656 . . . 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 462 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  P  e. Word  V )
142s1cld 12290 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  <" ( P `
 0 ) ">  e. Word  V )
1514adantr 462 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  <" ( P `  0 ) ">  e. Word  V )
16 elfzonn0 11587 . . . . . . . . . . . . . . . . . . . 20  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  ->  i  e.  NN0 )
1716adantl 463 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
i  e.  NN0 )
18 nnz 10664 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  NN  ->  N  e.  ZZ )
1918adantr 462 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  N  e.  ZZ )
20 elfzo0 11583 . . . . . . . . . . . . . . . . . . . . 21  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  <->  ( i  e. 
NN0  /\  ( N  -  1 )  e.  NN  /\  i  < 
( N  -  1 ) ) )
21 nn0re 10584 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( i  e.  NN0  ->  i  e.  RR )
2221adantr 462 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  i  e.  RR )
23 nnre 10325 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( N  e.  NN  ->  N  e.  RR )
24 peano2rem 9671 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( N  e.  RR  ->  ( N  -  1 )  e.  RR )
2523, 24syl 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  RR )
2625adantl 463 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( N  -  1 )  e.  RR )
2723adantl 463 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  N  e.  RR )
2822, 26, 273jca 1163 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( i  e.  RR  /\  ( N  -  1 )  e.  RR  /\  N  e.  RR )
)
2928adantr 462 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  ( i  e.  RR  /\  ( N  -  1 )  e.  RR  /\  N  e.  RR ) )
30 simpr 458 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  i  <  ( N  -  1 ) )
3123ltm1d 10261 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( N  e.  NN  ->  ( N  -  1 )  <  N )
3231adantl 463 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( N  -  1 )  <  N )
3332adantr 462 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  ( N  -  1 )  < 
N )
34 lttr 9447 . . . . . . . . . . . . . . . . . . . . . . . . . 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 1211 . . . . . . . . . . . . . . . . . . . . . . . 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 438 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( i  e.  NN0  /\  i  <  ( N  - 
1 ) )  -> 
( N  e.  NN  ->  i  <  N ) )
39383adant2 1002 . . . . . . . . . . . . . . . . . . . . 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 11585 . . . . . . . . . . . . . . . . . . 19  |-  ( i  e.  ( 0..^ N )  <->  ( i  e. 
NN0  /\  N  e.  ZZ  /\  i  <  N
) )
4317, 19, 41, 42syl3anbrc 1167 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
i  e.  ( 0..^ N ) )
4443adantlr 709 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  i  e.  ( 0..^ N ) )
45 oveq2 6098 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
# `  P )  =  N  ->  ( 0..^ ( # `  P
) )  =  ( 0..^ N ) )
4645eleq2d 2508 . . . . . . . . . . . . . . . . . . 19  |-  ( (
# `  P )  =  N  ->  ( i  e.  ( 0..^ (
# `  P )
)  <->  i  e.  ( 0..^ N ) ) )
4746ad2antll 723 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( i  e.  ( 0..^ ( # `  P ) )  <->  i  e.  ( 0..^ N ) ) )
4847adantr 462 . . . . . . . . . . . . . . . . 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 12272 . . . . . . . . . . . . . . . 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 1213 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  i
)  =  ( P `
 i ) )
5251eqcomd 2446 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( P `  i )  =  ( ( P concat  <" ( P `  0 ) "> ) `  i
) )
53 elfzom1p1elfzo 30124 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
( i  +  1 )  e.  ( 0..^ N ) )
5453adantlr 709 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( i  +  1 )  e.  ( 0..^ N ) )
5545ad2antll 723 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( 0..^ (
# `  P )
)  =  ( 0..^ N ) )
5655adantr 462 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( 0..^ ( # `  P
) )  =  ( 0..^ N ) )
5754, 56eleqtrrd 2518 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( i  +  1 )  e.  ( 0..^ ( # `  P ) ) )
58 ccatval1 12272 . . . . . . . . . . . . . . . 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 1213 . . . . . . . . . . . . . . 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 2446 . . . . . . . . . . . . . 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 3959 . . . . . . . . . . . . 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 2507 . . . . . . . . . . . 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 2729 . . . . . . . . . . 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 462 . . . . . . . . 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
) )
6665exp3acom3r 1419 . . . . . . . 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 1006 . . . . . . 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 1176 . . . . . 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 11615 . . . . . . . . . . . . . . . . . 18  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  ( 0..^ N ) )
7069adantr 462 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( N  - 
1 )  e.  ( 0..^ N ) )
7145eleq2d 2508 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  P )  =  N  ->  ( ( N  -  1 )  e.  ( 0..^ (
# `  P )
)  <->  ( N  - 
1 )  e.  ( 0..^ N ) ) )
7271ad2antll 723 . . . . . . . . . . . . . . . . 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 12272 . . . . . . . . . . . . . . . 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 1213 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) )  =  ( P `  ( N  -  1
) ) )
76 oveq1 6097 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  =  ( # `  P
)  ->  ( N  -  1 )  =  ( ( # `  P
)  -  1 ) )
7776fveq2d 5692 . . . . . . . . . . . . . . . . . . 19  |-  ( N  =  ( # `  P
)  ->  ( P `  ( N  -  1 ) )  =  ( P `  ( (
# `  P )  -  1 ) ) )
7877eqcoms 2444 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  P )  =  N  ->  ( P `
 ( N  - 
1 ) )  =  ( P `  (
( # `  P )  -  1 ) ) )
7978adantl 463 . . . . . . . . . . . . . . . . 17  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( P `  ( N  -  1 ) )  =  ( P `
 ( ( # `  P )  -  1 ) ) )
80 lsw 12262 . . . . . . . . . . . . . . . . . 18  |-  ( P  e. Word  V  ->  ( lastS  `  P )  =  ( P `  ( (
# `  P )  -  1 ) ) )
8180adantr 462 . . . . . . . . . . . . . . . . 17  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( lastS  `  P )  =  ( P `  (
( # `  P )  -  1 ) ) )
8279, 81eqtr4d 2476 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( P `  ( N  -  1 ) )  =  ( lastS  `  P
) )
8382adantl 463 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P `  ( N  -  1
) )  =  ( lastS  `  P ) )
8475, 83eqtr2d 2474 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  P )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( N  -  1 ) ) )
85 fveq2 5688 . . . . . . . . . . . . . . . . 17  |-  ( N  =  ( # `  P
)  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  N
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  ( # `
 P ) ) )
8685eqcoms 2444 . . . . . . . . . . . . . . . 16  |-  ( (
# `  P )  =  N  ->  ( ( P concat  <" ( P `
 0 ) "> ) `  N
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  ( # `
 P ) ) )
8786ad2antll 723 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  N )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( # `  P
) ) )
88 nncn 10326 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  NN  ->  N  e.  CC )
89 ax-1cn 9336 . . . . . . . . . . . . . . . . . . . 20  |-  1  e.  CC
9089a1i 11 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  NN  ->  1  e.  CC )
9188, 90npcand 9719 . . . . . . . . . . . . . . . . . 18  |-  ( N  e.  NN  ->  (
( N  -  1 )  +  1 )  =  N )
9291eqcomd 2446 . . . . . . . . . . . . . . . . 17  |-  ( N  e.  NN  ->  N  =  ( ( N  -  1 )  +  1 ) )
9392fveq2d 5692 . . . . . . . . . . . . . . . 16  |-  ( N  e.  NN  ->  (
( P concat  <" ( P `  0 ) "> ) `  N
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
9493adantr 462 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  N )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( ( N  -  1 )  +  1 ) ) )
95 ccatws1ls 12307 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( ( P concat  <" ( P `  0 ) "> ) `  ( # `
 P ) )  =  ( P ` 
0 ) )
961, 2, 95syl2anc 656 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  ( # `  P
) )  =  ( P `  0 ) )
9787, 94, 963eqtr3rd 2482 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ` 
0 )  =  ( ( P concat  <" ( P `  0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
9884, 97preq12d 3959 . . . . . . . . . . . . 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 2507 . . . . . . . . . . . 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 463 . . . . . . . . . 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 ) )
102101exp3acom3r 1419 . . . . . . . . 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 1006 . . . . . . . 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 1176 . . . . . . 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 6115 . . . . . . . 8  |-  ( N  -  1 )  e. 
_V
106 fveq2 5688 . . . . . . . . . 10  |-  ( i  =  ( N  - 
1 )  ->  (
( P concat  <" ( P `  0 ) "> ) `  i
)  =  ( ( P concat  <" ( P `
 0 ) "> ) `  ( N  -  1 ) ) )
107 oveq1 6097 . . . . . . . . . . 11  |-  ( i  =  ( N  - 
1 )  ->  (
i  +  1 )  =  ( ( N  -  1 )  +  1 ) )
108107fveq2d 5692 . . . . . . . . . 10  |-  ( i  =  ( N  - 
1 )  ->  (
( P concat  <" ( P `  0 ) "> ) `  (
i  +  1 ) )  =  ( ( P concat  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
109106, 108preq12d 3959 . . . . . . . . 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 2507 . . . . . . . 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 3912 . . . . . . 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 9736 . . . . . . . . . . . 12  |-  ( N  e.  NN  ->  (
( N  +  1 )  -  1 )  =  ( ( N  -  1 )  +  1 ) )
114113oveq2d 6106 . . . . . . . . . . 11  |-  ( N  e.  NN  ->  (
0..^ ( ( N  +  1 )  - 
1 ) )  =  ( 0..^ ( ( N  -  1 )  +  1 ) ) )
115 nnm1nn0 10617 . . . . . . . . . . . . 13  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  NN0 )
116 elnn0uz 10894 . . . . . . . . . . . . 13  |-  ( ( N  -  1 )  e.  NN0  <->  ( N  - 
1 )  e.  (
ZZ>= `  0 ) )
117115, 116sylib 196 . . . . . . . . . . . 12  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  ( ZZ>= `  0
) )
118 fzosplitsn 11629 . . . . . . . . . . . 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 2473 . . . . . . . . . 10  |-  ( N  e.  NN  ->  (
0..^ ( ( N  +  1 )  - 
1 ) )  =  ( ( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) )
121120raleqdv 2921 . . . . . . . . 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 3534 . . . . . . . . 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 1006 . . . . . . 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 1004 . . . . . 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 908 . . . . 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 750 . . . . . . . . . . 11  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  P  e. Word  V )
128 ccatlen 12271 . . . . . . . . . . 11  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V )  ->  ( # `
 ( P concat  <" ( P `  0 ) "> ) )  =  ( ( # `  P
)  +  ( # `  <" ( P `
 0 ) "> ) ) )
129127, 9, 128syl2anc 656 . . . . . . . . . 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 12292 . . . . . . . . . . . . 13  |-  ( # `  <" ( P `
 0 ) "> )  =  1
132131a1i 11 . . . . . . . . . . . 12  |-  ( (
# `  P )  =  N  ->  ( # `  <" ( P `
 0 ) "> )  =  1 )
133130, 132oveq12d 6108 . . . . . . . . . . 11  |-  ( (
# `  P )  =  N  ->  ( (
# `  P )  +  ( # `  <" ( P `  0
) "> )
)  =  ( N  +  1 ) )
134133ad2antll 723 . . . . . . . . . 10  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( ( # `
 P )  +  ( # `  <" ( P `  0
) "> )
)  =  ( N  +  1 ) )
135129, 134eqtrd 2473 . . . . . . . . 9  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( # `  ( P concat  <" ( P `
 0 ) "> ) )  =  ( N  +  1 ) )
1361353adant3 1003 . . . . . . . 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 6105 . . . . . . 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 6106 . . . . . 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 2921 . . . . 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 1163 . . 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 10582 . . . . . 6  |-  ( N  e.  NN  ->  N  e.  NN0 )
143 iswwlkn 30227 . . . . . 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 1248 . . . . 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 30226 . . . . . . 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 1003 . . . . . 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 699 . . . . 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 1004 . . 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 908 . 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 12308 . . . . . 6  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( lastS  `  ( P concat  <" ( P `  0 ) "> ) )  =  ( P `  0
) )
1521, 2, 151syl2anc 656 . . . . 5  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  ( P concat  <" ( P ` 
0 ) "> ) )  =  ( P `  0 ) )
153 lbfzo0 11582 . . . . . . . . 9  |-  ( 0  e.  ( 0..^ N )  <->  N  e.  NN )
154153biimpri 206 . . . . . . . 8  |-  ( N  e.  NN  ->  0  e.  ( 0..^ N ) )
155154adantr 462 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  0  e.  ( 0..^ N ) )
15645eleq2d 2508 . . . . . . . 8  |-  ( (
# `  P )  =  N  ->  ( 0  e.  ( 0..^ (
# `  P )
)  <->  0  e.  ( 0..^ N ) ) )
157156ad2antll 723 . . . . . . 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 12272 . . . . . 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 1213 . . . . 5  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P concat  <" ( P ` 
0 ) "> ) `  0 )  =  ( P ` 
0 ) )
161152, 160eqtr4d 2476 . . . 4  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  ( P concat  <" ( P ` 
0 ) "> ) )  =  ( ( P concat  <" ( P `  0 ) "> ) `  0
) )
1621613ad2antl3 1147 . . 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 1003 . 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 5688 . . . 4  |-  ( w  =  ( P concat  <" ( P `  0 ) "> )  ->  ( lastS  `  w )  =  ( lastS  `  ( P concat  <" ( P `  0 ) "> ) ) )
165 fveq1 5687 . . . 4  |-  ( w  =  ( P concat  <" ( P `  0 ) "> )  ->  (
w `  0 )  =  ( ( P concat  <" ( P ` 
0 ) "> ) `  0 )
)
166164, 165eqeq12d 2455 . . 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 3116 . 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 659 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 960    = wceq 1364    e. wcel 1761    =/= wne 2604   A.wral 2713   {crab 2717    u. cun 3323   (/)c0 3634   {csn 3874   {cpr 3876   class class class wbr 4289   ran crn 4837   ` cfv 5415  (class class class)co 6090   CCcc 9276   RRcr 9277   0cc0 9278   1c1 9279    + caddc 9281    < clt 9414    - cmin 9591   NNcn 10318   NN0cn0 10575   ZZcz 10642   ZZ>=cuz 10857  ..^cfzo 11544   #chash 12099  Word cword 12217   lastS clsw 12218   concat cconcat 12219   <"cs1 12220   WWalks cwwlk 30220   WWalksN cwwlkn 30221
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1596  ax-4 1607  ax-5 1675  ax-6 1713  ax-7 1733  ax-8 1763  ax-9 1765  ax-10 1780  ax-11 1785  ax-12 1797  ax-13 1948  ax-ext 2422  ax-rep 4400  ax-sep 4410  ax-nul 4418  ax-pow 4467  ax-pr 4528  ax-un 6371  ax-cnex 9334  ax-resscn 9335  ax-1cn 9336  ax-icn 9337  ax-addcl 9338  ax-addrcl 9339  ax-mulcl 9340  ax-mulrcl 9341  ax-mulcom 9342  ax-addass 9343  ax-mulass 9344  ax-distr 9345  ax-i2m1 9346  ax-1ne0 9347  ax-1rid 9348  ax-rnegex 9349  ax-rrecex 9350  ax-cnre 9351  ax-pre-lttri 9352  ax-pre-lttrn 9353  ax-pre-ltadd 9354  ax-pre-mulgt0 9355
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 961  df-3an 962  df-tru 1367  df-ex 1592  df-nf 1595  df-sb 1706  df-eu 2263  df-mo 2264  df-clab 2428  df-cleq 2434  df-clel 2437  df-nfc 2566  df-ne 2606  df-nel 2607  df-ral 2718  df-rex 2719  df-reu 2720  df-rab 2722  df-v 2972  df-sbc 3184  df-csb 3286  df-dif 3328  df-un 3330  df-in 3332  df-ss 3339  df-pss 3341  df-nul 3635  df-if 3789  df-pw 3859  df-sn 3875  df-pr 3877  df-tp 3879  df-op 3881  df-uni 4089  df-int 4126  df-iun 4170  df-br 4290  df-opab 4348  df-mpt 4349  df-tr 4383  df-eprel 4628  df-id 4632  df-po 4637  df-so 4638  df-fr 4675  df-we 4677  df-ord 4718  df-on 4719  df-lim 4720  df-suc 4721  df-xp 4842  df-rel 4843  df-cnv 4844  df-co 4845  df-dm 4846  df-rn 4847  df-res 4848  df-ima 4849  df-iota 5378  df-fun 5417  df-fn 5418  df-f 5419  df-f1 5420  df-fo 5421  df-f1o 5422  df-fv 5423  df-riota 6049  df-ov 6093  df-oprab 6094  df-mpt2 6095  df-om 6476  df-1st 6576  df-2nd 6577  df-recs 6828  df-rdg 6862  df-1o 6916  df-oadd 6920  df-er 7097  df-map 7212  df-pm 7213  df-en 7307  df-dom 7308  df-sdom 7309  df-fin 7310  df-card 8105  df-pnf 9416  df-mnf 9417  df-xr 9418  df-ltxr 9419  df-le 9420  df-sub 9593  df-neg 9594  df-nn 10319  df-n0 10576  df-z 10643  df-uz 10858  df-fz 11434  df-fzo 11545  df-hash 12100  df-word 12225  df-lsw 12226  df-concat 12227  df-s1 12228  df-wwlk 30222  df-wwlkn 30223
This theorem is referenced by:  clwwlkfo  30368  clwwlknwwlkncl  30371
  Copyright terms: Public domain W3C validator