Metamath Proof Explorer


Theorem wwlksnextbi

Description: Extension of a walk (as word) by adding an edge/vertex. (Contributed by Alexander van der Vekens, 5-Aug-2018) (Revised by AV, 16-Apr-2021) (Proof shortened by AV, 27-Oct-2022)

Ref Expression
Hypotheses wwlksnext.v V=VtxG
wwlksnext.e E=EdgG
Assertion wwlksnextbi N0SVTWordVW=T++⟨“S”⟩lastSTSEWN+1WWalksNGTNWWalksNG

Proof

Step Hyp Ref Expression
1 wwlksnext.v V=VtxG
2 wwlksnext.e E=EdgG
3 1 2 wwlknp WN+1WWalksNGWWordVW=N+1+1i0..^N+1WiWi+1E
4 wwlksnred N0WN+1WWalksNGWprefixN+1NWWalksNG
5 4 ad2antrr N0SVTWordVW=T++⟨“S”⟩lastSTSEWN+1WWalksNGWprefixN+1NWWalksNG
6 fveqeq2 W=T++⟨“S”⟩W=N+1+1T++⟨“S”⟩=N+1+1
7 6 3ad2ant2 TWordVW=T++⟨“S”⟩lastSTSEW=N+1+1T++⟨“S”⟩=N+1+1
8 7 adantl N0SVTWordVW=T++⟨“S”⟩lastSTSEW=N+1+1T++⟨“S”⟩=N+1+1
9 s1cl SV⟨“S”⟩WordV
10 9 adantl N0SV⟨“S”⟩WordV
11 10 anim1ci N0SVTWordVTWordV⟨“S”⟩WordV
12 ccatlen TWordV⟨“S”⟩WordVT++⟨“S”⟩=T+⟨“S”⟩
13 11 12 syl N0SVTWordVT++⟨“S”⟩=T+⟨“S”⟩
14 13 eqeq1d N0SVTWordVT++⟨“S”⟩=N+1+1T+⟨“S”⟩=N+1+1
15 s1len ⟨“S”⟩=1
16 15 a1i N0SVTWordV⟨“S”⟩=1
17 16 oveq2d N0SVTWordVT+⟨“S”⟩=T+1
18 17 eqeq1d N0SVTWordVT+⟨“S”⟩=N+1+1T+1=N+1+1
19 lencl TWordVT0
20 19 nn0cnd TWordVT
21 20 adantl N0SVTWordVT
22 peano2nn0 N0N+10
23 22 nn0cnd N0N+1
24 23 ad2antrr N0SVTWordVN+1
25 1cnd N0SVTWordV1
26 21 24 25 addcan2d N0SVTWordVT+1=N+1+1T=N+1
27 14 18 26 3bitrd N0SVTWordVT++⟨“S”⟩=N+1+1T=N+1
28 oveq2 N+1=TT++⟨“S”⟩prefixN+1=T++⟨“S”⟩prefixT
29 28 eqcoms T=N+1T++⟨“S”⟩prefixN+1=T++⟨“S”⟩prefixT
30 pfxccat1 TWordV⟨“S”⟩WordVT++⟨“S”⟩prefixT=T
31 11 30 syl N0SVTWordVT++⟨“S”⟩prefixT=T
32 29 31 sylan9eqr N0SVTWordVT=N+1T++⟨“S”⟩prefixN+1=T
33 32 ex N0SVTWordVT=N+1T++⟨“S”⟩prefixN+1=T
34 27 33 sylbid N0SVTWordVT++⟨“S”⟩=N+1+1T++⟨“S”⟩prefixN+1=T
35 34 3ad2antr1 N0SVTWordVW=T++⟨“S”⟩lastSTSET++⟨“S”⟩=N+1+1T++⟨“S”⟩prefixN+1=T
36 8 35 sylbid N0SVTWordVW=T++⟨“S”⟩lastSTSEW=N+1+1T++⟨“S”⟩prefixN+1=T
37 36 imp N0SVTWordVW=T++⟨“S”⟩lastSTSEW=N+1+1T++⟨“S”⟩prefixN+1=T
38 oveq1 W=T++⟨“S”⟩WprefixN+1=T++⟨“S”⟩prefixN+1
39 38 eqeq1d W=T++⟨“S”⟩WprefixN+1=TT++⟨“S”⟩prefixN+1=T
40 39 3ad2ant2 TWordVW=T++⟨“S”⟩lastSTSEWprefixN+1=TT++⟨“S”⟩prefixN+1=T
41 40 ad2antlr N0SVTWordVW=T++⟨“S”⟩lastSTSEW=N+1+1WprefixN+1=TT++⟨“S”⟩prefixN+1=T
42 37 41 mpbird N0SVTWordVW=T++⟨“S”⟩lastSTSEW=N+1+1WprefixN+1=T
43 42 eleq1d N0SVTWordVW=T++⟨“S”⟩lastSTSEW=N+1+1WprefixN+1NWWalksNGTNWWalksNG
44 43 biimpd N0SVTWordVW=T++⟨“S”⟩lastSTSEW=N+1+1WprefixN+1NWWalksNGTNWWalksNG
45 44 ex N0SVTWordVW=T++⟨“S”⟩lastSTSEW=N+1+1WprefixN+1NWWalksNGTNWWalksNG
46 45 com23 N0SVTWordVW=T++⟨“S”⟩lastSTSEWprefixN+1NWWalksNGW=N+1+1TNWWalksNG
47 5 46 syld N0SVTWordVW=T++⟨“S”⟩lastSTSEWN+1WWalksNGW=N+1+1TNWWalksNG
48 47 com13 W=N+1+1WN+1WWalksNGN0SVTWordVW=T++⟨“S”⟩lastSTSETNWWalksNG
49 48 3ad2ant2 WWordVW=N+1+1i0..^N+1WiWi+1EWN+1WWalksNGN0SVTWordVW=T++⟨“S”⟩lastSTSETNWWalksNG
50 3 49 mpcom WN+1WWalksNGN0SVTWordVW=T++⟨“S”⟩lastSTSETNWWalksNG
51 50 com12 N0SVTWordVW=T++⟨“S”⟩lastSTSEWN+1WWalksNGTNWWalksNG
52 1 2 wwlksnext TNWWalksNGSVlastSTSET++⟨“S”⟩N+1WWalksNG
53 eleq1 W=T++⟨“S”⟩WN+1WWalksNGT++⟨“S”⟩N+1WWalksNG
54 52 53 syl5ibrcom TNWWalksNGSVlastSTSEW=T++⟨“S”⟩WN+1WWalksNG
55 54 3exp TNWWalksNGSVlastSTSEW=T++⟨“S”⟩WN+1WWalksNG
56 55 com23 TNWWalksNGlastSTSESVW=T++⟨“S”⟩WN+1WWalksNG
57 56 com14 W=T++⟨“S”⟩lastSTSESVTNWWalksNGWN+1WWalksNG
58 57 imp W=T++⟨“S”⟩lastSTSESVTNWWalksNGWN+1WWalksNG
59 58 3adant1 TWordVW=T++⟨“S”⟩lastSTSESVTNWWalksNGWN+1WWalksNG
60 59 com12 SVTWordVW=T++⟨“S”⟩lastSTSETNWWalksNGWN+1WWalksNG
61 60 adantl N0SVTWordVW=T++⟨“S”⟩lastSTSETNWWalksNGWN+1WWalksNG
62 61 imp N0SVTWordVW=T++⟨“S”⟩lastSTSETNWWalksNGWN+1WWalksNG
63 51 62 impbid N0SVTWordVW=T++⟨“S”⟩lastSTSEWN+1WWalksNGTNWWalksNG