Metamath Proof Explorer


Theorem clwwlkf

Description: Lemma 1 for clwwlkf1o : F is a function. (Contributed by Alexander van der Vekens, 27-Sep-2018) (Revised by AV, 26-Apr-2021) (Revised by AV, 1-Nov-2022)

Ref Expression
Hypotheses clwwlkf1o.d D=wNWWalksNG|lastSw=w0
clwwlkf1o.f F=tDtprefixN
Assertion clwwlkf NF:DNClWWalksNG

Proof

Step Hyp Ref Expression
1 clwwlkf1o.d D=wNWWalksNG|lastSw=w0
2 clwwlkf1o.f F=tDtprefixN
3 fveq2 w=tlastSw=lastSt
4 fveq1 w=tw0=t0
5 3 4 eqeq12d w=tlastSw=w0lastSt=t0
6 5 1 elrab2 tDtNWWalksNGlastSt=t0
7 nnnn0 NN0
8 iswwlksn N0tNWWalksNGtWWalksGt=N+1
9 7 8 syl NtNWWalksNGtWWalksGt=N+1
10 eqid VtxG=VtxG
11 eqid EdgG=EdgG
12 10 11 iswwlks tWWalksGttWordVtxGi0..^t1titi+1EdgG
13 12 a1i NtWWalksGttWordVtxGi0..^t1titi+1EdgG
14 13 anbi1d NtWWalksGt=N+1ttWordVtxGi0..^t1titi+1EdgGt=N+1
15 9 14 bitrd NtNWWalksNGttWordVtxGi0..^t1titi+1EdgGt=N+1
16 simpll tWordVtxGt=N+1NtWordVtxG
17 peano2nn0 N0N+10
18 7 17 syl NN+10
19 nnre NN
20 19 lep1d NNN+1
21 elfz2nn0 N0N+1N0N+10NN+1
22 7 18 20 21 syl3anbrc NN0N+1
23 22 adantl tWordVtxGt=N+1NN0N+1
24 oveq2 t=N+10t=0N+1
25 24 eleq2d t=N+1N0tN0N+1
26 25 adantl tWordVtxGt=N+1N0tN0N+1
27 26 adantr tWordVtxGt=N+1NN0tN0N+1
28 23 27 mpbird tWordVtxGt=N+1NN0t
29 16 28 jca tWordVtxGt=N+1NtWordVtxGN0t
30 pfxlen tWordVtxGN0ttprefixN=N
31 29 30 syl tWordVtxGt=N+1NtprefixN=N
32 31 ex tWordVtxGt=N+1NtprefixN=N
33 32 3ad2antl2 ttWordVtxGi0..^t1titi+1EdgGt=N+1NtprefixN=N
34 33 impcom NttWordVtxGi0..^t1titi+1EdgGt=N+1tprefixN=N
35 34 adantr NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tprefixN=N
36 pfxcl tWordVtxGtprefixNWordVtxG
37 36 3ad2ant2 ttWordVtxGi0..^t1titi+1EdgGtprefixNWordVtxG
38 37 ad2antrl NttWordVtxGi0..^t1titi+1EdgGt=N+1tprefixNWordVtxG
39 38 ad2antrl tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tprefixNWordVtxG
40 oveq1 t=N+1t1=N+1-1
41 40 oveq2d t=N+10..^t1=0..^N+1-1
42 nncn NN
43 1cnd N1
44 42 43 pncand NN+1-1=N
45 44 oveq2d N0..^N+1-1=0..^N
46 41 45 sylan9eqr Nt=N+10..^t1=0..^N
47 46 raleqdv Nt=N+1i0..^t1titi+1EdgGi0..^Ntiti+1EdgG
48 nnz NN
49 peano2zm NN1
50 48 49 syl NN1
51 19 lem1d NN1N
52 eluz2 NN1N1NN1N
53 50 48 51 52 syl3anbrc NNN1
54 fzoss2 NN10..^N10..^N
55 53 54 syl N0..^N10..^N
56 55 adantr Nt=N+10..^N10..^N
57 ssralv 0..^N10..^Ni0..^Ntiti+1EdgGi0..^N1titi+1EdgG
58 56 57 syl Nt=N+1i0..^Ntiti+1EdgGi0..^N1titi+1EdgG
59 simplr Nt=N+1tWordVtxGi0..^N1tWordVtxG
60 22 adantr Nt=N+1N0N+1
61 25 adantl Nt=N+1N0tN0N+1
62 60 61 mpbird Nt=N+1N0t
63 62 ad2antrr Nt=N+1tWordVtxGi0..^N1N0t
64 55 sseld Ni0..^N1i0..^N
65 64 ad2antrr Nt=N+1tWordVtxGi0..^N1i0..^N
66 65 imp Nt=N+1tWordVtxGi0..^N1i0..^N
67 pfxfv tWordVtxGN0ti0..^NtprefixNi=ti
68 67 eqcomd tWordVtxGN0ti0..^Nti=tprefixNi
69 59 63 66 68 syl3anc Nt=N+1tWordVtxGi0..^N1ti=tprefixNi
70 48 ad2antrr Nt=N+1tWordVtxGN
71 elfzom1elp1fzo Ni0..^N1i+10..^N
72 70 71 sylan Nt=N+1tWordVtxGi0..^N1i+10..^N
73 pfxfv tWordVtxGN0ti+10..^NtprefixNi+1=ti+1
74 73 eqcomd tWordVtxGN0ti+10..^Nti+1=tprefixNi+1
75 59 63 72 74 syl3anc Nt=N+1tWordVtxGi0..^N1ti+1=tprefixNi+1
76 69 75 preq12d Nt=N+1tWordVtxGi0..^N1titi+1=tprefixNitprefixNi+1
77 76 eleq1d Nt=N+1tWordVtxGi0..^N1titi+1EdgGtprefixNitprefixNi+1EdgG
78 77 ralbidva Nt=N+1tWordVtxGi0..^N1titi+1EdgGi0..^N1tprefixNitprefixNi+1EdgG
79 78 biimpd Nt=N+1tWordVtxGi0..^N1titi+1EdgGi0..^N1tprefixNitprefixNi+1EdgG
80 79 ex Nt=N+1tWordVtxGi0..^N1titi+1EdgGi0..^N1tprefixNitprefixNi+1EdgG
81 80 com23 Nt=N+1i0..^N1titi+1EdgGtWordVtxGi0..^N1tprefixNitprefixNi+1EdgG
82 58 81 syld Nt=N+1i0..^Ntiti+1EdgGtWordVtxGi0..^N1tprefixNitprefixNi+1EdgG
83 47 82 sylbid Nt=N+1i0..^t1titi+1EdgGtWordVtxGi0..^N1tprefixNitprefixNi+1EdgG
84 83 ex Nt=N+1i0..^t1titi+1EdgGtWordVtxGi0..^N1tprefixNitprefixNi+1EdgG
85 84 com23 Ni0..^t1titi+1EdgGt=N+1tWordVtxGi0..^N1tprefixNitprefixNi+1EdgG
86 85 com14 tWordVtxGi0..^t1titi+1EdgGt=N+1Ni0..^N1tprefixNitprefixNi+1EdgG
87 86 imp tWordVtxGi0..^t1titi+1EdgGt=N+1Ni0..^N1tprefixNitprefixNi+1EdgG
88 87 3adant1 ttWordVtxGi0..^t1titi+1EdgGt=N+1Ni0..^N1tprefixNitprefixNi+1EdgG
89 88 imp ttWordVtxGi0..^t1titi+1EdgGt=N+1Ni0..^N1tprefixNitprefixNi+1EdgG
90 89 impcom NttWordVtxGi0..^t1titi+1EdgGt=N+1i0..^N1tprefixNitprefixNi+1EdgG
91 90 ad2antrl tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0i0..^N1tprefixNitprefixNi+1EdgG
92 oveq1 tprefixN=NtprefixN1=N1
93 92 oveq2d tprefixN=N0..^tprefixN1=0..^N1
94 93 adantr tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t00..^tprefixN1=0..^N1
95 94 raleqdv tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0i0..^tprefixN1tprefixNitprefixNi+1EdgGi0..^N1tprefixNitprefixNi+1EdgG
96 91 95 mpbird tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0i0..^tprefixN1tprefixNitprefixNi+1EdgG
97 simprl2 NttWordVtxGi0..^t1titi+1EdgGt=N+1tWordVtxG
98 20 ancli NNNN+1
99 48 peano2zd NN+1
100 fznn N+1N1N+1NNN+1
101 99 100 syl NN1N+1NNN+1
102 98 101 mpbird NN1N+1
103 102 adantr NttWordVtxGi0..^t1titi+1EdgGt=N+1N1N+1
104 oveq2 t=N+11t=1N+1
105 104 eleq2d t=N+1N1tN1N+1
106 105 adantl ttWordVtxGi0..^t1titi+1EdgGt=N+1N1tN1N+1
107 106 adantl NttWordVtxGi0..^t1titi+1EdgGt=N+1N1tN1N+1
108 103 107 mpbird NttWordVtxGi0..^t1titi+1EdgGt=N+1N1t
109 97 108 jca NttWordVtxGi0..^t1titi+1EdgGt=N+1tWordVtxGN1t
110 109 adantr NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tWordVtxGN1t
111 pfxfvlsw tWordVtxGN1tlastStprefixN=tN1
112 110 111 syl NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0lastStprefixN=tN1
113 pfxfv0 tWordVtxGN1ttprefixN0=t0
114 109 113 syl NttWordVtxGi0..^t1titi+1EdgGt=N+1tprefixN0=t0
115 114 adantr NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tprefixN0=t0
116 112 115 preq12d NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0lastStprefixNtprefixN0=tN1t0
117 eqcom lastSt=t0t0=lastSt
118 117 biimpi lastSt=t0t0=lastSt
119 118 adantl NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0t0=lastSt
120 lsw tWordVtxGlastSt=tt1
121 120 3ad2ant2 ttWordVtxGi0..^t1titi+1EdgGlastSt=tt1
122 121 ad2antrl NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=tt1
123 122 adantr NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0lastSt=tt1
124 40 adantl ttWordVtxGi0..^t1titi+1EdgGt=N+1t1=N+1-1
125 124 44 sylan9eqr NttWordVtxGi0..^t1titi+1EdgGt=N+1t1=N
126 125 adantr NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0t1=N
127 126 fveq2d NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tt1=tN
128 119 123 127 3eqtrd NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0t0=tN
129 128 preq2d NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tN1t0=tN1tN
130 40 44 sylan9eq t=N+1Nt1=N
131 130 oveq2d t=N+1N0..^t1=0..^N
132 131 raleqdv t=N+1Ni0..^t1titi+1EdgGi0..^Ntiti+1EdgG
133 fzo0end NN10..^N
134 fveq2 i=N1ti=tN1
135 fvoveq1 i=N1ti+1=tN-1+1
136 134 135 preq12d i=N1titi+1=tN1tN-1+1
137 136 eleq1d i=N1titi+1EdgGtN1tN-1+1EdgG
138 137 rspcva N10..^Ni0..^Ntiti+1EdgGtN1tN-1+1EdgG
139 133 138 sylan Ni0..^Ntiti+1EdgGtN1tN-1+1EdgG
140 42 43 npcand NN-1+1=N
141 140 fveq2d NtN-1+1=tN
142 141 preq2d NtN1tN-1+1=tN1tN
143 142 eleq1d NtN1tN-1+1EdgGtN1tNEdgG
144 143 biimpd NtN1tN-1+1EdgGtN1tNEdgG
145 144 adantr Ni0..^Ntiti+1EdgGtN1tN-1+1EdgGtN1tNEdgG
146 139 145 mpd Ni0..^Ntiti+1EdgGtN1tNEdgG
147 146 ex Ni0..^Ntiti+1EdgGtN1tNEdgG
148 147 adantl t=N+1Ni0..^Ntiti+1EdgGtN1tNEdgG
149 132 148 sylbid t=N+1Ni0..^t1titi+1EdgGtN1tNEdgG
150 149 ex t=N+1Ni0..^t1titi+1EdgGtN1tNEdgG
151 150 com3r i0..^t1titi+1EdgGt=N+1NtN1tNEdgG
152 151 3ad2ant3 ttWordVtxGi0..^t1titi+1EdgGt=N+1NtN1tNEdgG
153 152 imp ttWordVtxGi0..^t1titi+1EdgGt=N+1NtN1tNEdgG
154 153 impcom NttWordVtxGi0..^t1titi+1EdgGt=N+1tN1tNEdgG
155 154 adantr NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tN1tNEdgG
156 129 155 eqeltrd NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tN1t0EdgG
157 116 156 eqeltrd NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0lastStprefixNtprefixN0EdgG
158 157 adantl tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0lastStprefixNtprefixN0EdgG
159 39 96 158 3jca tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tprefixNWordVtxGi0..^tprefixN1tprefixNitprefixNi+1EdgGlastStprefixNtprefixN0EdgG
160 simpl tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tprefixN=N
161 159 160 jca tprefixN=NNttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tprefixNWordVtxGi0..^tprefixN1tprefixNitprefixNi+1EdgGlastStprefixNtprefixN0EdgGtprefixN=N
162 35 161 mpancom NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tprefixNWordVtxGi0..^tprefixN1tprefixNitprefixNi+1EdgGlastStprefixNtprefixN0EdgGtprefixN=N
163 162 exp31 NttWordVtxGi0..^t1titi+1EdgGt=N+1lastSt=t0tprefixNWordVtxGi0..^tprefixN1tprefixNitprefixNi+1EdgGlastStprefixNtprefixN0EdgGtprefixN=N
164 15 163 sylbid NtNWWalksNGlastSt=t0tprefixNWordVtxGi0..^tprefixN1tprefixNitprefixNi+1EdgGlastStprefixNtprefixN0EdgGtprefixN=N
165 164 imp32 NtNWWalksNGlastSt=t0tprefixNWordVtxGi0..^tprefixN1tprefixNitprefixNi+1EdgGlastStprefixNtprefixN0EdgGtprefixN=N
166 10 11 isclwwlknx NtprefixNNClWWalksNGtprefixNWordVtxGi0..^tprefixN1tprefixNitprefixNi+1EdgGlastStprefixNtprefixN0EdgGtprefixN=N
167 166 adantr NtNWWalksNGlastSt=t0tprefixNNClWWalksNGtprefixNWordVtxGi0..^tprefixN1tprefixNitprefixNi+1EdgGlastStprefixNtprefixN0EdgGtprefixN=N
168 165 167 mpbird NtNWWalksNGlastSt=t0tprefixNNClWWalksNG
169 6 168 sylan2b NtDtprefixNNClWWalksNG
170 169 2 fmptd NF:DNClWWalksNG