Metamath Proof Explorer


Theorem wwlksext2clwwlk

Description: If a word represents a walk in (in a graph) and there are edges between the last vertex of the word and another vertex and between this other vertex and the first vertex of the word, then the concatenation of the word representing the walk with this other vertex represents a closed walk. (Contributed by Alexander van der Vekens, 3-Oct-2018) (Revised by AV, 27-Apr-2021) (Revised by AV, 14-Mar-2022)

Ref Expression
Hypotheses clwwlkext2edg.v V=VtxG
clwwlkext2edg.e E=EdgG
Assertion wwlksext2clwwlk WNWWalksNGZVlastSWZEZW0EW++⟨“Z”⟩N+2ClWWalksNG

Proof

Step Hyp Ref Expression
1 clwwlkext2edg.v V=VtxG
2 clwwlkext2edg.e E=EdgG
3 wwlknbp1 WNWWalksNGN0WWordVtxGW=N+1
4 1 wrdeqi WordV=WordVtxG
5 4 eleq2i WWordVWWordVtxG
6 5 biimpri WWordVtxGWWordV
7 6 3ad2ant2 N0WWordVtxGW=N+1WWordV
8 7 ad2antlr WNWWalksNGN0WWordVtxGW=N+1ZVWWordV
9 s1cl ZV⟨“Z”⟩WordV
10 9 adantl WNWWalksNGN0WWordVtxGW=N+1ZV⟨“Z”⟩WordV
11 ccatcl WWordV⟨“Z”⟩WordVW++⟨“Z”⟩WordV
12 8 10 11 syl2anc WNWWalksNGN0WWordVtxGW=N+1ZVW++⟨“Z”⟩WordV
13 12 adantr WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEZW0EW++⟨“Z”⟩WordV
14 1 2 wwlknp WNWWalksNGWWordVW=N+1i0..^NWiWi+1E
15 simplll WWordVW=N+1ZVN0i0..^NWWordV
16 9 adantr ZVN0⟨“Z”⟩WordV
17 16 ad2antlr WWordVW=N+1ZVN0i0..^N⟨“Z”⟩WordV
18 elfzo0 i0..^Ni0Ni<N
19 simp1 i0Ni<Ni0
20 peano2nn NN+1
21 20 3ad2ant2 i0Ni<NN+1
22 nn0re i0i
23 22 3ad2ant1 i0Ni<Ni
24 nnre NN
25 24 3ad2ant2 i0Ni<NN
26 peano2re NN+1
27 24 26 syl NN+1
28 27 3ad2ant2 i0Ni<NN+1
29 simp3 i0Ni<Ni<N
30 24 ltp1d NN<N+1
31 30 3ad2ant2 i0Ni<NN<N+1
32 23 25 28 29 31 lttrd i0Ni<Ni<N+1
33 elfzo0 i0..^N+1i0N+1i<N+1
34 19 21 32 33 syl3anbrc i0Ni<Ni0..^N+1
35 18 34 sylbi i0..^Ni0..^N+1
36 35 adantl WWordVW=N+1ZVN0i0..^Ni0..^N+1
37 oveq2 W=N+10..^W=0..^N+1
38 37 adantl WWordVW=N+10..^W=0..^N+1
39 38 eleq2d WWordVW=N+1i0..^Wi0..^N+1
40 39 ad2antrr WWordVW=N+1ZVN0i0..^Ni0..^Wi0..^N+1
41 36 40 mpbird WWordVW=N+1ZVN0i0..^Ni0..^W
42 ccatval1 WWordV⟨“Z”⟩WordVi0..^WW++⟨“Z”⟩i=Wi
43 15 17 41 42 syl3anc WWordVW=N+1ZVN0i0..^NW++⟨“Z”⟩i=Wi
44 fzonn0p1p1 i0..^Ni+10..^N+1
45 44 adantl WWordVW=N+1ZVN0i0..^Ni+10..^N+1
46 37 eleq2d W=N+1i+10..^Wi+10..^N+1
47 46 ad3antlr WWordVW=N+1ZVN0i0..^Ni+10..^Wi+10..^N+1
48 45 47 mpbird WWordVW=N+1ZVN0i0..^Ni+10..^W
49 ccatval1 WWordV⟨“Z”⟩WordVi+10..^WW++⟨“Z”⟩i+1=Wi+1
50 15 17 48 49 syl3anc WWordVW=N+1ZVN0i0..^NW++⟨“Z”⟩i+1=Wi+1
51 43 50 preq12d WWordVW=N+1ZVN0i0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=WiWi+1
52 51 ex WWordVW=N+1ZVN0i0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=WiWi+1
53 52 expcom ZVN0WWordVW=N+1i0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=WiWi+1
54 53 expcom N0ZVWWordVW=N+1i0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=WiWi+1
55 54 3ad2ant1 N0WWordVtxGW=N+1ZVWWordVW=N+1i0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=WiWi+1
56 55 imp N0WWordVtxGW=N+1ZVWWordVW=N+1i0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=WiWi+1
57 56 expdcom WWordVW=N+1N0WWordVtxGW=N+1ZVi0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=WiWi+1
58 57 3imp1 WWordVW=N+1N0WWordVtxGW=N+1ZVi0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=WiWi+1
59 58 eleq1d WWordVW=N+1N0WWordVtxGW=N+1ZVi0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1EWiWi+1E
60 59 ralbidva WWordVW=N+1N0WWordVtxGW=N+1ZVi0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1Ei0..^NWiWi+1E
61 60 biimprd WWordVW=N+1N0WWordVtxGW=N+1ZVi0..^NWiWi+1Ei0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
62 61 3exp WWordVW=N+1N0WWordVtxGW=N+1ZVi0..^NWiWi+1Ei0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
63 62 com34 WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVi0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
64 63 3imp1 WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVi0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
65 64 adantr WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEi0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
66 simpll WWordVW=N+1ZVN0WWordV
67 9 ad2antrl WWordVW=N+1ZVN0⟨“Z”⟩WordV
68 nn0p1gt0 N00<N+1
69 68 ad2antll WWordVW=N+1ZVN00<N+1
70 breq2 W=N+10<W0<N+1
71 70 ad2antlr WWordVW=N+1ZVN00<W0<N+1
72 69 71 mpbird WWordVW=N+1ZVN00<W
73 hashneq0 WWordV0<WW
74 73 ad2antrr WWordVW=N+1ZVN00<WW
75 72 74 mpbid WWordVW=N+1ZVN0W
76 ccatval1lsw WWordV⟨“Z”⟩WordVWW++⟨“Z”⟩W1=lastSW
77 66 67 75 76 syl3anc WWordVW=N+1ZVN0W++⟨“Z”⟩W1=lastSW
78 oveq1 W=N+1W1=N+1-1
79 78 ad2antlr WWordVW=N+1ZVN0W1=N+1-1
80 nn0cn N0N
81 80 ad2antll WWordVW=N+1ZVN0N
82 pncan1 NN+1-1=N
83 81 82 syl WWordVW=N+1ZVN0N+1-1=N
84 79 83 eqtrd WWordVW=N+1ZVN0W1=N
85 84 fveq2d WWordVW=N+1ZVN0W++⟨“Z”⟩W1=W++⟨“Z”⟩N
86 77 85 eqtr3d WWordVW=N+1ZVN0lastSW=W++⟨“Z”⟩N
87 ccatws1ls WWordVZVW++⟨“Z”⟩W=Z
88 87 ad2ant2r WWordVW=N+1ZVN0W++⟨“Z”⟩W=Z
89 fveq2 W=N+1W++⟨“Z”⟩W=W++⟨“Z”⟩N+1
90 89 ad2antlr WWordVW=N+1ZVN0W++⟨“Z”⟩W=W++⟨“Z”⟩N+1
91 88 90 eqtr3d WWordVW=N+1ZVN0Z=W++⟨“Z”⟩N+1
92 86 91 preq12d WWordVW=N+1ZVN0lastSWZ=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
93 92 expcom ZVN0WWordVW=N+1lastSWZ=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
94 93 expcom N0ZVWWordVW=N+1lastSWZ=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
95 94 3ad2ant1 N0WWordVtxGW=N+1ZVWWordVW=N+1lastSWZ=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
96 95 imp N0WWordVtxGW=N+1ZVWWordVW=N+1lastSWZ=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
97 96 com12 WWordVW=N+1N0WWordVtxGW=N+1ZVlastSWZ=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
98 97 3adant3 WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZ=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
99 98 imp WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZ=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
100 99 eleq1d WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEW++⟨“Z”⟩NW++⟨“Z”⟩N+1E
101 100 biimpa WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEW++⟨“Z”⟩NW++⟨“Z”⟩N+1E
102 simprl1 WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVN0
103 102 adantr WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEN0
104 fveq2 i=NW++⟨“Z”⟩i=W++⟨“Z”⟩N
105 fvoveq1 i=NW++⟨“Z”⟩i+1=W++⟨“Z”⟩N+1
106 104 105 preq12d i=NW++⟨“Z”⟩iW++⟨“Z”⟩i+1=W++⟨“Z”⟩NW++⟨“Z”⟩N+1
107 106 eleq1d i=NW++⟨“Z”⟩iW++⟨“Z”⟩i+1EW++⟨“Z”⟩NW++⟨“Z”⟩N+1E
108 107 ralsng N0iNW++⟨“Z”⟩iW++⟨“Z”⟩i+1EW++⟨“Z”⟩NW++⟨“Z”⟩N+1E
109 103 108 syl WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEiNW++⟨“Z”⟩iW++⟨“Z”⟩i+1EW++⟨“Z”⟩NW++⟨“Z”⟩N+1E
110 101 109 mpbird WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEiNW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
111 ralunb i0..^NNW++⟨“Z”⟩iW++⟨“Z”⟩i+1Ei0..^NW++⟨“Z”⟩iW++⟨“Z”⟩i+1EiNW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
112 65 110 111 sylanbrc WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEi0..^NNW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
113 elnn0uz N0N0
114 102 113 sylib WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVN0
115 114 adantr WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEN0
116 fzosplitsn N00..^N+1=0..^NN
117 115 116 syl WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZE0..^N+1=0..^NN
118 117 raleqdv WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEi0..^N+1W++⟨“Z”⟩iW++⟨“Z”⟩i+1Ei0..^NNW++⟨“Z”⟩iW++⟨“Z”⟩i+1E
119 112 118 mpbird WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEi0..^N+1W++⟨“Z”⟩iW++⟨“Z”⟩i+1E
120 ccatws1len WWordVW++⟨“Z”⟩=W+1
121 120 3ad2ant1 WWordVW=N+1i0..^NWiWi+1EW++⟨“Z”⟩=W+1
122 121 ad2antrr WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEW++⟨“Z”⟩=W+1
123 122 oveq1d WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEW++⟨“Z”⟩1=W+1-1
124 oveq1 W=N+1W+1=N+1+1
125 124 oveq1d W=N+1W+1-1=N+1+1-1
126 1cnd N01
127 80 126 addcld N0N+1
128 127 126 pncand N0N+1+1-1=N+1
129 128 3ad2ant1 N0WWordVtxGW=N+1N+1+1-1=N+1
130 129 adantr N0WWordVtxGW=N+1ZVN+1+1-1=N+1
131 125 130 sylan9eq W=N+1N0WWordVtxGW=N+1ZVW+1-1=N+1
132 131 3ad2antl2 WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVW+1-1=N+1
133 132 adantr WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEW+1-1=N+1
134 123 133 eqtrd WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEW++⟨“Z”⟩1=N+1
135 134 oveq2d WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZE0..^W++⟨“Z”⟩1=0..^N+1
136 135 raleqdv WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1Ei0..^N+1W++⟨“Z”⟩iW++⟨“Z”⟩i+1E
137 119 136 mpbird WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1E
138 137 exp42 WWordVW=N+1i0..^NWiWi+1EN0WWordVtxGW=N+1ZVlastSWZEi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1E
139 14 138 syl WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1E
140 139 imp41 WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1E
141 140 adantrr WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEZW0Ei0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1E
142 lswccats1 WWordVZVlastSW++⟨“Z”⟩=Z
143 8 142 sylancom WNWWalksNGN0WWordVtxGW=N+1ZVlastSW++⟨“Z”⟩=Z
144 68 3ad2ant1 N0WWordVtxGW=N+10<N+1
145 70 3ad2ant3 N0WWordVtxGW=N+10<W0<N+1
146 144 145 mpbird N0WWordVtxGW=N+10<W
147 146 ad2antlr WNWWalksNGN0WWordVtxGW=N+1ZV0<W
148 ccatfv0 WWordV⟨“Z”⟩WordV0<WW++⟨“Z”⟩0=W0
149 8 10 147 148 syl3anc WNWWalksNGN0WWordVtxGW=N+1ZVW++⟨“Z”⟩0=W0
150 143 149 preq12d WNWWalksNGN0WWordVtxGW=N+1ZVlastSW++⟨“Z”⟩W++⟨“Z”⟩0=ZW0
151 150 eleq1d WNWWalksNGN0WWordVtxGW=N+1ZVlastSW++⟨“Z”⟩W++⟨“Z”⟩0EZW0E
152 151 biimprcd ZW0EWNWWalksNGN0WWordVtxGW=N+1ZVlastSW++⟨“Z”⟩W++⟨“Z”⟩0E
153 152 adantl lastSWZEZW0EWNWWalksNGN0WWordVtxGW=N+1ZVlastSW++⟨“Z”⟩W++⟨“Z”⟩0E
154 153 impcom WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEZW0ElastSW++⟨“Z”⟩W++⟨“Z”⟩0E
155 13 141 154 3jca WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEZW0EW++⟨“Z”⟩WordVi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1ElastSW++⟨“Z”⟩W++⟨“Z”⟩0E
156 ccatws1len WWordVtxGW++⟨“Z”⟩=W+1
157 156 3ad2ant2 N0WWordVtxGW=N+1W++⟨“Z”⟩=W+1
158 124 3ad2ant3 N0WWordVtxGW=N+1W+1=N+1+1
159 80 126 126 addassd N0N+1+1=N+1+1
160 1p1e2 1+1=2
161 160 oveq2i N+1+1=N+2
162 159 161 eqtrdi N0N+1+1=N+2
163 162 3ad2ant1 N0WWordVtxGW=N+1N+1+1=N+2
164 157 158 163 3eqtrd N0WWordVtxGW=N+1W++⟨“Z”⟩=N+2
165 164 ad3antlr WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEZW0EW++⟨“Z”⟩=N+2
166 2nn 2
167 nn0nnaddcl N02N+2
168 166 167 mpan2 N0N+2
169 168 3ad2ant1 N0WWordVtxGW=N+1N+2
170 1 2 isclwwlknx N+2W++⟨“Z”⟩N+2ClWWalksNGW++⟨“Z”⟩WordVi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1ElastSW++⟨“Z”⟩W++⟨“Z”⟩0EW++⟨“Z”⟩=N+2
171 169 170 syl N0WWordVtxGW=N+1W++⟨“Z”⟩N+2ClWWalksNGW++⟨“Z”⟩WordVi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1ElastSW++⟨“Z”⟩W++⟨“Z”⟩0EW++⟨“Z”⟩=N+2
172 171 ad3antlr WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEZW0EW++⟨“Z”⟩N+2ClWWalksNGW++⟨“Z”⟩WordVi0..^W++⟨“Z”⟩1W++⟨“Z”⟩iW++⟨“Z”⟩i+1ElastSW++⟨“Z”⟩W++⟨“Z”⟩0EW++⟨“Z”⟩=N+2
173 155 165 172 mpbir2and WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEZW0EW++⟨“Z”⟩N+2ClWWalksNG
174 173 exp31 WNWWalksNGN0WWordVtxGW=N+1ZVlastSWZEZW0EW++⟨“Z”⟩N+2ClWWalksNG
175 3 174 mpdan WNWWalksNGZVlastSWZEZW0EW++⟨“Z”⟩N+2ClWWalksNG
176 175 imp WNWWalksNGZVlastSWZEZW0EW++⟨“Z”⟩N+2ClWWalksNG