This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Two classes are equivalent regarding .~ if both are words of the same fixed length and one is the other cyclically shifted. (Contributed by Alexander van der Vekens, 25-Mar-2018) (Revised by AV, 30-Apr-2021)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | erclwwlkn.w | ⊢ 𝑊 = ( 𝑁 ClWWalksN 𝐺 ) | |
| erclwwlkn.r | ⊢ ∼ = { 〈 𝑡 , 𝑢 〉 ∣ ( 𝑡 ∈ 𝑊 ∧ 𝑢 ∈ 𝑊 ∧ ∃ 𝑛 ∈ ( 0 ... 𝑁 ) 𝑡 = ( 𝑢 cyclShift 𝑛 ) ) } | ||
| Assertion | erclwwlkneq | ⊢ ( ( 𝑇 ∈ 𝑋 ∧ 𝑈 ∈ 𝑌 ) → ( 𝑇 ∼ 𝑈 ↔ ( 𝑇 ∈ 𝑊 ∧ 𝑈 ∈ 𝑊 ∧ ∃ 𝑛 ∈ ( 0 ... 𝑁 ) 𝑇 = ( 𝑈 cyclShift 𝑛 ) ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | erclwwlkn.w | ⊢ 𝑊 = ( 𝑁 ClWWalksN 𝐺 ) | |
| 2 | erclwwlkn.r | ⊢ ∼ = { 〈 𝑡 , 𝑢 〉 ∣ ( 𝑡 ∈ 𝑊 ∧ 𝑢 ∈ 𝑊 ∧ ∃ 𝑛 ∈ ( 0 ... 𝑁 ) 𝑡 = ( 𝑢 cyclShift 𝑛 ) ) } | |
| 3 | eleq1 | ⊢ ( 𝑡 = 𝑇 → ( 𝑡 ∈ 𝑊 ↔ 𝑇 ∈ 𝑊 ) ) | |
| 4 | 3 | adantr | ⊢ ( ( 𝑡 = 𝑇 ∧ 𝑢 = 𝑈 ) → ( 𝑡 ∈ 𝑊 ↔ 𝑇 ∈ 𝑊 ) ) |
| 5 | eleq1 | ⊢ ( 𝑢 = 𝑈 → ( 𝑢 ∈ 𝑊 ↔ 𝑈 ∈ 𝑊 ) ) | |
| 6 | 5 | adantl | ⊢ ( ( 𝑡 = 𝑇 ∧ 𝑢 = 𝑈 ) → ( 𝑢 ∈ 𝑊 ↔ 𝑈 ∈ 𝑊 ) ) |
| 7 | simpl | ⊢ ( ( 𝑡 = 𝑇 ∧ 𝑢 = 𝑈 ) → 𝑡 = 𝑇 ) | |
| 8 | oveq1 | ⊢ ( 𝑢 = 𝑈 → ( 𝑢 cyclShift 𝑛 ) = ( 𝑈 cyclShift 𝑛 ) ) | |
| 9 | 8 | adantl | ⊢ ( ( 𝑡 = 𝑇 ∧ 𝑢 = 𝑈 ) → ( 𝑢 cyclShift 𝑛 ) = ( 𝑈 cyclShift 𝑛 ) ) |
| 10 | 7 9 | eqeq12d | ⊢ ( ( 𝑡 = 𝑇 ∧ 𝑢 = 𝑈 ) → ( 𝑡 = ( 𝑢 cyclShift 𝑛 ) ↔ 𝑇 = ( 𝑈 cyclShift 𝑛 ) ) ) |
| 11 | 10 | rexbidv | ⊢ ( ( 𝑡 = 𝑇 ∧ 𝑢 = 𝑈 ) → ( ∃ 𝑛 ∈ ( 0 ... 𝑁 ) 𝑡 = ( 𝑢 cyclShift 𝑛 ) ↔ ∃ 𝑛 ∈ ( 0 ... 𝑁 ) 𝑇 = ( 𝑈 cyclShift 𝑛 ) ) ) |
| 12 | 4 6 11 | 3anbi123d | ⊢ ( ( 𝑡 = 𝑇 ∧ 𝑢 = 𝑈 ) → ( ( 𝑡 ∈ 𝑊 ∧ 𝑢 ∈ 𝑊 ∧ ∃ 𝑛 ∈ ( 0 ... 𝑁 ) 𝑡 = ( 𝑢 cyclShift 𝑛 ) ) ↔ ( 𝑇 ∈ 𝑊 ∧ 𝑈 ∈ 𝑊 ∧ ∃ 𝑛 ∈ ( 0 ... 𝑁 ) 𝑇 = ( 𝑈 cyclShift 𝑛 ) ) ) ) |
| 13 | 12 2 | brabga | ⊢ ( ( 𝑇 ∈ 𝑋 ∧ 𝑈 ∈ 𝑌 ) → ( 𝑇 ∼ 𝑈 ↔ ( 𝑇 ∈ 𝑊 ∧ 𝑈 ∈ 𝑊 ∧ ∃ 𝑛 ∈ ( 0 ... 𝑁 ) 𝑇 = ( 𝑈 cyclShift 𝑛 ) ) ) ) |