Proof of Theorem cshwsublen
| Step | Hyp | Ref
| Expression |
| 1 | | oveq2 7439 |
. . . . . 6
⊢
((♯‘𝑊) =
0 → (𝑁 −
(♯‘𝑊)) = (𝑁 − 0)) |
| 2 | | zcn 12618 |
. . . . . . . 8
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℂ) |
| 3 | 2 | subid1d 11609 |
. . . . . . 7
⊢ (𝑁 ∈ ℤ → (𝑁 − 0) = 𝑁) |
| 4 | 3 | adantl 481 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑁 − 0) = 𝑁) |
| 5 | 1, 4 | sylan9eq 2797 |
. . . . 5
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 − (♯‘𝑊)) = 𝑁) |
| 6 | 5 | eqcomd 2743 |
. . . 4
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → 𝑁 = (𝑁 − (♯‘𝑊))) |
| 7 | 6 | oveq2d 7447 |
. . 3
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |
| 8 | 7 | ex 412 |
. 2
⊢
((♯‘𝑊) =
0 → ((𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊))))) |
| 9 | | zre 12617 |
. . . . . . 7
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℝ) |
| 10 | 9 | adantl 481 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → 𝑁 ∈ ℝ) |
| 11 | | lencl 14571 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) |
| 12 | | elnnne0 12540 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ ↔ ((♯‘𝑊) ∈ ℕ0 ∧
(♯‘𝑊) ≠
0)) |
| 13 | | nnrp 13046 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ → (♯‘𝑊) ∈
ℝ+) |
| 14 | 12, 13 | sylbir 235 |
. . . . . . . . . 10
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (♯‘𝑊) ≠ 0) → (♯‘𝑊) ∈
ℝ+) |
| 15 | 14 | ex 412 |
. . . . . . . . 9
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) ≠ 0 → (♯‘𝑊) ∈
ℝ+)) |
| 16 | 11, 15 | syl 17 |
. . . . . . . 8
⊢ (𝑊 ∈ Word 𝑉 → ((♯‘𝑊) ≠ 0 → (♯‘𝑊) ∈
ℝ+)) |
| 17 | 16 | adantr 480 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) →
((♯‘𝑊) ≠ 0
→ (♯‘𝑊)
∈ ℝ+)) |
| 18 | 17 | impcom 407 |
. . . . . 6
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) →
(♯‘𝑊) ∈
ℝ+) |
| 19 | | modeqmodmin 13982 |
. . . . . 6
⊢ ((𝑁 ∈ ℝ ∧
(♯‘𝑊) ∈
ℝ+) → (𝑁 mod (♯‘𝑊)) = ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊))) |
| 20 | 10, 18, 19 | syl2an2 686 |
. . . . 5
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 mod (♯‘𝑊)) = ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊))) |
| 21 | 20 | oveq2d 7447 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift (𝑁 mod (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
| 22 | | cshwmodn 14833 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 mod (♯‘𝑊)))) |
| 23 | 22 | adantl 481 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 mod (♯‘𝑊)))) |
| 24 | | simpl 482 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → 𝑊 ∈ Word 𝑉) |
| 25 | 11 | nn0zd 12639 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℤ) |
| 26 | | zsubcl 12659 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℤ ∧
(♯‘𝑊) ∈
ℤ) → (𝑁 −
(♯‘𝑊)) ∈
ℤ) |
| 27 | 25, 26 | sylan2 593 |
. . . . . . . 8
⊢ ((𝑁 ∈ ℤ ∧ 𝑊 ∈ Word 𝑉) → (𝑁 − (♯‘𝑊)) ∈ ℤ) |
| 28 | 27 | ancoms 458 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑁 − (♯‘𝑊)) ∈ ℤ) |
| 29 | 24, 28 | jca 511 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 ∈ Word 𝑉 ∧ (𝑁 − (♯‘𝑊)) ∈ ℤ)) |
| 30 | 29 | adantl 481 |
. . . . 5
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 ∈ Word 𝑉 ∧ (𝑁 − (♯‘𝑊)) ∈ ℤ)) |
| 31 | | cshwmodn 14833 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑁 − (♯‘𝑊)) ∈ ℤ) → (𝑊 cyclShift (𝑁 − (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
| 32 | 30, 31 | syl 17 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift (𝑁 − (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
| 33 | 21, 23, 32 | 3eqtr4d 2787 |
. . 3
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |
| 34 | 33 | ex 412 |
. 2
⊢
((♯‘𝑊)
≠ 0 → ((𝑊 ∈
Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊))))) |
| 35 | 8, 34 | pm2.61ine 3025 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |