Proof of Theorem cshwsublen
Step | Hyp | Ref
| Expression |
1 | | oveq2 7263 |
. . . . . 6
⊢
((♯‘𝑊) =
0 → (𝑁 −
(♯‘𝑊)) = (𝑁 − 0)) |
2 | | zcn 12254 |
. . . . . . . 8
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℂ) |
3 | 2 | subid1d 11251 |
. . . . . . 7
⊢ (𝑁 ∈ ℤ → (𝑁 − 0) = 𝑁) |
4 | 3 | adantl 481 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑁 − 0) = 𝑁) |
5 | 1, 4 | sylan9eq 2799 |
. . . . 5
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 − (♯‘𝑊)) = 𝑁) |
6 | 5 | eqcomd 2744 |
. . . 4
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → 𝑁 = (𝑁 − (♯‘𝑊))) |
7 | 6 | oveq2d 7271 |
. . 3
⊢
(((♯‘𝑊)
= 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |
8 | 7 | ex 412 |
. 2
⊢
((♯‘𝑊) =
0 → ((𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊))))) |
9 | | zre 12253 |
. . . . . . 7
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℝ) |
10 | 9 | adantl 481 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → 𝑁 ∈ ℝ) |
11 | | lencl 14164 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) |
12 | | elnnne0 12177 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ ↔ ((♯‘𝑊) ∈ ℕ0 ∧
(♯‘𝑊) ≠
0)) |
13 | | nnrp 12670 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ → (♯‘𝑊) ∈
ℝ+) |
14 | 12, 13 | sylbir 234 |
. . . . . . . . . 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 13589 |
. . . . . 6
⊢ ((𝑁 ∈ ℝ ∧
(♯‘𝑊) ∈
ℝ+) → (𝑁 mod (♯‘𝑊)) = ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊))) |
20 | 10, 18, 19 | syl2an2 682 |
. . . . 5
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 mod (♯‘𝑊)) = ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊))) |
21 | 20 | oveq2d 7271 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift (𝑁 mod (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
22 | | cshwmodn 14436 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 mod (♯‘𝑊)))) |
23 | 22 | adantl 481 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 mod (♯‘𝑊)))) |
24 | | simpl 482 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → 𝑊 ∈ Word 𝑉) |
25 | 11 | nn0zd 12353 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℤ) |
26 | | zsubcl 12292 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℤ ∧
(♯‘𝑊) ∈
ℤ) → (𝑁 −
(♯‘𝑊)) ∈
ℤ) |
27 | 25, 26 | sylan2 592 |
. . . . . . . 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 14436 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑁 − (♯‘𝑊)) ∈ ℤ) → (𝑊 cyclShift (𝑁 − (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
32 | 30, 31 | syl 17 |
. . . 4
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift (𝑁 − (♯‘𝑊))) = (𝑊 cyclShift ((𝑁 − (♯‘𝑊)) mod (♯‘𝑊)))) |
33 | 21, 23, 32 | 3eqtr4d 2788 |
. . 3
⊢
(((♯‘𝑊)
≠ 0 ∧ (𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |
34 | 33 | ex 412 |
. 2
⊢
((♯‘𝑊)
≠ 0 → ((𝑊 ∈
Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊))))) |
35 | 8, 34 | pm2.61ine 3027 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (♯‘𝑊)))) |