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

Theorem clwwlkel 25366
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 ++  <" ( 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 762 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  P  e. Word  V
)
2 fstwrdne0 12694 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ` 
0 )  e.  V
)
3 ccatws1n0 12750 . . . . . . 7  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( P ++  <" ( P `  0 ) "> )  =/=  (/) )
41, 2, 3syl2anc 665 . . . . . 6  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ++  <" ( P `  0
) "> )  =/=  (/) )
543ad2antl3 1169 . . . . 5  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( P ++  <" ( P ` 
0 ) "> )  =/=  (/) )
653adant3 1025 . . . 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 ++  <" ( P ` 
0 ) "> )  =/=  (/) )
7 simp2l 1031 . . . . 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 1169 . . . . . . 7  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( P `  0 )  e.  V )
98s1cld 12729 . . . . . 6  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  <" ( P `  0 ) ">  e. Word  V )
1093adant3 1025 . . . . 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 12707 . . . . 5  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V )  ->  ( P ++  <" ( P `
 0 ) "> )  e. Word  V
)
127, 10, 11syl2anc 665 . . . 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 ++  <" ( P ` 
0 ) "> )  e. Word  V )
131adantr 466 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  P  e. Word  V )
142s1cld 12729 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  <" ( P `
 0 ) ">  e. Word  V )
1514adantr 466 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  <" ( P `  0 ) ">  e. Word  V )
16 elfzonn0 11958 . . . . . . . . . . . . . . . . . . . 20  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  ->  i  e.  NN0 )
1716adantl 467 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
i  e.  NN0 )
18 nnz 10959 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  NN  ->  N  e.  ZZ )
1918adantr 466 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  N  e.  ZZ )
20 elfzo0 11954 . . . . . . . . . . . . . . . . . . . . 21  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  <->  ( i  e. 
NN0  /\  ( N  -  1 )  e.  NN  /\  i  < 
( N  -  1 ) ) )
21 nn0re 10878 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( i  e.  NN0  ->  i  e.  RR )
2221adantr 466 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  i  e.  RR )
23 nnre 10616 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( N  e.  NN  ->  N  e.  RR )
24 peano2rem 9940 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( N  e.  RR  ->  ( N  -  1 )  e.  RR )
2523, 24syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  RR )
2625adantl 467 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( N  -  1 )  e.  RR )
2723adantl 467 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  N  e.  RR )
2822, 26, 273jca 1185 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( i  e.  RR  /\  ( N  -  1 )  e.  RR  /\  N  e.  RR )
)
2928adantr 466 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  ( i  e.  RR  /\  ( N  -  1 )  e.  RR  /\  N  e.  RR ) )
30 simpr 462 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  i  <  ( N  -  1 ) )
3123ltm1d 10539 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( N  e.  NN  ->  ( N  -  1 )  <  N )
3231adantl 467 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( N  -  1 )  <  N )
3332adantr 466 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  ( N  -  1 )  < 
N )
34 lttr 9709 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ( i  e.  RR  /\  ( N  -  1
)  e.  RR  /\  N  e.  RR )  ->  ( ( i  < 
( N  -  1 )  /\  ( N  -  1 )  < 
N )  ->  i  <  N ) )
3534imp 430 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( i  e.  RR  /\  ( N  -  1 )  e.  RR  /\  N  e.  RR )  /\  ( i  <  ( N  -  1 )  /\  ( N  - 
1 )  <  N
) )  ->  i  <  N )
3629, 30, 33, 35syl12anc 1262 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( i  e.  NN0  /\  N  e.  NN )  /\  i  <  ( N  -  1 ) )  ->  i  <  N )
3736ex 435 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( i  e.  NN0  /\  N  e.  NN )  ->  ( i  <  ( N  -  1 )  ->  i  <  N
) )
3837impancom 441 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( i  e.  NN0  /\  i  <  ( N  - 
1 ) )  -> 
( N  e.  NN  ->  i  <  N ) )
39383adant2 1024 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( i  e.  NN0  /\  ( N  -  1
)  e.  NN  /\  i  <  ( N  - 
1 ) )  -> 
( N  e.  NN  ->  i  <  N ) )
4020, 39sylbi 198 . . . . . . . . . . . . . . . . . . . 20  |-  ( i  e.  ( 0..^ ( N  -  1 ) )  ->  ( N  e.  NN  ->  i  <  N ) )
4140impcom 431 . . . . . . . . . . . . . . . . . . 19  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
i  <  N )
42 elfzo0z 11956 . . . . . . . . . . . . . . . . . . 19  |-  ( i  e.  ( 0..^ N )  <->  ( i  e. 
NN0  /\  N  e.  ZZ  /\  i  <  N
) )
4317, 19, 41, 42syl3anbrc 1189 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
i  e.  ( 0..^ N ) )
4443adantlr 719 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  i  e.  ( 0..^ N ) )
45 oveq2 6313 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
# `  P )  =  N  ->  ( 0..^ ( # `  P
) )  =  ( 0..^ N ) )
4645eleq2d 2499 . . . . . . . . . . . . . . . . . . 19  |-  ( (
# `  P )  =  N  ->  ( i  e.  ( 0..^ (
# `  P )
)  <->  i  e.  ( 0..^ N ) ) )
4746ad2antll 733 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( i  e.  ( 0..^ ( # `  P ) )  <->  i  e.  ( 0..^ N ) ) )
4847adantr 466 . . . . . . . . . . . . . . . . 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 235 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  i  e.  ( 0..^ ( # `  P
) ) )
50 ccatval1 12709 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V  /\  i  e.  ( 0..^ ( # `  P ) ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  i )  =  ( P `  i ) )
5113, 15, 49, 50syl3anc 1264 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( ( P ++  <" ( P `
 0 ) "> ) `  i
)  =  ( P `
 i ) )
5251eqcomd 2437 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( P `  i )  =  ( ( P ++  <" ( P `  0 ) "> ) `  i
) )
53 elfzom1p1elfzo 11990 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  -> 
( i  +  1 )  e.  ( 0..^ N ) )
5453adantlr 719 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( i  +  1 )  e.  ( 0..^ N ) )
5545ad2antll 733 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( 0..^ (
# `  P )
)  =  ( 0..^ N ) )
5655adantr 466 . . . . . . . . . . . . . . . . 17  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( 0..^ ( # `  P
) )  =  ( 0..^ N ) )
5754, 56eleqtrrd 2520 . . . . . . . . . . . . . . . 16  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( i  +  1 )  e.  ( 0..^ ( # `  P ) ) )
58 ccatval1 12709 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V  /\  ( i  +  1 )  e.  ( 0..^ ( # `  P ) ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) )  =  ( P `  ( i  +  1 ) ) )
5913, 15, 57, 58syl3anc 1264 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) )  =  ( P `
 ( i  +  1 ) ) )
6059eqcomd 2437 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( P `  ( i  +  1 ) )  =  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) )
6152, 60preq12d 4090 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  { ( P `  i ) ,  ( P `  ( i  +  1 ) ) }  =  { ( ( P ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) } )
6261eleq1d 2498 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  /\  i  e.  ( 0..^ ( N  -  1 ) ) )  ->  ( {
( P `  i
) ,  ( P `
 ( i  +  1 ) ) }  e.  ran  E  <->  { (
( P ++  <" ( P `  0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
6362ralbidva 2868 . . . . . . . . . . 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 ++  <" ( P `  0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
6463biimpcd 227 . . . . . . . . . 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 ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
6564adantr 466 . . . . . . . . 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 ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
) )
6665expdcom 440 . . . . . . . 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 ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
) ) )
67663ad2ant3 1028 . . . . . . 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 ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
) ) )
68673imp 1199 . . . . . 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 ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
)
69 fzo0end 12000 . . . . . . . . . . . . . . . . . 18  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  ( 0..^ N ) )
7069adantr 466 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( N  - 
1 )  e.  ( 0..^ N ) )
7145eleq2d 2499 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  P )  =  N  ->  ( ( N  -  1 )  e.  ( 0..^ (
# `  P )
)  <->  ( N  - 
1 )  e.  ( 0..^ N ) ) )
7271ad2antll 733 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( N  -  1 )  e.  ( 0..^ ( # `  P ) )  <->  ( N  -  1 )  e.  ( 0..^ N ) ) )
7370, 72mpbird 235 . . . . . . . . . . . . . . . 16  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( N  - 
1 )  e.  ( 0..^ ( # `  P
) ) )
74 ccatval1 12709 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V  /\  ( N  -  1 )  e.  ( 0..^ ( # `  P ) ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( N  -  1 ) )  =  ( P `  ( N  -  1
) ) )
751, 14, 73, 74syl3anc 1264 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( N  -  1 ) )  =  ( P `  ( N  -  1
) ) )
76 oveq1 6312 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  =  ( # `  P
)  ->  ( N  -  1 )  =  ( ( # `  P
)  -  1 ) )
7776fveq2d 5885 . . . . . . . . . . . . . . . . . . 19  |-  ( N  =  ( # `  P
)  ->  ( P `  ( N  -  1 ) )  =  ( P `  ( (
# `  P )  -  1 ) ) )
7877eqcoms 2441 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  P )  =  N  ->  ( P `
 ( N  - 
1 ) )  =  ( P `  (
( # `  P )  -  1 ) ) )
7978adantl 467 . . . . . . . . . . . . . . . . 17  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( P `  ( N  -  1 ) )  =  ( P `
 ( ( # `  P )  -  1 ) ) )
80 lsw 12698 . . . . . . . . . . . . . . . . . 18  |-  ( P  e. Word  V  ->  ( lastS  `  P )  =  ( P `  ( (
# `  P )  -  1 ) ) )
8180adantr 466 . . . . . . . . . . . . . . . . 17  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( lastS  `  P )  =  ( P `  (
( # `  P )  -  1 ) ) )
8279, 81eqtr4d 2473 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  ( # `  P )  =  N )  -> 
( P `  ( N  -  1 ) )  =  ( lastS  `  P
) )
8382adantl 467 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P `  ( N  -  1
) )  =  ( lastS  `  P ) )
8475, 83eqtr2d 2471 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  P )  =  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( N  -  1 ) ) )
85 fveq2 5881 . . . . . . . . . . . . . . . . 17  |-  ( N  =  ( # `  P
)  ->  ( ( P ++  <" ( P `
 0 ) "> ) `  N
)  =  ( ( P ++  <" ( P `
 0 ) "> ) `  ( # `
 P ) ) )
8685eqcoms 2441 . . . . . . . . . . . . . . . 16  |-  ( (
# `  P )  =  N  ->  ( ( P ++  <" ( P `
 0 ) "> ) `  N
)  =  ( ( P ++  <" ( P `
 0 ) "> ) `  ( # `
 P ) ) )
8786ad2antll 733 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  N )  =  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( # `  P
) ) )
88 nncn 10617 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  NN  ->  N  e.  CC )
89 1cnd 9658 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  NN  ->  1  e.  CC )
9088, 89npcand 9989 . . . . . . . . . . . . . . . . . 18  |-  ( N  e.  NN  ->  (
( N  -  1 )  +  1 )  =  N )
9190eqcomd 2437 . . . . . . . . . . . . . . . . 17  |-  ( N  e.  NN  ->  N  =  ( ( N  -  1 )  +  1 ) )
9291fveq2d 5885 . . . . . . . . . . . . . . . 16  |-  ( N  e.  NN  ->  (
( P ++  <" ( P `  0 ) "> ) `  N
)  =  ( ( P ++  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
9392adantr 466 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  N )  =  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( ( N  -  1 )  +  1 ) ) )
94 ccatws1ls 12751 . . . . . . . . . . . . . . . 16  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( ( P ++  <" ( P `  0
) "> ) `  ( # `  P
) )  =  ( P `  0 ) )
951, 2, 94syl2anc 665 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( # `  P
) )  =  ( P `  0 ) )
9687, 93, 953eqtr3rd 2479 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( P ` 
0 )  =  ( ( P ++  <" ( P `  0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
9784, 96preq12d 4090 . . . . . . . . . . . . 13  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  { ( lastS  `  P
) ,  ( P `
 0 ) }  =  { ( ( P ++  <" ( P `
 0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) } )
9897eleq1d 2498 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( { ( lastS  `  P ) ,  ( P `  0 ) }  e.  ran  E  <->  { ( ( P ++  <" ( P `  0
) "> ) `  ( N  -  1 ) ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) )
9998biimpcd 227 . . . . . . . . . . 11  |-  ( { ( lastS  `  P ) ,  ( P ` 
0 ) }  e.  ran  E  ->  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `
 P )  =  N ) )  ->  { ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( ( N  -  1 )  +  1 ) ) }  e.  ran  E
) )
10099adantl 467 . . . . . . . . . 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 ++  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) )
101100expdcom 440 . . . . . . . . 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 ++  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) ) )
1021013ad2ant3 1028 . . . . . . . 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 ++  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) ) )
1031023imp 1199 . . . . . . 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 ++  <" ( P `  0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E )
104 ovex 6333 . . . . . . . 8  |-  ( N  -  1 )  e. 
_V
105 fveq2 5881 . . . . . . . . . 10  |-  ( i  =  ( N  - 
1 )  ->  (
( P ++  <" ( P `  0 ) "> ) `  i
)  =  ( ( P ++  <" ( P `
 0 ) "> ) `  ( N  -  1 ) ) )
106 oveq1 6312 . . . . . . . . . . 11  |-  ( i  =  ( N  - 
1 )  ->  (
i  +  1 )  =  ( ( N  -  1 )  +  1 ) )
107106fveq2d 5885 . . . . . . . . . 10  |-  ( i  =  ( N  - 
1 )  ->  (
( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) )  =  ( ( P ++  <" ( P `
 0 ) "> ) `  (
( N  -  1 )  +  1 ) ) )
108105, 107preq12d 4090 . . . . . . . . 9  |-  ( i  =  ( N  - 
1 )  ->  { ( ( P ++  <" ( P `  0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  =  {
( ( P ++  <" ( P `  0
) "> ) `  ( N  -  1 ) ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
( N  -  1 )  +  1 ) ) } )
109108eleq1d 2498 . . . . . . . 8  |-  ( i  =  ( N  - 
1 )  ->  ( { ( ( P ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  <->  { ( ( P ++  <" ( P `  0
) "> ) `  ( N  -  1 ) ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
( N  -  1 )  +  1 ) ) }  e.  ran  E ) )
110104, 109ralsn 4041 . . . . . . 7  |-  ( A. i  e.  { ( N  -  1 ) }  { ( ( P ++  <" ( P `
 0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <->  { ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( N  -  1 ) ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( ( N  -  1 )  +  1 ) ) }  e.  ran  E
)
111103, 110sylibr 215 . . . . . 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 ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )
11288, 89, 89addsubd 10006 . . . . . . . . . . . 12  |-  ( N  e.  NN  ->  (
( N  +  1 )  -  1 )  =  ( ( N  -  1 )  +  1 ) )
113112oveq2d 6321 . . . . . . . . . . 11  |-  ( N  e.  NN  ->  (
0..^ ( ( N  +  1 )  - 
1 ) )  =  ( 0..^ ( ( N  -  1 )  +  1 ) ) )
114 nnm1nn0 10911 . . . . . . . . . . . . 13  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  NN0 )
115 elnn0uz 11196 . . . . . . . . . . . . 13  |-  ( ( N  -  1 )  e.  NN0  <->  ( N  - 
1 )  e.  (
ZZ>= `  0 ) )
116114, 115sylib 199 . . . . . . . . . . . 12  |-  ( N  e.  NN  ->  ( N  -  1 )  e.  ( ZZ>= `  0
) )
117 fzosplitsn 12014 . . . . . . . . . . . 12  |-  ( ( N  -  1 )  e.  ( ZZ>= `  0
)  ->  ( 0..^ ( ( N  - 
1 )  +  1 ) )  =  ( ( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) )
118116, 117syl 17 . . . . . . . . . . 11  |-  ( N  e.  NN  ->  (
0..^ ( ( N  -  1 )  +  1 ) )  =  ( ( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) )
119113, 118eqtrd 2470 . . . . . . . . . 10  |-  ( N  e.  NN  ->  (
0..^ ( ( N  +  1 )  - 
1 ) )  =  ( ( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) )
120119raleqdv 3038 . . . . . . . . 9  |-  ( N  e.  NN  ->  ( A. i  e.  (
0..^ ( ( N  +  1 )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <->  A. i  e.  (
( 0..^ ( N  -  1 ) )  u.  { ( N  -  1 ) } ) { ( ( P ++  <" ( P `
 0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
121 ralunb 3653 . . . . . . . . 9  |-  ( A. i  e.  ( (
0..^ ( N  - 
1 ) )  u. 
{ ( N  - 
1 ) } ) { ( ( P ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  <->  ( A. i  e.  ( 0..^ ( N  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  /\  A. i  e. 
{ ( N  - 
1 ) }  {
( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
122120, 121syl6bb 264 . . . . . . . 8  |-  ( N  e.  NN  ->  ( A. i  e.  (
0..^ ( ( N  +  1 )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <-> 
( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  /\  A. i  e.  {
( N  -  1 ) }  { ( ( P ++  <" ( P `  0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
1231223ad2ant3 1028 . . . . . . 7  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( A. i  e.  ( 0..^ ( ( N  +  1 )  -  1 ) ) { ( ( P ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  <->  ( A. i  e.  ( 0..^ ( N  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  /\  A. i  e. 
{ ( N  - 
1 ) }  {
( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
1241233ad2ant1 1026 . . . . . 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 ++  <" ( P `  0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <-> 
( A. i  e.  ( 0..^ ( N  -  1 ) ) { ( ( P ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E  /\  A. i  e.  {
( N  -  1 ) }  { ( ( P ++  <" ( P `  0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
12568, 111, 124mpbir2and 930 . . . . 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 ++ 
<" ( P ` 
0 ) "> ) `  i ) ,  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  ( i  +  1 ) ) }  e.  ran  E
)
126 simprl 762 . . . . . . . . . . 11  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  P  e. Word  V )
127 ccatlen 12708 . . . . . . . . . . 11  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V )  ->  ( # `
 ( P ++  <" ( P `  0
) "> )
)  =  ( (
# `  P )  +  ( # `  <" ( P `  0
) "> )
) )
128126, 9, 127syl2anc 665 . . . . . . . . . 10  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( # `  ( P ++  <" ( P `
 0 ) "> ) )  =  ( ( # `  P
)  +  ( # `  <" ( P `
 0 ) "> ) ) )
129 id 23 . . . . . . . . . . . 12  |-  ( (
# `  P )  =  N  ->  ( # `  P )  =  N )
130 s1len 12731 . . . . . . . . . . . . 13  |-  ( # `  <" ( P `
 0 ) "> )  =  1
131130a1i 11 . . . . . . . . . . . 12  |-  ( (
# `  P )  =  N  ->  ( # `  <" ( P `
 0 ) "> )  =  1 )
132129, 131oveq12d 6323 . . . . . . . . . . 11  |-  ( (
# `  P )  =  N  ->  ( (
# `  P )  +  ( # `  <" ( P `  0
) "> )
)  =  ( N  +  1 ) )
133132ad2antll 733 . . . . . . . . . 10  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( ( # `
 P )  +  ( # `  <" ( P `  0
) "> )
)  =  ( N  +  1 ) )
134128, 133eqtrd 2470 . . . . . . . . 9  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( # `  ( P ++  <" ( P `
 0 ) "> ) )  =  ( N  +  1 ) )
1351343adant3 1025 . . . . . . . 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 ++  <" ( P `
 0 ) "> ) )  =  ( N  +  1 ) )
136135oveq1d 6320 . . . . . . 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 ++  <" ( P `  0
) "> )
)  -  1 )  =  ( ( N  +  1 )  - 
1 ) )
137136oveq2d 6321 . . . . . 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 ++  <" ( P `
 0 ) "> ) )  - 
1 ) )  =  ( 0..^ ( ( N  +  1 )  -  1 ) ) )
138137raleqdv 3038 . . . . 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 ++  <" ( P `
 0 ) "> ) )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E  <->  A. i  e.  (
0..^ ( ( N  +  1 )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
139125, 138mpbird 235 . . . 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 ++  <" ( P ` 
0 ) "> ) )  -  1 ) ) { ( ( P ++  <" ( P `  0 ) "> ) `  i
) ,  ( ( P ++  <" ( P `
 0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )
1406, 12, 1393jca 1185 . . 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 ++  <" ( P `
 0 ) "> )  =/=  (/)  /\  ( P ++  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P ++  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) )
141 nnnn0 10876 . . . . . 6  |-  ( N  e.  NN  ->  N  e.  NN0 )
142 iswwlkn 25257 . . . . . 6  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN0 )  -> 
( ( P ++  <" ( P `  0
) "> )  e.  ( ( V WWalksN  E
) `  N )  <->  ( ( P ++  <" ( P `  0 ) "> )  e.  ( V WWalks  E )  /\  ( # `  ( P ++ 
<" ( P ` 
0 ) "> ) )  =  ( N  +  1 ) ) ) )
143141, 142syl3an3 1299 . . . . 5  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( P ++  <" ( P `  0
) "> )  e.  ( ( V WWalksN  E
) `  N )  <->  ( ( P ++  <" ( P `  0 ) "> )  e.  ( V WWalks  E )  /\  ( # `  ( P ++ 
<" ( P ` 
0 ) "> ) )  =  ( N  +  1 ) ) ) )
144 iswwlk 25256 . . . . . . 7  |-  ( ( V  e.  X  /\  E  e.  Y )  ->  ( ( P ++  <" ( P `  0
) "> )  e.  ( V WWalks  E )  <-> 
( ( P ++  <" ( P `  0
) "> )  =/=  (/)  /\  ( P ++ 
<" ( P ` 
0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P ++  <" ( P `
 0 ) "> ) )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
1451443adant3 1025 . . . . . 6  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( P ++  <" ( P `  0
) "> )  e.  ( V WWalks  E )  <-> 
( ( P ++  <" ( P `  0
) "> )  =/=  (/)  /\  ( P ++ 
<" ( P ` 
0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P ++  <" ( P `
 0 ) "> ) )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E ) ) )
146145anbi1d 709 . . . . 5  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( ( P ++ 
<" ( P ` 
0 ) "> )  e.  ( V WWalks  E )  /\  ( # `  ( P ++  <" ( P `  0 ) "> ) )  =  ( N  +  1 ) )  <->  ( (
( P ++  <" ( P `  0 ) "> )  =/=  (/)  /\  ( P ++  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P ++  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )  /\  ( # `  ( P ++  <" ( P `  0 ) "> ) )  =  ( N  +  1 ) ) ) )
147143, 146bitrd 256 . . . 4  |-  ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  ->  ( ( P ++  <" ( P `  0
) "> )  e.  ( ( V WWalksN  E
) `  N )  <->  ( ( ( P ++  <" ( P `  0
) "> )  =/=  (/)  /\  ( P ++ 
<" ( P ` 
0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P ++  <" ( P `
 0 ) "> ) )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )  /\  ( # `  ( P ++  <" ( P `  0 ) "> ) )  =  ( N  +  1 ) ) ) )
1481473ad2ant1 1026 . . 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 ++  <" ( P `
 0 ) "> )  e.  ( ( V WWalksN  E ) `  N )  <->  ( (
( P ++  <" ( P `  0 ) "> )  =/=  (/)  /\  ( P ++  <" ( P `
 0 ) "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( P ++  <" ( P `  0 ) "> ) )  - 
1 ) ) { ( ( P ++  <" ( P `  0
) "> ) `  i ) ,  ( ( P ++  <" ( P `  0 ) "> ) `  (
i  +  1 ) ) }  e.  ran  E )  /\  ( # `  ( P ++  <" ( P `  0 ) "> ) )  =  ( N  +  1 ) ) ) )
149140, 135, 148mpbir2and 930 . 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 ++  <" ( P ` 
0 ) "> )  e.  ( ( V WWalksN  E ) `  N
) )
150 lswccats1 12752 . . . . . 6  |-  ( ( P  e. Word  V  /\  ( P `  0 )  e.  V )  -> 
( lastS  `  ( P ++  <" ( P `  0
) "> )
)  =  ( P `
 0 ) )
1511, 2, 150syl2anc 665 . . . . 5  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  ( P ++ 
<" ( P ` 
0 ) "> ) )  =  ( P `  0 ) )
152 lbfzo0 11953 . . . . . . . . 9  |-  ( 0  e.  ( 0..^ N )  <->  N  e.  NN )
153152biimpri 209 . . . . . . . 8  |-  ( N  e.  NN  ->  0  e.  ( 0..^ N ) )
154153adantr 466 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  0  e.  ( 0..^ N ) )
15545eleq2d 2499 . . . . . . . 8  |-  ( (
# `  P )  =  N  ->  ( 0  e.  ( 0..^ (
# `  P )
)  <->  0  e.  ( 0..^ N ) ) )
156155ad2antll 733 . . . . . . 7  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( 0  e.  ( 0..^ ( # `  P ) )  <->  0  e.  ( 0..^ N ) ) )
157154, 156mpbird 235 . . . . . 6  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  0  e.  ( 0..^ ( # `  P
) ) )
158 ccatval1 12709 . . . . . 6  |-  ( ( P  e. Word  V  /\  <" ( P ` 
0 ) ">  e. Word  V  /\  0  e.  ( 0..^ ( # `  P ) ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  0 )  =  ( P ` 
0 ) )
1591, 14, 157, 158syl3anc 1264 . . . . 5  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( ( P ++ 
<" ( P ` 
0 ) "> ) `  0 )  =  ( P ` 
0 ) )
160151, 159eqtr4d 2473 . . . 4  |-  ( ( N  e.  NN  /\  ( P  e. Word  V  /\  ( # `  P )  =  N ) )  ->  ( lastS  `  ( P ++ 
<" ( P ` 
0 ) "> ) )  =  ( ( P ++  <" ( P `  0 ) "> ) `  0
) )
1611603ad2antl3 1169 . . 3  |-  ( ( ( V  e.  X  /\  E  e.  Y  /\  N  e.  NN )  /\  ( P  e. Word  V  /\  ( # `  P
)  =  N ) )  ->  ( lastS  `  ( P ++  <" ( P `
 0 ) "> ) )  =  ( ( P ++  <" ( P `  0
) "> ) `  0 ) )
1621613adant3 1025 . 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 ++  <" ( P `
 0 ) "> ) )  =  ( ( P ++  <" ( P `  0
) "> ) `  0 ) )
163 fveq2 5881 . . . 4  |-  ( w  =  ( P ++  <" ( P `  0
) "> )  ->  ( lastS  `  w )  =  ( lastS  `  ( P ++ 
<" ( P ` 
0 ) "> ) ) )
164 fveq1 5880 . . . 4  |-  ( w  =  ( P ++  <" ( P `  0
) "> )  ->  ( w `  0
)  =  ( ( P ++  <" ( P `
 0 ) "> ) `  0
) )
165163, 164eqeq12d 2451 . . 3  |-  ( w  =  ( P ++  <" ( P `  0
) "> )  ->  ( ( lastS  `  w
)  =  ( w `
 0 )  <->  ( lastS  `  ( P ++  <" ( P `
 0 ) "> ) )  =  ( ( P ++  <" ( P `  0
) "> ) `  0 ) ) )
166 clwwlkbij.d . . 3  |-  D  =  { w  e.  ( ( V WWalksN  E ) `  N )  |  ( lastS  `  w )  =  ( w `  0 ) }
167165, 166elrab2 3237 . 2  |-  ( ( P ++  <" ( P `
 0 ) "> )  e.  D  <->  ( ( P ++  <" ( P `  0 ) "> )  e.  ( ( V WWalksN  E ) `  N )  /\  ( lastS  `  ( P ++  <" ( P `  0 ) "> ) )  =  ( ( P ++  <" ( P `  0
) "> ) `  0 ) ) )
168149, 162, 167sylanbrc 668 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 ++  <" ( P ` 
0 ) "> )  e.  D )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 187    /\ wa 370    /\ w3a 982    = wceq 1437    e. wcel 1870    =/= wne 2625   A.wral 2782   {crab 2786    u. cun 3440   (/)c0 3767   {csn 4002   {cpr 4004   class class class wbr 4426   ran crn 4855   ` cfv 5601  (class class class)co 6305   RRcr 9537   0cc0 9538   1c1 9539    + caddc 9541    < clt 9674    - cmin 9859   NNcn 10609   NN0cn0 10869   ZZcz 10937   ZZ>=cuz 11159  ..^cfzo 11913   #chash 12512  Word cword 12643   lastS clsw 12644   ++ cconcat 12645   <"cs1 12646   WWalks cwwlk 25250   WWalksN cwwlkn 25251
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1665  ax-4 1678  ax-5 1751  ax-6 1797  ax-7 1841  ax-8 1872  ax-9 1874  ax-10 1889  ax-11 1894  ax-12 1907  ax-13 2055  ax-ext 2407  ax-rep 4538  ax-sep 4548  ax-nul 4556  ax-pow 4603  ax-pr 4661  ax-un 6597  ax-cnex 9594  ax-resscn 9595  ax-1cn 9596  ax-icn 9597  ax-addcl 9598  ax-addrcl 9599  ax-mulcl 9600  ax-mulrcl 9601  ax-mulcom 9602  ax-addass 9603  ax-mulass 9604  ax-distr 9605  ax-i2m1 9606  ax-1ne0 9607  ax-1rid 9608  ax-rnegex 9609  ax-rrecex 9610  ax-cnre 9611  ax-pre-lttri 9612  ax-pre-lttrn 9613  ax-pre-ltadd 9614  ax-pre-mulgt0 9615
This theorem depends on definitions:  df-bi 188  df-or 371  df-an 372  df-3or 983  df-3an 984  df-tru 1440  df-ex 1660  df-nf 1664  df-sb 1790  df-eu 2270  df-mo 2271  df-clab 2415  df-cleq 2421  df-clel 2424  df-nfc 2579  df-ne 2627  df-nel 2628  df-ral 2787  df-rex 2788  df-reu 2789  df-rmo 2790  df-rab 2791  df-v 3089  df-sbc 3306  df-csb 3402  df-dif 3445  df-un 3447  df-in 3449  df-ss 3456  df-pss 3458  df-nul 3768  df-if 3916  df-pw 3987  df-sn 4003  df-pr 4005  df-tp 4007  df-op 4009  df-uni 4223  df-int 4259  df-iun 4304  df-br 4427  df-opab 4485  df-mpt 4486  df-tr 4521  df-eprel 4765  df-id 4769  df-po 4775  df-so 4776  df-fr 4813  df-we 4815  df-xp 4860  df-rel 4861  df-cnv 4862  df-co 4863  df-dm 4864  df-rn 4865  df-res 4866  df-ima 4867  df-pred 5399  df-ord 5445  df-on 5446  df-lim 5447  df-suc 5448  df-iota 5565  df-fun 5603  df-fn 5604  df-f 5605  df-f1 5606  df-fo 5607  df-f1o 5608  df-fv 5609  df-riota 6267  df-ov 6308  df-oprab 6309  df-mpt2 6310  df-om 6707  df-1st 6807  df-2nd 6808  df-wrecs 7036  df-recs 7098  df-rdg 7136  df-1o 7190  df-oadd 7194  df-er 7371  df-map 7482  df-pm 7483  df-en 7578  df-dom 7579  df-sdom 7580  df-fin 7581  df-card 8372  df-cda 8596  df-pnf 9676  df-mnf 9677  df-xr 9678  df-ltxr 9679  df-le 9680  df-sub 9861  df-neg 9862  df-nn 10610  df-2 10668  df-n0 10870  df-z 10938  df-uz 11160  df-rp 11303  df-fz 11783  df-fzo 11914  df-hash 12513  df-word 12651  df-lsw 12652  df-concat 12653  df-s1 12654  df-wwlk 25252  df-wwlkn 25253
This theorem is referenced by:  clwwlkfo  25370  clwwlknwwlkncl  25373
  Copyright terms: Public domain W3C validator