Proof of Theorem cshwsublen
Step | Hyp | Ref
| Expression |
1 | | oveq2 6800 |
. . . . . 6
⊢
((♯‘𝑊) =
0 → (𝑁 −
(♯‘𝑊)) = (𝑁 − 0)) |
2 | | zcn 11583 |
. . . . . . . 8
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℂ) |
3 | 2 | subid1d 10582 |
. . . . . . 7
⊢ (𝑁 ∈ ℤ → (𝑁 − 0) = 𝑁) |
4 | 3 | adantl 467 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑁 − 0) = 𝑁) |
5 | 1, 4 | sylan9eq 2824 |
. . . . 5
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 − (♯‘𝑊)) = 𝑁) |
6 | 5 | eqcomd 2776 |
. . . 4
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → 𝑁 = (𝑁 − (♯‘𝑊))) |
7 | 6 | oveq2d 6808 |
. . 3
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |
8 | 7 | ex 397 |
. 2
⊢
((♯‘𝑊) =
0 → ((𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊))))) |
9 | | zre 11582 |
. . . . . . . . 9
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℝ) |
10 | 9 | adantl 467 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → 𝑁 ∈ ℝ) |
11 | 10 | adantl 467 |
. . . . . . 7
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → 𝑁 ∈ ℝ) |
12 | | lencl 13519 |
. . . . . . . . . 10
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) |
13 | | elnnne0 11507 |
. . . . . . . . . . . 12
⊢
((♯‘𝑊)
∈ ℕ ↔ ((♯‘𝑊) ∈ ℕ0 ∧
(♯‘𝑊) ≠
0)) |
14 | | nnrp 12044 |
. . . . . . . . . . . 12
⊢
((♯‘𝑊)
∈ ℕ → (♯‘𝑊) ∈
ℝ+) |
15 | 13, 14 | sylbir 225 |
. . . . . . . . . . 11
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (♯‘𝑊) ≠ 0) → (♯‘𝑊) ∈
ℝ+) |
16 | 15 | ex 397 |
. . . . . . . . . 10
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) ≠ 0 → (♯‘𝑊) ∈
ℝ+)) |
17 | 12, 16 | syl 17 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → ((♯‘𝑊) ≠ 0 → (♯‘𝑊) ∈
ℝ+)) |
18 | 17 | adantr 466 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) →
((♯‘𝑊) ≠ 0
→ (♯‘𝑊)
∈ ℝ+)) |
19 | 18 | impcom 394 |
. . . . . . 7
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) →
(♯‘𝑊) ∈
ℝ+) |
20 | 11, 19 | jca 495 |
. . . . . 6
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 ∈ ℝ ∧ (♯‘𝑊) ∈
ℝ+)) |
21 | | modeqmodmin 12947 |
. . . . . 6
⊢ ((𝑁 ∈ ℝ ∧
(♯‘𝑊) ∈
ℝ+) → (𝑁 mod (♯‘𝑊)) = ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊))) |
22 | 20, 21 | syl 17 |
. . . . 5
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 mod (♯‘𝑊)) = ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊))) |
23 | 22 | oveq2d 6808 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift (𝑁 mod (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
24 | | cshwmodn 13749 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 mod (♯‘𝑊)))) |
25 | 24 | adantl 467 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 mod (♯‘𝑊)))) |
26 | | simpl 468 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → 𝑊 ∈ Word 𝑉) |
27 | 12 | nn0zd 11681 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℤ) |
28 | | zsubcl 11620 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℤ ∧
(♯‘𝑊) ∈
ℤ) → (𝑁 −
(♯‘𝑊)) ∈
ℤ) |
29 | 27, 28 | sylan2 572 |
. . . . . . . 8
⊢ ((𝑁 ∈ ℤ ∧ 𝑊 ∈ Word 𝑉) → (𝑁 − (♯‘𝑊)) ∈ ℤ) |
30 | 29 | ancoms 455 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑁 − (♯‘𝑊)) ∈ ℤ) |
31 | 26, 30 | jca 495 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 ∈ Word 𝑉 ∧ (𝑁 − (♯‘𝑊)) ∈ ℤ)) |
32 | 31 | adantl 467 |
. . . . 5
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 ∈ Word 𝑉 ∧ (𝑁 − (♯‘𝑊)) ∈ ℤ)) |
33 | | cshwmodn 13749 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑁 − (♯‘𝑊)) ∈ ℤ) → (𝑊 cyclShift (𝑁 − (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
34 | 32, 33 | syl 17 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift (𝑁 − (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
35 | 23, 25, 34 | 3eqtr4d 2814 |
. . 3
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |
36 | 35 | ex 397 |
. 2
⊢
((♯‘𝑊)
≠ 0 → ((𝑊 ∈
Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊))))) |
37 | 8, 36 | pm2.61ine 3025 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |