Proof of Theorem cshwsublen
Step | Hyp | Ref
| Expression |
1 | | oveq2 6557 |
. . . . . 6
⊢
((#‘𝑊) = 0
→ (𝑁 −
(#‘𝑊)) = (𝑁 − 0)) |
2 | | zcn 11259 |
. . . . . . . 8
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℂ) |
3 | 2 | subid1d 10260 |
. . . . . . 7
⊢ (𝑁 ∈ ℤ → (𝑁 − 0) = 𝑁) |
4 | 3 | adantl 481 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑁 − 0) = 𝑁) |
5 | 1, 4 | sylan9eq 2664 |
. . . . 5
⊢
(((#‘𝑊) = 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 − (#‘𝑊)) = 𝑁) |
6 | 5 | eqcomd 2616 |
. . . 4
⊢
(((#‘𝑊) = 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → 𝑁 = (𝑁 − (#‘𝑊))) |
7 | 6 | oveq2d 6565 |
. . 3
⊢
(((#‘𝑊) = 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (#‘𝑊)))) |
8 | 7 | ex 449 |
. 2
⊢
((#‘𝑊) = 0
→ ((𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (#‘𝑊))))) |
9 | | zre 11258 |
. . . . . . . . 9
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℝ) |
10 | 9 | adantl 481 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → 𝑁 ∈ ℝ) |
11 | 10 | adantl 481 |
. . . . . . 7
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → 𝑁 ∈ ℝ) |
12 | | lencl 13179 |
. . . . . . . . . 10
⊢ (𝑊 ∈ Word 𝑉 → (#‘𝑊) ∈
ℕ0) |
13 | | elnnne0 11183 |
. . . . . . . . . . . 12
⊢
((#‘𝑊) ∈
ℕ ↔ ((#‘𝑊)
∈ ℕ0 ∧ (#‘𝑊) ≠ 0)) |
14 | | nnrp 11718 |
. . . . . . . . . . . 12
⊢
((#‘𝑊) ∈
ℕ → (#‘𝑊)
∈ ℝ+) |
15 | 13, 14 | sylbir 224 |
. . . . . . . . . . 11
⊢
(((#‘𝑊) ∈
ℕ0 ∧ (#‘𝑊) ≠ 0) → (#‘𝑊) ∈
ℝ+) |
16 | 15 | ex 449 |
. . . . . . . . . 10
⊢
((#‘𝑊) ∈
ℕ0 → ((#‘𝑊) ≠ 0 → (#‘𝑊) ∈
ℝ+)) |
17 | 12, 16 | syl 17 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → ((#‘𝑊) ≠ 0 → (#‘𝑊) ∈
ℝ+)) |
18 | 17 | adantr 480 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → ((#‘𝑊) ≠ 0 → (#‘𝑊) ∈
ℝ+)) |
19 | 18 | impcom 445 |
. . . . . . 7
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (#‘𝑊) ∈
ℝ+) |
20 | 11, 19 | jca 553 |
. . . . . 6
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 ∈ ℝ ∧ (#‘𝑊) ∈
ℝ+)) |
21 | | modeqmodmin 12602 |
. . . . . 6
⊢ ((𝑁 ∈ ℝ ∧
(#‘𝑊) ∈
ℝ+) → (𝑁 mod (#‘𝑊)) = ((𝑁 − (#‘𝑊)) mod (#‘𝑊))) |
22 | 20, 21 | syl 17 |
. . . . 5
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑁 mod (#‘𝑊)) = ((𝑁 − (#‘𝑊)) mod (#‘𝑊))) |
23 | 22 | oveq2d 6565 |
. . . 4
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift (𝑁 mod (#‘𝑊))) = (𝑊 cyclShift ((𝑁 − (#‘𝑊)) mod (#‘𝑊)))) |
24 | | cshwmodn 13392 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 mod (#‘𝑊)))) |
25 | 24 | adantl 481 |
. . . 4
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 mod (#‘𝑊)))) |
26 | | simpl 472 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → 𝑊 ∈ Word 𝑉) |
27 | 12 | nn0zd 11356 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → (#‘𝑊) ∈ ℤ) |
28 | | zsubcl 11296 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℤ ∧
(#‘𝑊) ∈ ℤ)
→ (𝑁 −
(#‘𝑊)) ∈
ℤ) |
29 | 27, 28 | sylan2 490 |
. . . . . . . 8
⊢ ((𝑁 ∈ ℤ ∧ 𝑊 ∈ Word 𝑉) → (𝑁 − (#‘𝑊)) ∈ ℤ) |
30 | 29 | ancoms 468 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑁 − (#‘𝑊)) ∈ ℤ) |
31 | 26, 30 | jca 553 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 ∈ Word 𝑉 ∧ (𝑁 − (#‘𝑊)) ∈ ℤ)) |
32 | 31 | adantl 481 |
. . . . 5
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 ∈ Word 𝑉 ∧ (𝑁 − (#‘𝑊)) ∈ ℤ)) |
33 | | cshwmodn 13392 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑁 − (#‘𝑊)) ∈ ℤ) → (𝑊 cyclShift (𝑁 − (#‘𝑊))) = (𝑊 cyclShift ((𝑁 − (#‘𝑊)) mod (#‘𝑊)))) |
34 | 32, 33 | syl 17 |
. . . 4
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift (𝑁 − (#‘𝑊))) = (𝑊 cyclShift ((𝑁 − (#‘𝑊)) mod (#‘𝑊)))) |
35 | 23, 25, 34 | 3eqtr4d 2654 |
. . 3
⊢
(((#‘𝑊) ≠ 0
∧ (𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ)) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (#‘𝑊)))) |
36 | 35 | ex 449 |
. 2
⊢
((#‘𝑊) ≠ 0
→ ((𝑊 ∈ Word
𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (#‘𝑊))))) |
37 | 8, 36 | pm2.61ine 2865 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ ℤ) → (𝑊 cyclShift 𝑁) = (𝑊 cyclShift (𝑁 − (#‘𝑊)))) |