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

Theorem clwwlksext2edg 26923
Description: If a word concatenated with a vertex represents a closed walk in (in a graph), there is an edge between this vertex and the last vertex of the word, and between this vertex and the first vertex of the word. (Contributed by Alexander van der Vekens, 3-Oct-2018.) (Revised by AV, 27-Apr-2021.)
Hypotheses
Ref Expression
clwwlksext2edg.v  |-  V  =  (Vtx `  G )
clwwlksext2edg.e  |-  E  =  (Edg `  G )
Assertion
Ref Expression
clwwlksext2edg  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( W ++  <" Z "> )  e.  ( N ClWWalksN  G )
)  ->  ( {
( lastS  `  W ) ,  Z }  e.  E  /\  { Z ,  ( W `  0 ) }  e.  E ) )

Proof of Theorem clwwlksext2edg
Dummy variable  i is distinct from all other variables.
StepHypRef Expression
1 clwwlksext2edg.v . . . 4  |-  V  =  (Vtx `  G )
21clwwlknbp0 26884 . . 3  |-  ( ( W ++  <" Z "> )  e.  ( N ClWWalksN  G )  ->  (
( G  e.  _V  /\  N  e.  NN )  /\  ( ( W ++ 
<" Z "> )  e. Word  V  /\  ( # `
 ( W ++  <" Z "> )
)  =  N ) ) )
3 clwwlksext2edg.e . . . . . 6  |-  E  =  (Edg `  G )
41, 3isclwwlksnx 26889 . . . . 5  |-  ( N  e.  NN  ->  (
( W ++  <" Z "> )  e.  ( N ClWWalksN  G )  <->  ( (
( W ++  <" Z "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  - 
1 ) ) { ( ( W ++  <" Z "> ) `  i ) ,  ( ( W ++  <" Z "> ) `  (
i  +  1 ) ) }  e.  E  /\  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E
)  /\  ( # `  ( W ++  <" Z "> ) )  =  N ) ) )
54ad2antlr 763 . . . 4  |-  ( ( ( G  e.  _V  /\  N  e.  NN )  /\  ( ( W ++ 
<" Z "> )  e. Word  V  /\  ( # `
 ( W ++  <" Z "> )
)  =  N ) )  ->  ( ( W ++  <" Z "> )  e.  ( N ClWWalksN  G )  <->  ( (
( W ++  <" Z "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  - 
1 ) ) { ( ( W ++  <" Z "> ) `  i ) ,  ( ( W ++  <" Z "> ) `  (
i  +  1 ) ) }  e.  E  /\  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E
)  /\  ( # `  ( W ++  <" Z "> ) )  =  N ) ) )
6 ige2m2fzo 12530 . . . . . . . . . . . . . . 15  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( N  -  2 )  e.  ( 0..^ ( N  -  1 ) ) )
763ad2ant3 1084 . . . . . . . . . . . . . 14  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( N  -  2 )  e.  ( 0..^ ( N  -  1 ) ) )
87adantr 481 . . . . . . . . . . . . 13  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( N  -  2 )  e.  ( 0..^ ( N  -  1 ) ) )
9 oveq1 6657 . . . . . . . . . . . . . . . 16  |-  ( (
# `  ( W ++  <" Z "> ) )  =  N  ->  ( ( # `  ( W ++  <" Z "> ) )  - 
1 )  =  ( N  -  1 ) )
109oveq2d 6666 . . . . . . . . . . . . . . 15  |-  ( (
# `  ( W ++  <" Z "> ) )  =  N  ->  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) )  =  ( 0..^ ( N  - 
1 ) ) )
1110eleq2d 2687 . . . . . . . . . . . . . 14  |-  ( (
# `  ( W ++  <" Z "> ) )  =  N  ->  ( ( N  -  2 )  e.  ( 0..^ ( (
# `  ( W ++  <" Z "> ) )  -  1 ) )  <->  ( N  -  2 )  e.  ( 0..^ ( N  -  1 ) ) ) )
1211adantl 482 . . . . . . . . . . . . 13  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( N  -  2 )  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) )  <->  ( N  -  2 )  e.  ( 0..^ ( N  -  1 ) ) ) )
138, 12mpbird 247 . . . . . . . . . . . 12  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( N  -  2 )  e.  ( 0..^ ( (
# `  ( W ++  <" Z "> ) )  -  1 ) ) )
14 fveq2 6191 . . . . . . . . . . . . . . 15  |-  ( i  =  ( N  - 
2 )  ->  (
( W ++  <" Z "> ) `  i
)  =  ( ( W ++  <" Z "> ) `  ( N  -  2 ) ) )
15 oveq1 6657 . . . . . . . . . . . . . . . 16  |-  ( i  =  ( N  - 
2 )  ->  (
i  +  1 )  =  ( ( N  -  2 )  +  1 ) )
1615fveq2d 6195 . . . . . . . . . . . . . . 15  |-  ( i  =  ( N  - 
2 )  ->  (
( W ++  <" Z "> ) `  (
i  +  1 ) )  =  ( ( W ++  <" Z "> ) `  ( ( N  -  2 )  +  1 ) ) )
1714, 16preq12d 4276 . . . . . . . . . . . . . 14  |-  ( i  =  ( N  - 
2 )  ->  { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  =  { ( ( W ++  <" Z "> ) `  ( N  -  2 ) ) ,  ( ( W ++  <" Z "> ) `  ( ( N  -  2 )  +  1 ) ) } )
1817eleq1d 2686 . . . . . . . . . . . . 13  |-  ( i  =  ( N  - 
2 )  ->  ( { ( ( W ++ 
<" Z "> ) `  i ) ,  ( ( W ++ 
<" Z "> ) `  ( i  +  1 ) ) }  e.  E  <->  { (
( W ++  <" Z "> ) `  ( N  -  2 ) ) ,  ( ( W ++  <" Z "> ) `  ( ( N  -  2 )  +  1 ) ) }  e.  E ) )
1918rspcv 3305 . . . . . . . . . . . 12  |-  ( ( N  -  2 )  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) )  ->  ( A. i  e.  (
0..^ ( ( # `  ( W ++  <" Z "> ) )  - 
1 ) ) { ( ( W ++  <" Z "> ) `  i ) ,  ( ( W ++  <" Z "> ) `  (
i  +  1 ) ) }  e.  E  ->  { ( ( W ++ 
<" Z "> ) `  ( N  -  2 ) ) ,  ( ( W ++ 
<" Z "> ) `  ( ( N  -  2 )  +  1 ) ) }  e.  E ) )
2013, 19syl 17 . . . . . . . . . . 11  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) ) { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  e.  E  ->  { ( ( W ++ 
<" Z "> ) `  ( N  -  2 ) ) ,  ( ( W ++ 
<" Z "> ) `  ( ( N  -  2 )  +  1 ) ) }  e.  E ) )
21 wrdlenccats1lenm1 13399 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( W  e. Word  V  /\  Z  e.  V )  ->  ( # `  W
)  =  ( (
# `  ( W ++  <" Z "> ) )  -  1 ) )
2221, 9sylan9eq 2676 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( W  e. Word  V  /\  Z  e.  V
)  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( # `  W
)  =  ( N  -  1 ) )
2322ex 450 . . . . . . . . . . . . . . . . . 18  |-  ( ( W  e. Word  V  /\  Z  e.  V )  ->  ( ( # `  ( W ++  <" Z "> ) )  =  N  ->  ( # `  W
)  =  ( N  -  1 ) ) )
24233adant3 1081 . . . . . . . . . . . . . . . . 17  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  ( W ++  <" Z "> ) )  =  N  ->  ( # `  W
)  =  ( N  -  1 ) ) )
25 eluzelcn 11699 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( N  e.  ( ZZ>= `  2
)  ->  N  e.  CC )
26 1cnd 10056 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( N  e.  ( ZZ>= `  2
)  ->  1  e.  CC )
2725, 26, 26subsub4d 10423 . . . . . . . . . . . . . . . . . . . . 21  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( ( N  -  1 )  -  1 )  =  ( N  -  (
1  +  1 ) ) )
28 1p1e2 11134 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( 1  +  1 )  =  2
2928a1i 11 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( 1  +  1 )  =  2 )
3029oveq2d 6666 . . . . . . . . . . . . . . . . . . . . 21  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( N  -  ( 1  +  1 ) )  =  ( N  -  2 ) )
3127, 30eqtr2d 2657 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( N  -  2 )  =  ( ( N  - 
1 )  -  1 ) )
32313ad2ant3 1084 . . . . . . . . . . . . . . . . . . 19  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( N  -  2 )  =  ( ( N  -  1 )  -  1 ) )
33 oveq1 6657 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
# `  W )  =  ( N  - 
1 )  ->  (
( # `  W )  -  1 )  =  ( ( N  - 
1 )  -  1 ) )
3433eqcomd 2628 . . . . . . . . . . . . . . . . . . 19  |-  ( (
# `  W )  =  ( N  - 
1 )  ->  (
( N  -  1 )  -  1 )  =  ( ( # `  W )  -  1 ) )
3532, 34sylan9eq 2676 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  ( N  - 
2 )  =  ( ( # `  W
)  -  1 ) )
3635ex 450 . . . . . . . . . . . . . . . . 17  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  W
)  =  ( N  -  1 )  -> 
( N  -  2 )  =  ( (
# `  W )  -  1 ) ) )
3724, 36syld 47 . . . . . . . . . . . . . . . 16  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  ( W ++  <" Z "> ) )  =  N  ->  ( N  - 
2 )  =  ( ( # `  W
)  -  1 ) ) )
3837imp 445 . . . . . . . . . . . . . . 15  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( N  -  2 )  =  ( ( # `  W
)  -  1 ) )
3938fveq2d 6195 . . . . . . . . . . . . . 14  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( W ++  <" Z "> ) `  ( N  -  2 ) )  =  ( ( W ++ 
<" Z "> ) `  ( ( # `
 W )  - 
1 ) ) )
40 simpl1 1064 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  W  e. Word  V
)
41 s1cl 13382 . . . . . . . . . . . . . . . . . . . . 21  |-  ( Z  e.  V  ->  <" Z ">  e. Word  V )
42413ad2ant2 1083 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  ->  <" Z ">  e. Word  V )
4342adantr 481 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  <" Z ">  e. Word  V )
44 eluz2 11693 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( N  e.  ( ZZ>= `  2
)  <->  ( 2  e.  ZZ  /\  N  e.  ZZ  /\  2  <_  N ) )
45 zre 11381 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( N  e.  ZZ  ->  N  e.  RR )
46 1red 10055 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( ( N  e.  RR  /\  2  <_  N )  -> 
1  e.  RR )
47 2re 11090 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  |-  2  e.  RR
4847a1i 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( ( N  e.  RR  /\  2  <_  N )  -> 
2  e.  RR )
49 simpl 473 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( ( N  e.  RR  /\  2  <_  N )  ->  N  e.  RR )
50 1lt2 11194 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  |-  1  <  2
5150a1i 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( ( N  e.  RR  /\  2  <_  N )  -> 
1  <  2 )
52 simpr 477 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( ( N  e.  RR  /\  2  <_  N )  -> 
2  <_  N )
5346, 48, 49, 51, 52ltletrd 10197 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( ( N  e.  RR  /\  2  <_  N )  -> 
1  <  N )
54 1red 10055 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  |-  ( N  e.  RR  ->  1  e.  RR )
55 id 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  |-  ( N  e.  RR  ->  N  e.  RR )
5654, 55posdifd 10614 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  |-  ( N  e.  RR  ->  (
1  <  N  <->  0  <  ( N  -  1 ) ) )
5756adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  |-  ( ( N  e.  RR  /\  2  <_  N )  -> 
( 1  <  N  <->  0  <  ( N  - 
1 ) ) )
5853, 57mpbid 222 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  |-  ( ( N  e.  RR  /\  2  <_  N )  -> 
0  <  ( N  -  1 ) )
5958ex 450 . . . . . . . . . . . . . . . . . . . . . . . . . . 27  |-  ( N  e.  RR  ->  (
2  <_  N  ->  0  <  ( N  - 
1 ) ) )
6045, 59syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( N  e.  ZZ  ->  (
2  <_  N  ->  0  <  ( N  - 
1 ) ) )
6160a1i 11 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( 2  e.  ZZ  ->  ( N  e.  ZZ  ->  ( 2  <_  N  ->  0  <  ( N  - 
1 ) ) ) )
62613imp 1256 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( 2  e.  ZZ  /\  N  e.  ZZ  /\  2  <_  N )  ->  0  <  ( N  -  1 ) )
6344, 62sylbi 207 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( N  e.  ( ZZ>= `  2
)  ->  0  <  ( N  -  1 ) )
6463ad2antlr 763 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( W  e. Word  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  0  <  ( N  -  1 ) )
65 breq2 4657 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
# `  W )  =  ( N  - 
1 )  ->  (
0  <  ( # `  W
)  <->  0  <  ( N  -  1 ) ) )
6665adantl 482 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( W  e. Word  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  ( 0  < 
( # `  W )  <->  0  <  ( N  -  1 ) ) )
6764, 66mpbird 247 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( W  e. Word  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  0  <  ( # `
 W ) )
68 hashneq0 13155 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( W  e. Word  V  ->  (
0  <  ( # `  W
)  <->  W  =/=  (/) ) )
6968adantr 481 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( W  e. Word  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( 0  <  ( # `
 W )  <->  W  =/=  (/) ) )
7069adantr 481 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( W  e. Word  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  ( 0  < 
( # `  W )  <-> 
W  =/=  (/) ) )
7167, 70mpbid 222 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( W  e. Word  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  W  =/=  (/) )
72713adantl2 1218 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  W  =/=  (/) )
7340, 43, 723jca 1242 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  ( W  e. Word  V  /\  <" Z ">  e. Word  V  /\  W  =/=  (/) ) )
7473ex 450 . . . . . . . . . . . . . . . . 17  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  W
)  =  ( N  -  1 )  -> 
( W  e. Word  V  /\  <" Z ">  e. Word  V  /\  W  =/=  (/) ) ) )
7524, 74syld 47 . . . . . . . . . . . . . . . 16  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  ( W ++  <" Z "> ) )  =  N  ->  ( W  e. Word  V  /\  <" Z ">  e. Word  V  /\  W  =/=  (/) ) ) )
7675imp 445 . . . . . . . . . . . . . . 15  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( W  e. Word  V  /\  <" Z ">  e. Word  V  /\  W  =/=  (/) ) )
77 ccatval1lsw 13368 . . . . . . . . . . . . . . 15  |-  ( ( W  e. Word  V  /\  <" Z ">  e. Word  V  /\  W  =/=  (/) )  ->  ( ( W ++  <" Z "> ) `  ( (
# `  W )  -  1 ) )  =  ( lastS  `  W
) )
7876, 77syl 17 . . . . . . . . . . . . . 14  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( W ++  <" Z "> ) `  ( (
# `  W )  -  1 ) )  =  ( lastS  `  W
) )
7939, 78eqtrd 2656 . . . . . . . . . . . . 13  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( W ++  <" Z "> ) `  ( N  -  2 ) )  =  ( lastS  `  W
) )
80 2m1e1 11135 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( 2  -  1 )  =  1
8180a1i 11 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( 2  -  1 )  =  1 )
8281eqcomd 2628 . . . . . . . . . . . . . . . . . . . . 21  |-  ( N  e.  ( ZZ>= `  2
)  ->  1  =  ( 2  -  1 ) )
8382oveq2d 6666 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( N  -  1 )  =  ( N  -  (
2  -  1 ) ) )
84 2cnd 11093 . . . . . . . . . . . . . . . . . . . . 21  |-  ( N  e.  ( ZZ>= `  2
)  ->  2  e.  CC )
8525, 84, 26subsubd 10420 . . . . . . . . . . . . . . . . . . . 20  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( N  -  ( 2  -  1 ) )  =  ( ( N  - 
2 )  +  1 ) )
8683, 85eqtr2d 2657 . . . . . . . . . . . . . . . . . . 19  |-  ( N  e.  ( ZZ>= `  2
)  ->  ( ( N  -  2 )  +  1 )  =  ( N  -  1 ) )
87863ad2ant3 1084 . . . . . . . . . . . . . . . . . 18  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( N  - 
2 )  +  1 )  =  ( N  -  1 ) )
88 eqeq2 2633 . . . . . . . . . . . . . . . . . 18  |-  ( (
# `  W )  =  ( N  - 
1 )  ->  (
( ( N  - 
2 )  +  1 )  =  ( # `  W )  <->  ( ( N  -  2 )  +  1 )  =  ( N  -  1 ) ) )
8987, 88syl5ibrcom 237 . . . . . . . . . . . . . . . . 17  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  W
)  =  ( N  -  1 )  -> 
( ( N  - 
2 )  +  1 )  =  ( # `  W ) ) )
9024, 89syld 47 . . . . . . . . . . . . . . . 16  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  ( W ++  <" Z "> ) )  =  N  ->  ( ( N  -  2 )  +  1 )  =  (
# `  W )
) )
9190imp 445 . . . . . . . . . . . . . . 15  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( N  -  2 )  +  1 )  =  ( # `  W
) )
9291fveq2d 6195 . . . . . . . . . . . . . 14  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( W ++  <" Z "> ) `  ( ( N  -  2 )  +  1 ) )  =  ( ( W ++ 
<" Z "> ) `  ( # `  W
) ) )
93 id 22 . . . . . . . . . . . . . . . . 17  |-  ( ( W  e. Word  V  /\  Z  e.  V )  ->  ( W  e. Word  V  /\  Z  e.  V
) )
94933adant3 1081 . . . . . . . . . . . . . . . 16  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( W  e. Word  V  /\  Z  e.  V
) )
9594adantr 481 . . . . . . . . . . . . . . 15  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( W  e. Word  V  /\  Z  e.  V ) )
96 ccatws1ls 13410 . . . . . . . . . . . . . . 15  |-  ( ( W  e. Word  V  /\  Z  e.  V )  ->  ( ( W ++  <" Z "> ) `  ( # `  W
) )  =  Z )
9795, 96syl 17 . . . . . . . . . . . . . 14  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( W ++  <" Z "> ) `  ( # `  W ) )  =  Z )
9892, 97eqtrd 2656 . . . . . . . . . . . . 13  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( W ++  <" Z "> ) `  ( ( N  -  2 )  +  1 ) )  =  Z )
9979, 98preq12d 4276 . . . . . . . . . . . 12  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  { (
( W ++  <" Z "> ) `  ( N  -  2 ) ) ,  ( ( W ++  <" Z "> ) `  ( ( N  -  2 )  +  1 ) ) }  =  { ( lastS  `  W ) ,  Z } )
10099eleq1d 2686 . . . . . . . . . . 11  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( {
( ( W ++  <" Z "> ) `  ( N  -  2 ) ) ,  ( ( W ++  <" Z "> ) `  (
( N  -  2 )  +  1 ) ) }  e.  E  <->  { ( lastS  `  W ) ,  Z }  e.  E
) )
10120, 100sylibd 229 . . . . . . . . . 10  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) ) { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  e.  E  ->  { ( lastS  `  W ) ,  Z }  e.  E ) )
102101ex 450 . . . . . . . . 9  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  ( W ++  <" Z "> ) )  =  N  ->  ( A. i  e.  ( 0..^ ( (
# `  ( W ++  <" Z "> ) )  -  1 ) ) { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  e.  E  ->  { ( lastS  `  W ) ,  Z }  e.  E ) ) )
103102com13 88 . . . . . . . 8  |-  ( A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) ) { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  e.  E  -> 
( ( # `  ( W ++  <" Z "> ) )  =  N  ->  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= `  2 )
)  ->  { ( lastS  `  W ) ,  Z }  e.  E )
) )
1041033ad2ant2 1083 . . . . . . 7  |-  ( ( ( W ++  <" Z "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  - 
1 ) ) { ( ( W ++  <" Z "> ) `  i ) ,  ( ( W ++  <" Z "> ) `  (
i  +  1 ) ) }  e.  E  /\  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E
)  ->  ( ( # `
 ( W ++  <" Z "> )
)  =  N  -> 
( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  ->  { ( lastS  `  W
) ,  Z }  e.  E ) ) )
105104imp31 448 . . . . . 6  |-  ( ( ( ( ( W ++ 
<" Z "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) ) { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  e.  E  /\  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E
)  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  /\  ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= `  2 )
) )  ->  { ( lastS  `  W ) ,  Z }  e.  E )
10694adantr 481 . . . . . . . . . . . . . . 15  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  ( W  e. Word  V  /\  Z  e.  V
) )
107 lswccats1 13411 . . . . . . . . . . . . . . 15  |-  ( ( W  e. Word  V  /\  Z  e.  V )  ->  ( lastS  `  ( W ++  <" Z "> ) )  =  Z )
108106, 107syl 17 . . . . . . . . . . . . . 14  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  ( lastS  `  ( W ++ 
<" Z "> ) )  =  Z )
109633ad2ant3 1084 . . . . . . . . . . . . . . . . 17  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
0  <  ( N  -  1 ) )
110109adantr 481 . . . . . . . . . . . . . . . 16  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  0  <  ( N  -  1 ) )
11165adantl 482 . . . . . . . . . . . . . . . 16  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  ( 0  < 
( # `  W )  <->  0  <  ( N  -  1 ) ) )
112110, 111mpbird 247 . . . . . . . . . . . . . . 15  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  0  <  ( # `
 W ) )
113 ccatfv0 13367 . . . . . . . . . . . . . . 15  |-  ( ( W  e. Word  V  /\  <" Z ">  e. Word  V  /\  0  < 
( # `  W ) )  ->  ( ( W ++  <" Z "> ) `  0 )  =  ( W ` 
0 ) )
11440, 43, 112, 113syl3anc 1326 . . . . . . . . . . . . . 14  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  ( ( W ++ 
<" Z "> ) `  0 )  =  ( W ` 
0 ) )
115108, 114preq12d 4276 . . . . . . . . . . . . 13  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( # `  W
)  =  ( N  -  1 ) )  ->  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  =  { Z ,  ( W `  0 ) } )
116115ex 450 . . . . . . . . . . . 12  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  W
)  =  ( N  -  1 )  ->  { ( lastS  `  ( W ++ 
<" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  =  { Z ,  ( W `  0 ) } ) )
11724, 116syld 47 . . . . . . . . . . 11  |-  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= ` 
2 ) )  -> 
( ( # `  ( W ++  <" Z "> ) )  =  N  ->  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  =  { Z ,  ( W `  0 ) } ) )
118117impcom 446 . . . . . . . . . 10  |-  ( ( ( # `  ( W ++  <" Z "> ) )  =  N  /\  ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) ) )  ->  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0 ) }  =  { Z , 
( W `  0
) } )
119118eleq1d 2686 . . . . . . . . 9  |-  ( ( ( # `  ( W ++  <" Z "> ) )  =  N  /\  ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) ) )  ->  ( {
( lastS  `  ( W ++  <" Z "> )
) ,  ( ( W ++  <" Z "> ) `  0 ) }  e.  E  <->  { Z ,  ( W ` 
0 ) }  e.  E ) )
120119biimpcd 239 . . . . . . . 8  |-  ( { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E  ->  ( ( ( # `  ( W ++  <" Z "> ) )  =  N  /\  ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= `  2 )
) )  ->  { Z ,  ( W ` 
0 ) }  e.  E ) )
1211203ad2ant3 1084 . . . . . . 7  |-  ( ( ( W ++  <" Z "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  - 
1 ) ) { ( ( W ++  <" Z "> ) `  i ) ,  ( ( W ++  <" Z "> ) `  (
i  +  1 ) ) }  e.  E  /\  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E
)  ->  ( (
( # `  ( W ++ 
<" Z "> ) )  =  N  /\  ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) ) )  ->  { Z ,  ( W ` 
0 ) }  e.  E ) )
122121impl 650 . . . . . 6  |-  ( ( ( ( ( W ++ 
<" Z "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) ) { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  e.  E  /\  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E
)  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  /\  ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= `  2 )
) )  ->  { Z ,  ( W ` 
0 ) }  e.  E )
123105, 122jca 554 . . . . 5  |-  ( ( ( ( ( W ++ 
<" Z "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( ( # `  ( W ++  <" Z "> ) )  -  1 ) ) { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  e.  E  /\  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E
)  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  /\  ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= `  2 )
) )  ->  ( { ( lastS  `  W ) ,  Z }  e.  E  /\  { Z , 
( W `  0
) }  e.  E
) )
124123ex 450 . . . 4  |-  ( ( ( ( W ++  <" Z "> )  e. Word  V  /\  A. i  e.  ( 0..^ ( (
# `  ( W ++  <" Z "> ) )  -  1 ) ) { ( ( W ++  <" Z "> ) `  i
) ,  ( ( W ++  <" Z "> ) `  ( i  +  1 ) ) }  e.  E  /\  { ( lastS  `  ( W ++  <" Z "> ) ) ,  ( ( W ++  <" Z "> ) `  0
) }  e.  E
)  /\  ( # `  ( W ++  <" Z "> ) )  =  N )  ->  ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>= `  2 )
)  ->  ( {
( lastS  `  W ) ,  Z }  e.  E  /\  { Z ,  ( W `  0 ) }  e.  E ) ) )
1255, 124syl6bi 243 . . 3  |-  ( ( ( G  e.  _V  /\  N  e.  NN )  /\  ( ( W ++ 
<" Z "> )  e. Word  V  /\  ( # `
 ( W ++  <" Z "> )
)  =  N ) )  ->  ( ( W ++  <" Z "> )  e.  ( N ClWWalksN  G )  ->  (
( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  ->  ( { ( lastS  `  W ) ,  Z }  e.  E  /\  { Z ,  ( W `
 0 ) }  e.  E ) ) ) )
1262, 125mpcom 38 . 2  |-  ( ( W ++  <" Z "> )  e.  ( N ClWWalksN  G )  ->  (
( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  ->  ( { ( lastS  `  W ) ,  Z }  e.  E  /\  { Z ,  ( W `
 0 ) }  e.  E ) ) )
127126impcom 446 1  |-  ( ( ( W  e. Word  V  /\  Z  e.  V  /\  N  e.  ( ZZ>=
`  2 ) )  /\  ( W ++  <" Z "> )  e.  ( N ClWWalksN  G )
)  ->  ( {
( lastS  `  W ) ,  Z }  e.  E  /\  { Z ,  ( W `  0 ) }  e.  E ) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 196    /\ wa 384    /\ w3a 1037    = wceq 1483    e. wcel 1990    =/= wne 2794   A.wral 2912   _Vcvv 3200   (/)c0 3915   {cpr 4179   class class class wbr 4653   ` cfv 5888  (class class class)co 6650   RRcr 9935   0cc0 9936   1c1 9937    + caddc 9939    < clt 10074    <_ cle 10075    - cmin 10266   NNcn 11020   2c2 11070   ZZcz 11377   ZZ>=cuz 11687  ..^cfzo 12465   #chash 13117  Word cword 13291   lastS clsw 13292   ++ cconcat 13293   <"cs1 13294  Vtxcvtx 25874  Edgcedg 25939   ClWWalksN cclwwlksn 26876
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-rep 4771  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949  ax-cnex 9992  ax-resscn 9993  ax-1cn 9994  ax-icn 9995  ax-addcl 9996  ax-addrcl 9997  ax-mulcl 9998  ax-mulrcl 9999  ax-mulcom 10000  ax-addass 10001  ax-mulass 10002  ax-distr 10003  ax-i2m1 10004  ax-1ne0 10005  ax-1rid 10006  ax-rnegex 10007  ax-rrecex 10008  ax-cnre 10009  ax-pre-lttri 10010  ax-pre-lttrn 10011  ax-pre-ltadd 10012  ax-pre-mulgt0 10013
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1486  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-nel 2898  df-ral 2917  df-rex 2918  df-reu 2919  df-rab 2921  df-v 3202  df-sbc 3436  df-csb 3534  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-pss 3590  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-tp 4182  df-op 4184  df-uni 4437  df-int 4476  df-iun 4522  df-br 4654  df-opab 4713  df-mpt 4730  df-tr 4753  df-id 5024  df-eprel 5029  df-po 5035  df-so 5036  df-fr 5073  df-we 5075  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-pred 5680  df-ord 5726  df-on 5727  df-lim 5728  df-suc 5729  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-f1 5893  df-fo 5894  df-f1o 5895  df-fv 5896  df-riota 6611  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-om 7066  df-1st 7168  df-2nd 7169  df-wrecs 7407  df-recs 7468  df-rdg 7506  df-1o 7560  df-oadd 7564  df-er 7742  df-map 7859  df-pm 7860  df-en 7956  df-dom 7957  df-sdom 7958  df-fin 7959  df-card 8765  df-pnf 10076  df-mnf 10077  df-xr 10078  df-ltxr 10079  df-le 10080  df-sub 10268  df-neg 10269  df-nn 11021  df-2 11079  df-n0 11293  df-xnn0 11364  df-z 11378  df-uz 11688  df-rp 11833  df-fz 12327  df-fzo 12466  df-hash 13118  df-word 13299  df-lsw 13300  df-concat 13301  df-s1 13302  df-clwwlks 26877  df-clwwlksn 26878
This theorem is referenced by:  numclwwlk2lem1  27235
  Copyright terms: Public domain W3C validator