Metamath Proof Explorer


Theorem wwlksnextproplem2

Description: Lemma 2 for wwlksnextprop . (Contributed by Alexander van der Vekens, 1-Aug-2018) (Revised by AV, 20-Apr-2021) (Revised by AV, 29-Oct-2022)

Ref Expression
Hypotheses wwlksnextprop.x
|- X = ( ( N + 1 ) WWalksN G )
wwlksnextprop.e
|- E = ( Edg ` G )
Assertion wwlksnextproplem2
|- ( ( W e. X /\ N e. NN0 ) -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E )

Proof

Step Hyp Ref Expression
1 wwlksnextprop.x
 |-  X = ( ( N + 1 ) WWalksN G )
2 wwlksnextprop.e
 |-  E = ( Edg ` G )
3 eqid
 |-  ( Vtx ` G ) = ( Vtx ` G )
4 3 2 wwlknp
 |-  ( W e. ( ( N + 1 ) WWalksN G ) -> ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) /\ A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E ) )
5 fzonn0p1
 |-  ( N e. NN0 -> N e. ( 0 ..^ ( N + 1 ) ) )
6 5 adantl
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> N e. ( 0 ..^ ( N + 1 ) ) )
7 fveq2
 |-  ( i = N -> ( W ` i ) = ( W ` N ) )
8 fvoveq1
 |-  ( i = N -> ( W ` ( i + 1 ) ) = ( W ` ( N + 1 ) ) )
9 7 8 preq12d
 |-  ( i = N -> { ( W ` i ) , ( W ` ( i + 1 ) ) } = { ( W ` N ) , ( W ` ( N + 1 ) ) } )
10 9 eleq1d
 |-  ( i = N -> ( { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E <-> { ( W ` N ) , ( W ` ( N + 1 ) ) } e. E ) )
11 10 rspcv
 |-  ( N e. ( 0 ..^ ( N + 1 ) ) -> ( A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E -> { ( W ` N ) , ( W ` ( N + 1 ) ) } e. E ) )
12 6 11 syl
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E -> { ( W ` N ) , ( W ` ( N + 1 ) ) } e. E ) )
13 12 imp
 |-  ( ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) /\ A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E ) -> { ( W ` N ) , ( W ` ( N + 1 ) ) } e. E )
14 simpll
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> W e. Word ( Vtx ` G ) )
15 1zzd
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> 1 e. ZZ )
16 lencl
 |-  ( W e. Word ( Vtx ` G ) -> ( # ` W ) e. NN0 )
17 16 nn0zd
 |-  ( W e. Word ( Vtx ` G ) -> ( # ` W ) e. ZZ )
18 17 ad2antrr
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( # ` W ) e. ZZ )
19 peano2nn0
 |-  ( N e. NN0 -> ( N + 1 ) e. NN0 )
20 19 nn0zd
 |-  ( N e. NN0 -> ( N + 1 ) e. ZZ )
21 20 adantl
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( N + 1 ) e. ZZ )
22 nn0ge0
 |-  ( N e. NN0 -> 0 <_ N )
23 1red
 |-  ( N e. NN0 -> 1 e. RR )
24 nn0re
 |-  ( N e. NN0 -> N e. RR )
25 23 24 addge02d
 |-  ( N e. NN0 -> ( 0 <_ N <-> 1 <_ ( N + 1 ) ) )
26 22 25 mpbid
 |-  ( N e. NN0 -> 1 <_ ( N + 1 ) )
27 26 adantl
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> 1 <_ ( N + 1 ) )
28 19 nn0red
 |-  ( N e. NN0 -> ( N + 1 ) e. RR )
29 28 lep1d
 |-  ( N e. NN0 -> ( N + 1 ) <_ ( ( N + 1 ) + 1 ) )
30 breq2
 |-  ( ( # ` W ) = ( ( N + 1 ) + 1 ) -> ( ( N + 1 ) <_ ( # ` W ) <-> ( N + 1 ) <_ ( ( N + 1 ) + 1 ) ) )
31 29 30 syl5ibrcom
 |-  ( N e. NN0 -> ( ( # ` W ) = ( ( N + 1 ) + 1 ) -> ( N + 1 ) <_ ( # ` W ) ) )
32 31 a1i
 |-  ( ( # ` W ) e. NN0 -> ( N e. NN0 -> ( ( # ` W ) = ( ( N + 1 ) + 1 ) -> ( N + 1 ) <_ ( # ` W ) ) ) )
33 32 com23
 |-  ( ( # ` W ) e. NN0 -> ( ( # ` W ) = ( ( N + 1 ) + 1 ) -> ( N e. NN0 -> ( N + 1 ) <_ ( # ` W ) ) ) )
34 16 33 syl
 |-  ( W e. Word ( Vtx ` G ) -> ( ( # ` W ) = ( ( N + 1 ) + 1 ) -> ( N e. NN0 -> ( N + 1 ) <_ ( # ` W ) ) ) )
35 34 imp31
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( N + 1 ) <_ ( # ` W ) )
36 15 18 21 27 35 elfzd
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( N + 1 ) e. ( 1 ... ( # ` W ) ) )
37 pfxfvlsw
 |-  ( ( W e. Word ( Vtx ` G ) /\ ( N + 1 ) e. ( 1 ... ( # ` W ) ) ) -> ( lastS ` ( W prefix ( N + 1 ) ) ) = ( W ` ( ( N + 1 ) - 1 ) ) )
38 14 36 37 syl2anc
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( lastS ` ( W prefix ( N + 1 ) ) ) = ( W ` ( ( N + 1 ) - 1 ) ) )
39 nn0cn
 |-  ( N e. NN0 -> N e. CC )
40 1cnd
 |-  ( N e. NN0 -> 1 e. CC )
41 39 40 pncand
 |-  ( N e. NN0 -> ( ( N + 1 ) - 1 ) = N )
42 41 fveq2d
 |-  ( N e. NN0 -> ( W ` ( ( N + 1 ) - 1 ) ) = ( W ` N ) )
43 42 adantl
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( W ` ( ( N + 1 ) - 1 ) ) = ( W ` N ) )
44 38 43 eqtrd
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( lastS ` ( W prefix ( N + 1 ) ) ) = ( W ` N ) )
45 lsw
 |-  ( W e. Word ( Vtx ` G ) -> ( lastS ` W ) = ( W ` ( ( # ` W ) - 1 ) ) )
46 45 ad2antrr
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( lastS ` W ) = ( W ` ( ( # ` W ) - 1 ) ) )
47 fvoveq1
 |-  ( ( # ` W ) = ( ( N + 1 ) + 1 ) -> ( W ` ( ( # ` W ) - 1 ) ) = ( W ` ( ( ( N + 1 ) + 1 ) - 1 ) ) )
48 47 adantl
 |-  ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) -> ( W ` ( ( # ` W ) - 1 ) ) = ( W ` ( ( ( N + 1 ) + 1 ) - 1 ) ) )
49 19 nn0cnd
 |-  ( N e. NN0 -> ( N + 1 ) e. CC )
50 49 40 pncand
 |-  ( N e. NN0 -> ( ( ( N + 1 ) + 1 ) - 1 ) = ( N + 1 ) )
51 50 fveq2d
 |-  ( N e. NN0 -> ( W ` ( ( ( N + 1 ) + 1 ) - 1 ) ) = ( W ` ( N + 1 ) ) )
52 48 51 sylan9eq
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( W ` ( ( # ` W ) - 1 ) ) = ( W ` ( N + 1 ) ) )
53 46 52 eqtrd
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( lastS ` W ) = ( W ` ( N + 1 ) ) )
54 44 53 preq12d
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } = { ( W ` N ) , ( W ` ( N + 1 ) ) } )
55 54 eleq1d
 |-  ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) -> ( { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E <-> { ( W ` N ) , ( W ` ( N + 1 ) ) } e. E ) )
56 55 adantr
 |-  ( ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) /\ A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E ) -> ( { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E <-> { ( W ` N ) , ( W ` ( N + 1 ) ) } e. E ) )
57 13 56 mpbird
 |-  ( ( ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) /\ N e. NN0 ) /\ A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E ) -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E )
58 57 exp31
 |-  ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) -> ( N e. NN0 -> ( A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E ) ) )
59 58 com23
 |-  ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) ) -> ( A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E -> ( N e. NN0 -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E ) ) )
60 59 3impia
 |-  ( ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( ( N + 1 ) + 1 ) /\ A. i e. ( 0 ..^ ( N + 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E ) -> ( N e. NN0 -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E ) )
61 4 60 syl
 |-  ( W e. ( ( N + 1 ) WWalksN G ) -> ( N e. NN0 -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E ) )
62 61 1 eleq2s
 |-  ( W e. X -> ( N e. NN0 -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E ) )
63 62 imp
 |-  ( ( W e. X /\ N e. NN0 ) -> { ( lastS ` ( W prefix ( N + 1 ) ) ) , ( lastS ` W ) } e. E )