| Step | Hyp | Ref | Expression | 
						
							| 1 |  | iswrd |  |-  ( W e. Word V <-> E. l e. NN0 W : ( 0 ..^ l ) --> V ) | 
						
							| 2 |  | ffn |  |-  ( W : ( 0 ..^ l ) --> V -> W Fn ( 0 ..^ l ) ) | 
						
							| 3 | 2 | reximi |  |-  ( E. l e. NN0 W : ( 0 ..^ l ) --> V -> E. l e. NN0 W Fn ( 0 ..^ l ) ) | 
						
							| 4 | 1 3 | sylbi |  |-  ( W e. Word V -> E. l e. NN0 W Fn ( 0 ..^ l ) ) | 
						
							| 5 |  | fneq1 |  |-  ( w = W -> ( w Fn ( 0 ..^ l ) <-> W Fn ( 0 ..^ l ) ) ) | 
						
							| 6 | 5 | rexbidv |  |-  ( w = W -> ( E. l e. NN0 w Fn ( 0 ..^ l ) <-> E. l e. NN0 W Fn ( 0 ..^ l ) ) ) | 
						
							| 7 | 6 | elabg |  |-  ( W e. Word V -> ( W e. { w | E. l e. NN0 w Fn ( 0 ..^ l ) } <-> E. l e. NN0 W Fn ( 0 ..^ l ) ) ) | 
						
							| 8 | 4 7 | mpbird |  |-  ( W e. Word V -> W e. { w | E. l e. NN0 w Fn ( 0 ..^ l ) } ) | 
						
							| 9 |  | cshfn |  |-  ( ( W e. { w | E. l e. NN0 w Fn ( 0 ..^ l ) } /\ N e. ZZ ) -> ( W cyclShift N ) = if ( W = (/) , (/) , ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) ) | 
						
							| 10 | 8 9 | sylan |  |-  ( ( W e. Word V /\ N e. ZZ ) -> ( W cyclShift N ) = if ( W = (/) , (/) , ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) ) | 
						
							| 11 |  | iftrue |  |-  ( W = (/) -> if ( W = (/) , (/) , ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) = (/) ) | 
						
							| 12 | 11 | adantr |  |-  ( ( W = (/) /\ ( W e. Word V /\ N e. ZZ ) ) -> if ( W = (/) , (/) , ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) = (/) ) | 
						
							| 13 |  | oveq1 |  |-  ( W = (/) -> ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) = ( (/) substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ) | 
						
							| 14 |  | swrd0 |  |-  ( (/) substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) = (/) | 
						
							| 15 | 13 14 | eqtrdi |  |-  ( W = (/) -> ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) = (/) ) | 
						
							| 16 |  | oveq1 |  |-  ( W = (/) -> ( W prefix ( N mod ( # ` W ) ) ) = ( (/) prefix ( N mod ( # ` W ) ) ) ) | 
						
							| 17 |  | pfx0 |  |-  ( (/) prefix ( N mod ( # ` W ) ) ) = (/) | 
						
							| 18 | 16 17 | eqtrdi |  |-  ( W = (/) -> ( W prefix ( N mod ( # ` W ) ) ) = (/) ) | 
						
							| 19 | 15 18 | oveq12d |  |-  ( W = (/) -> ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) = ( (/) ++ (/) ) ) | 
						
							| 20 | 19 | adantr |  |-  ( ( W = (/) /\ ( W e. Word V /\ N e. ZZ ) ) -> ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) = ( (/) ++ (/) ) ) | 
						
							| 21 |  | ccatidid |  |-  ( (/) ++ (/) ) = (/) | 
						
							| 22 | 20 21 | eqtr2di |  |-  ( ( W = (/) /\ ( W e. Word V /\ N e. ZZ ) ) -> (/) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) | 
						
							| 23 | 12 22 | eqtrd |  |-  ( ( W = (/) /\ ( W e. Word V /\ N e. ZZ ) ) -> if ( W = (/) , (/) , ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) | 
						
							| 24 |  | iffalse |  |-  ( -. W = (/) -> if ( W = (/) , (/) , ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) | 
						
							| 25 | 24 | adantr |  |-  ( ( -. W = (/) /\ ( W e. Word V /\ N e. ZZ ) ) -> if ( W = (/) , (/) , ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) | 
						
							| 26 | 23 25 | pm2.61ian |  |-  ( ( W e. Word V /\ N e. ZZ ) -> if ( W = (/) , (/) , ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) | 
						
							| 27 | 10 26 | eqtrd |  |-  ( ( W e. Word V /\ N e. ZZ ) -> ( W cyclShift N ) = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. ) ++ ( W prefix ( N mod ( # ` W ) ) ) ) ) |