| Step | Hyp | Ref | Expression | 
						
							| 1 |  | cshwrepswhash1.m | ⊢ 𝑀  =  { 𝑤  ∈  Word  𝑉  ∣  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 } | 
						
							| 2 |  | df-rab | ⊢ { 𝑤  ∈  Word  𝑉  ∣  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 }  =  { 𝑤  ∣  ( 𝑤  ∈  Word  𝑉  ∧  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 ) } | 
						
							| 3 |  | eqcom | ⊢ ( ( 𝑊  cyclShift  𝑛 )  =  𝑤  ↔  𝑤  =  ( 𝑊  cyclShift  𝑛 ) ) | 
						
							| 4 | 3 | biimpi | ⊢ ( ( 𝑊  cyclShift  𝑛 )  =  𝑤  →  𝑤  =  ( 𝑊  cyclShift  𝑛 ) ) | 
						
							| 5 | 4 | reximi | ⊢ ( ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤  →  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  =  ( 𝑊  cyclShift  𝑛 ) ) | 
						
							| 6 | 5 | adantl | ⊢ ( ( 𝑤  ∈  Word  𝑉  ∧  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 )  →  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  =  ( 𝑊  cyclShift  𝑛 ) ) | 
						
							| 7 |  | cshwcl | ⊢ ( 𝑊  ∈  Word  𝑉  →  ( 𝑊  cyclShift  𝑛 )  ∈  Word  𝑉 ) | 
						
							| 8 | 7 | adantr | ⊢ ( ( 𝑊  ∈  Word  𝑉  ∧  𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )  →  ( 𝑊  cyclShift  𝑛 )  ∈  Word  𝑉 ) | 
						
							| 9 |  | eleq1 | ⊢ ( 𝑤  =  ( 𝑊  cyclShift  𝑛 )  →  ( 𝑤  ∈  Word  𝑉  ↔  ( 𝑊  cyclShift  𝑛 )  ∈  Word  𝑉 ) ) | 
						
							| 10 | 8 9 | syl5ibrcom | ⊢ ( ( 𝑊  ∈  Word  𝑉  ∧  𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )  →  ( 𝑤  =  ( 𝑊  cyclShift  𝑛 )  →  𝑤  ∈  Word  𝑉 ) ) | 
						
							| 11 | 10 | rexlimdva | ⊢ ( 𝑊  ∈  Word  𝑉  →  ( ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  =  ( 𝑊  cyclShift  𝑛 )  →  𝑤  ∈  Word  𝑉 ) ) | 
						
							| 12 |  | eqcom | ⊢ ( 𝑤  =  ( 𝑊  cyclShift  𝑛 )  ↔  ( 𝑊  cyclShift  𝑛 )  =  𝑤 ) | 
						
							| 13 | 12 | biimpi | ⊢ ( 𝑤  =  ( 𝑊  cyclShift  𝑛 )  →  ( 𝑊  cyclShift  𝑛 )  =  𝑤 ) | 
						
							| 14 | 13 | reximi | ⊢ ( ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  =  ( 𝑊  cyclShift  𝑛 )  →  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 ) | 
						
							| 15 | 11 14 | jca2 | ⊢ ( 𝑊  ∈  Word  𝑉  →  ( ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  =  ( 𝑊  cyclShift  𝑛 )  →  ( 𝑤  ∈  Word  𝑉  ∧  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 ) ) ) | 
						
							| 16 | 6 15 | impbid2 | ⊢ ( 𝑊  ∈  Word  𝑉  →  ( ( 𝑤  ∈  Word  𝑉  ∧  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 )  ↔  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  =  ( 𝑊  cyclShift  𝑛 ) ) ) | 
						
							| 17 |  | velsn | ⊢ ( 𝑤  ∈  { ( 𝑊  cyclShift  𝑛 ) }  ↔  𝑤  =  ( 𝑊  cyclShift  𝑛 ) ) | 
						
							| 18 | 17 | bicomi | ⊢ ( 𝑤  =  ( 𝑊  cyclShift  𝑛 )  ↔  𝑤  ∈  { ( 𝑊  cyclShift  𝑛 ) } ) | 
						
							| 19 | 18 | a1i | ⊢ ( 𝑊  ∈  Word  𝑉  →  ( 𝑤  =  ( 𝑊  cyclShift  𝑛 )  ↔  𝑤  ∈  { ( 𝑊  cyclShift  𝑛 ) } ) ) | 
						
							| 20 | 19 | rexbidv | ⊢ ( 𝑊  ∈  Word  𝑉  →  ( ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  =  ( 𝑊  cyclShift  𝑛 )  ↔  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  ∈  { ( 𝑊  cyclShift  𝑛 ) } ) ) | 
						
							| 21 | 16 20 | bitrd | ⊢ ( 𝑊  ∈  Word  𝑉  →  ( ( 𝑤  ∈  Word  𝑉  ∧  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 )  ↔  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  ∈  { ( 𝑊  cyclShift  𝑛 ) } ) ) | 
						
							| 22 | 21 | abbidv | ⊢ ( 𝑊  ∈  Word  𝑉  →  { 𝑤  ∣  ( 𝑤  ∈  Word  𝑉  ∧  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 ) }  =  { 𝑤  ∣  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  ∈  { ( 𝑊  cyclShift  𝑛 ) } } ) | 
						
							| 23 | 2 22 | eqtrid | ⊢ ( 𝑊  ∈  Word  𝑉  →  { 𝑤  ∈  Word  𝑉  ∣  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ( 𝑊  cyclShift  𝑛 )  =  𝑤 }  =  { 𝑤  ∣  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  ∈  { ( 𝑊  cyclShift  𝑛 ) } } ) | 
						
							| 24 |  | df-iun | ⊢ ∪  𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) { ( 𝑊  cyclShift  𝑛 ) }  =  { 𝑤  ∣  ∃ 𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) 𝑤  ∈  { ( 𝑊  cyclShift  𝑛 ) } } | 
						
							| 25 | 23 1 24 | 3eqtr4g | ⊢ ( 𝑊  ∈  Word  𝑉  →  𝑀  =  ∪  𝑛  ∈  ( 0 ..^ ( ♯ ‘ 𝑊 ) ) { ( 𝑊  cyclShift  𝑛 ) } ) |