| Step | Hyp | Ref | Expression | 
						
							| 1 |  | df-csh |  |-  cyclShift = ( w e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } , n e. ZZ |-> if ( w = (/) , (/) , ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) ++ ( w prefix ( n mod ( # ` w ) ) ) ) ) ) | 
						
							| 2 | 1 | a1i |  |-  ( N e. ZZ -> cyclShift = ( w e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } , n e. ZZ |-> if ( w = (/) , (/) , ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) ++ ( w prefix ( n mod ( # ` w ) ) ) ) ) ) ) | 
						
							| 3 |  | iftrue |  |-  ( w = (/) -> if ( w = (/) , (/) , ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) ++ ( w prefix ( n mod ( # ` w ) ) ) ) ) = (/) ) | 
						
							| 4 | 3 | ad2antrl |  |-  ( ( N e. ZZ /\ ( w = (/) /\ n = N ) ) -> if ( w = (/) , (/) , ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. ) ++ ( w prefix ( n mod ( # ` w ) ) ) ) ) = (/) ) | 
						
							| 5 |  | 0nn0 |  |-  0 e. NN0 | 
						
							| 6 |  | f0 |  |-  (/) : (/) --> _V | 
						
							| 7 |  | ffn |  |-  ( (/) : (/) --> _V -> (/) Fn (/) ) | 
						
							| 8 |  | fzo0 |  |-  ( 0 ..^ 0 ) = (/) | 
						
							| 9 | 8 | eqcomi |  |-  (/) = ( 0 ..^ 0 ) | 
						
							| 10 | 9 | fneq2i |  |-  ( (/) Fn (/) <-> (/) Fn ( 0 ..^ 0 ) ) | 
						
							| 11 | 7 10 | sylib |  |-  ( (/) : (/) --> _V -> (/) Fn ( 0 ..^ 0 ) ) | 
						
							| 12 | 6 11 | ax-mp |  |-  (/) Fn ( 0 ..^ 0 ) | 
						
							| 13 |  | id |  |-  ( 0 e. NN0 -> 0 e. NN0 ) | 
						
							| 14 |  | oveq2 |  |-  ( l = 0 -> ( 0 ..^ l ) = ( 0 ..^ 0 ) ) | 
						
							| 15 | 14 | fneq2d |  |-  ( l = 0 -> ( (/) Fn ( 0 ..^ l ) <-> (/) Fn ( 0 ..^ 0 ) ) ) | 
						
							| 16 | 15 | adantl |  |-  ( ( 0 e. NN0 /\ l = 0 ) -> ( (/) Fn ( 0 ..^ l ) <-> (/) Fn ( 0 ..^ 0 ) ) ) | 
						
							| 17 | 13 16 | rspcedv |  |-  ( 0 e. NN0 -> ( (/) Fn ( 0 ..^ 0 ) -> E. l e. NN0 (/) Fn ( 0 ..^ l ) ) ) | 
						
							| 18 | 5 12 17 | mp2 |  |-  E. l e. NN0 (/) Fn ( 0 ..^ l ) | 
						
							| 19 |  | 0ex |  |-  (/) e. _V | 
						
							| 20 |  | fneq1 |  |-  ( f = (/) -> ( f Fn ( 0 ..^ l ) <-> (/) Fn ( 0 ..^ l ) ) ) | 
						
							| 21 | 20 | rexbidv |  |-  ( f = (/) -> ( E. l e. NN0 f Fn ( 0 ..^ l ) <-> E. l e. NN0 (/) Fn ( 0 ..^ l ) ) ) | 
						
							| 22 | 19 21 | elab |  |-  ( (/) e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } <-> E. l e. NN0 (/) Fn ( 0 ..^ l ) ) | 
						
							| 23 | 18 22 | mpbir |  |-  (/) e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } | 
						
							| 24 | 23 | a1i |  |-  ( N e. ZZ -> (/) e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } ) | 
						
							| 25 |  | id |  |-  ( N e. ZZ -> N e. ZZ ) | 
						
							| 26 | 19 | a1i |  |-  ( N e. ZZ -> (/) e. _V ) | 
						
							| 27 | 2 4 24 25 26 | ovmpod |  |-  ( N e. ZZ -> ( (/) cyclShift N ) = (/) ) | 
						
							| 28 |  | cshnz |  |-  ( -. N e. ZZ -> ( (/) cyclShift N ) = (/) ) | 
						
							| 29 | 27 28 | pm2.61i |  |-  ( (/) cyclShift N ) = (/) |