| Step | Hyp | Ref | Expression | 
						
							| 1 |  | eqeq1 | ⊢ ( 𝑤  =  𝑊  →  ( 𝑤  =  ∅  ↔  𝑊  =  ∅ ) ) | 
						
							| 2 | 1 | adantr | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  ( 𝑤  =  ∅  ↔  𝑊  =  ∅ ) ) | 
						
							| 3 |  | simpl | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  𝑤  =  𝑊 ) | 
						
							| 4 |  | simpr | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  𝑛  =  𝑁 ) | 
						
							| 5 |  | fveq2 | ⊢ ( 𝑤  =  𝑊  →  ( ♯ ‘ 𝑤 )  =  ( ♯ ‘ 𝑊 ) ) | 
						
							| 6 | 5 | adantr | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  ( ♯ ‘ 𝑤 )  =  ( ♯ ‘ 𝑊 ) ) | 
						
							| 7 | 4 6 | oveq12d | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  ( 𝑛  mod  ( ♯ ‘ 𝑤 ) )  =  ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ) | 
						
							| 8 | 7 6 | opeq12d | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  〈 ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) ,  ( ♯ ‘ 𝑤 ) 〉  =  〈 ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ,  ( ♯ ‘ 𝑊 ) 〉 ) | 
						
							| 9 | 3 8 | oveq12d | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  ( 𝑤  substr  〈 ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) ,  ( ♯ ‘ 𝑤 ) 〉 )  =  ( 𝑊  substr  〈 ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ,  ( ♯ ‘ 𝑊 ) 〉 ) ) | 
						
							| 10 | 3 7 | oveq12d | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  ( 𝑤  prefix  ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) )  =  ( 𝑊  prefix  ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ) ) | 
						
							| 11 | 9 10 | oveq12d | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  ( ( 𝑤  substr  〈 ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) ,  ( ♯ ‘ 𝑤 ) 〉 )  ++  ( 𝑤  prefix  ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) ) )  =  ( ( 𝑊  substr  〈 ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ,  ( ♯ ‘ 𝑊 ) 〉 )  ++  ( 𝑊  prefix  ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ) ) ) | 
						
							| 12 | 2 11 | ifbieq2d | ⊢ ( ( 𝑤  =  𝑊  ∧  𝑛  =  𝑁 )  →  if ( 𝑤  =  ∅ ,  ∅ ,  ( ( 𝑤  substr  〈 ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) ,  ( ♯ ‘ 𝑤 ) 〉 )  ++  ( 𝑤  prefix  ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) ) ) )  =  if ( 𝑊  =  ∅ ,  ∅ ,  ( ( 𝑊  substr  〈 ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ,  ( ♯ ‘ 𝑊 ) 〉 )  ++  ( 𝑊  prefix  ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ) ) ) ) | 
						
							| 13 |  | df-csh | ⊢  cyclShift   =  ( 𝑤  ∈  { 𝑓  ∣  ∃ 𝑙  ∈  ℕ0 𝑓  Fn  ( 0 ..^ 𝑙 ) } ,  𝑛  ∈  ℤ  ↦  if ( 𝑤  =  ∅ ,  ∅ ,  ( ( 𝑤  substr  〈 ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) ,  ( ♯ ‘ 𝑤 ) 〉 )  ++  ( 𝑤  prefix  ( 𝑛  mod  ( ♯ ‘ 𝑤 ) ) ) ) ) ) | 
						
							| 14 |  | 0ex | ⊢ ∅  ∈  V | 
						
							| 15 |  | ovex | ⊢ ( ( 𝑊  substr  〈 ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ,  ( ♯ ‘ 𝑊 ) 〉 )  ++  ( 𝑊  prefix  ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ) )  ∈  V | 
						
							| 16 | 14 15 | ifex | ⊢ if ( 𝑊  =  ∅ ,  ∅ ,  ( ( 𝑊  substr  〈 ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ,  ( ♯ ‘ 𝑊 ) 〉 )  ++  ( 𝑊  prefix  ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ) ) )  ∈  V | 
						
							| 17 | 12 13 16 | ovmpoa | ⊢ ( ( 𝑊  ∈  { 𝑓  ∣  ∃ 𝑙  ∈  ℕ0 𝑓  Fn  ( 0 ..^ 𝑙 ) }  ∧  𝑁  ∈  ℤ )  →  ( 𝑊  cyclShift  𝑁 )  =  if ( 𝑊  =  ∅ ,  ∅ ,  ( ( 𝑊  substr  〈 ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ,  ( ♯ ‘ 𝑊 ) 〉 )  ++  ( 𝑊  prefix  ( 𝑁  mod  ( ♯ ‘ 𝑊 ) ) ) ) ) ) |