| Step | Hyp | Ref | Expression | 
						
							| 1 |  | crctcsh.v | ⊢ 𝑉  =  ( Vtx ‘ 𝐺 ) | 
						
							| 2 |  | crctcsh.i | ⊢ 𝐼  =  ( iEdg ‘ 𝐺 ) | 
						
							| 3 |  | crctcsh.d | ⊢ ( 𝜑  →  𝐹 ( Circuits ‘ 𝐺 ) 𝑃 ) | 
						
							| 4 |  | crctcsh.n | ⊢ 𝑁  =  ( ♯ ‘ 𝐹 ) | 
						
							| 5 |  | crctcsh.s | ⊢ ( 𝜑  →  𝑆  ∈  ( 0 ..^ 𝑁 ) ) | 
						
							| 6 |  | crctcsh.h | ⊢ 𝐻  =  ( 𝐹  cyclShift  𝑆 ) | 
						
							| 7 |  | crctcsh.q | ⊢ 𝑄  =  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  if ( 𝑥  ≤  ( 𝑁  −  𝑆 ) ,  ( 𝑃 ‘ ( 𝑥  +  𝑆 ) ) ,  ( 𝑃 ‘ ( ( 𝑥  +  𝑆 )  −  𝑁 ) ) ) ) | 
						
							| 8 |  | oveq2 | ⊢ ( 𝑆  =  0  →  ( 𝐹  cyclShift  𝑆 )  =  ( 𝐹  cyclShift  0 ) ) | 
						
							| 9 |  | crctiswlk | ⊢ ( 𝐹 ( Circuits ‘ 𝐺 ) 𝑃  →  𝐹 ( Walks ‘ 𝐺 ) 𝑃 ) | 
						
							| 10 | 2 | wlkf | ⊢ ( 𝐹 ( Walks ‘ 𝐺 ) 𝑃  →  𝐹  ∈  Word  dom  𝐼 ) | 
						
							| 11 |  | cshw0 | ⊢ ( 𝐹  ∈  Word  dom  𝐼  →  ( 𝐹  cyclShift  0 )  =  𝐹 ) | 
						
							| 12 | 3 9 10 11 | 4syl | ⊢ ( 𝜑  →  ( 𝐹  cyclShift  0 )  =  𝐹 ) | 
						
							| 13 | 8 12 | sylan9eqr | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  ( 𝐹  cyclShift  𝑆 )  =  𝐹 ) | 
						
							| 14 | 6 13 | eqtrid | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  𝐻  =  𝐹 ) | 
						
							| 15 |  | oveq2 | ⊢ ( 𝑆  =  0  →  ( 𝑁  −  𝑆 )  =  ( 𝑁  −  0 ) ) | 
						
							| 16 | 1 2 3 4 | crctcshlem1 | ⊢ ( 𝜑  →  𝑁  ∈  ℕ0 ) | 
						
							| 17 | 16 | nn0cnd | ⊢ ( 𝜑  →  𝑁  ∈  ℂ ) | 
						
							| 18 | 17 | subid1d | ⊢ ( 𝜑  →  ( 𝑁  −  0 )  =  𝑁 ) | 
						
							| 19 | 15 18 | sylan9eqr | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  ( 𝑁  −  𝑆 )  =  𝑁 ) | 
						
							| 20 | 19 | breq2d | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  ( 𝑥  ≤  ( 𝑁  −  𝑆 )  ↔  𝑥  ≤  𝑁 ) ) | 
						
							| 21 | 20 | adantr | ⊢ ( ( ( 𝜑  ∧  𝑆  =  0 )  ∧  𝑥  ∈  ( 0 ... 𝑁 ) )  →  ( 𝑥  ≤  ( 𝑁  −  𝑆 )  ↔  𝑥  ≤  𝑁 ) ) | 
						
							| 22 |  | oveq2 | ⊢ ( 𝑆  =  0  →  ( 𝑥  +  𝑆 )  =  ( 𝑥  +  0 ) ) | 
						
							| 23 | 22 | adantl | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  ( 𝑥  +  𝑆 )  =  ( 𝑥  +  0 ) ) | 
						
							| 24 |  | elfzelz | ⊢ ( 𝑥  ∈  ( 0 ... 𝑁 )  →  𝑥  ∈  ℤ ) | 
						
							| 25 | 24 | zcnd | ⊢ ( 𝑥  ∈  ( 0 ... 𝑁 )  →  𝑥  ∈  ℂ ) | 
						
							| 26 | 25 | addridd | ⊢ ( 𝑥  ∈  ( 0 ... 𝑁 )  →  ( 𝑥  +  0 )  =  𝑥 ) | 
						
							| 27 | 23 26 | sylan9eq | ⊢ ( ( ( 𝜑  ∧  𝑆  =  0 )  ∧  𝑥  ∈  ( 0 ... 𝑁 ) )  →  ( 𝑥  +  𝑆 )  =  𝑥 ) | 
						
							| 28 | 27 | fveq2d | ⊢ ( ( ( 𝜑  ∧  𝑆  =  0 )  ∧  𝑥  ∈  ( 0 ... 𝑁 ) )  →  ( 𝑃 ‘ ( 𝑥  +  𝑆 ) )  =  ( 𝑃 ‘ 𝑥 ) ) | 
						
							| 29 | 27 | fvoveq1d | ⊢ ( ( ( 𝜑  ∧  𝑆  =  0 )  ∧  𝑥  ∈  ( 0 ... 𝑁 ) )  →  ( 𝑃 ‘ ( ( 𝑥  +  𝑆 )  −  𝑁 ) )  =  ( 𝑃 ‘ ( 𝑥  −  𝑁 ) ) ) | 
						
							| 30 | 21 28 29 | ifbieq12d | ⊢ ( ( ( 𝜑  ∧  𝑆  =  0 )  ∧  𝑥  ∈  ( 0 ... 𝑁 ) )  →  if ( 𝑥  ≤  ( 𝑁  −  𝑆 ) ,  ( 𝑃 ‘ ( 𝑥  +  𝑆 ) ) ,  ( 𝑃 ‘ ( ( 𝑥  +  𝑆 )  −  𝑁 ) ) )  =  if ( 𝑥  ≤  𝑁 ,  ( 𝑃 ‘ 𝑥 ) ,  ( 𝑃 ‘ ( 𝑥  −  𝑁 ) ) ) ) | 
						
							| 31 | 30 | mpteq2dva | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  if ( 𝑥  ≤  ( 𝑁  −  𝑆 ) ,  ( 𝑃 ‘ ( 𝑥  +  𝑆 ) ) ,  ( 𝑃 ‘ ( ( 𝑥  +  𝑆 )  −  𝑁 ) ) ) )  =  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  if ( 𝑥  ≤  𝑁 ,  ( 𝑃 ‘ 𝑥 ) ,  ( 𝑃 ‘ ( 𝑥  −  𝑁 ) ) ) ) ) | 
						
							| 32 |  | elfzle2 | ⊢ ( 𝑥  ∈  ( 0 ... 𝑁 )  →  𝑥  ≤  𝑁 ) | 
						
							| 33 | 32 | adantl | ⊢ ( ( 𝜑  ∧  𝑥  ∈  ( 0 ... 𝑁 ) )  →  𝑥  ≤  𝑁 ) | 
						
							| 34 | 33 | iftrued | ⊢ ( ( 𝜑  ∧  𝑥  ∈  ( 0 ... 𝑁 ) )  →  if ( 𝑥  ≤  𝑁 ,  ( 𝑃 ‘ 𝑥 ) ,  ( 𝑃 ‘ ( 𝑥  −  𝑁 ) ) )  =  ( 𝑃 ‘ 𝑥 ) ) | 
						
							| 35 | 34 | mpteq2dva | ⊢ ( 𝜑  →  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  if ( 𝑥  ≤  𝑁 ,  ( 𝑃 ‘ 𝑥 ) ,  ( 𝑃 ‘ ( 𝑥  −  𝑁 ) ) ) )  =  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  ( 𝑃 ‘ 𝑥 ) ) ) | 
						
							| 36 | 1 | wlkp | ⊢ ( 𝐹 ( Walks ‘ 𝐺 ) 𝑃  →  𝑃 : ( 0 ... ( ♯ ‘ 𝐹 ) ) ⟶ 𝑉 ) | 
						
							| 37 | 3 9 36 | 3syl | ⊢ ( 𝜑  →  𝑃 : ( 0 ... ( ♯ ‘ 𝐹 ) ) ⟶ 𝑉 ) | 
						
							| 38 |  | ffn | ⊢ ( 𝑃 : ( 0 ... ( ♯ ‘ 𝐹 ) ) ⟶ 𝑉  →  𝑃  Fn  ( 0 ... ( ♯ ‘ 𝐹 ) ) ) | 
						
							| 39 | 4 | eqcomi | ⊢ ( ♯ ‘ 𝐹 )  =  𝑁 | 
						
							| 40 | 39 | oveq2i | ⊢ ( 0 ... ( ♯ ‘ 𝐹 ) )  =  ( 0 ... 𝑁 ) | 
						
							| 41 | 40 | fneq2i | ⊢ ( 𝑃  Fn  ( 0 ... ( ♯ ‘ 𝐹 ) )  ↔  𝑃  Fn  ( 0 ... 𝑁 ) ) | 
						
							| 42 | 38 41 | sylib | ⊢ ( 𝑃 : ( 0 ... ( ♯ ‘ 𝐹 ) ) ⟶ 𝑉  →  𝑃  Fn  ( 0 ... 𝑁 ) ) | 
						
							| 43 | 42 | adantl | ⊢ ( ( 𝜑  ∧  𝑃 : ( 0 ... ( ♯ ‘ 𝐹 ) ) ⟶ 𝑉 )  →  𝑃  Fn  ( 0 ... 𝑁 ) ) | 
						
							| 44 |  | dffn5 | ⊢ ( 𝑃  Fn  ( 0 ... 𝑁 )  ↔  𝑃  =  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  ( 𝑃 ‘ 𝑥 ) ) ) | 
						
							| 45 | 43 44 | sylib | ⊢ ( ( 𝜑  ∧  𝑃 : ( 0 ... ( ♯ ‘ 𝐹 ) ) ⟶ 𝑉 )  →  𝑃  =  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  ( 𝑃 ‘ 𝑥 ) ) ) | 
						
							| 46 | 45 | eqcomd | ⊢ ( ( 𝜑  ∧  𝑃 : ( 0 ... ( ♯ ‘ 𝐹 ) ) ⟶ 𝑉 )  →  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  ( 𝑃 ‘ 𝑥 ) )  =  𝑃 ) | 
						
							| 47 | 37 46 | mpdan | ⊢ ( 𝜑  →  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  ( 𝑃 ‘ 𝑥 ) )  =  𝑃 ) | 
						
							| 48 | 35 47 | eqtrd | ⊢ ( 𝜑  →  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  if ( 𝑥  ≤  𝑁 ,  ( 𝑃 ‘ 𝑥 ) ,  ( 𝑃 ‘ ( 𝑥  −  𝑁 ) ) ) )  =  𝑃 ) | 
						
							| 49 | 48 | adantr | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  if ( 𝑥  ≤  𝑁 ,  ( 𝑃 ‘ 𝑥 ) ,  ( 𝑃 ‘ ( 𝑥  −  𝑁 ) ) ) )  =  𝑃 ) | 
						
							| 50 | 31 49 | eqtrd | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  ( 𝑥  ∈  ( 0 ... 𝑁 )  ↦  if ( 𝑥  ≤  ( 𝑁  −  𝑆 ) ,  ( 𝑃 ‘ ( 𝑥  +  𝑆 ) ) ,  ( 𝑃 ‘ ( ( 𝑥  +  𝑆 )  −  𝑁 ) ) ) )  =  𝑃 ) | 
						
							| 51 | 7 50 | eqtrid | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  𝑄  =  𝑃 ) | 
						
							| 52 | 14 51 | jca | ⊢ ( ( 𝜑  ∧  𝑆  =  0 )  →  ( 𝐻  =  𝐹  ∧  𝑄  =  𝑃 ) ) |