Proof of Theorem cshw1
Step | Hyp | Ref
| Expression |
1 | | ral0 4443 |
. . . 4
⊢
∀𝑖 ∈
∅ (𝑊‘𝑖) = (𝑊‘0) |
2 | | oveq2 7283 |
. . . . . 6
⊢
((♯‘𝑊) =
0 → (0..^(♯‘𝑊)) = (0..^0)) |
3 | | fzo0 13411 |
. . . . . 6
⊢ (0..^0) =
∅ |
4 | 2, 3 | eqtrdi 2794 |
. . . . 5
⊢
((♯‘𝑊) =
0 → (0..^(♯‘𝑊)) = ∅) |
5 | 4 | raleqdv 3348 |
. . . 4
⊢
((♯‘𝑊) =
0 → (∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0) ↔ ∀𝑖 ∈ ∅ (𝑊‘𝑖) = (𝑊‘0))) |
6 | 1, 5 | mpbiri 257 |
. . 3
⊢
((♯‘𝑊) =
0 → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) |
7 | 6 | a1d 25 |
. 2
⊢
((♯‘𝑊) =
0 → ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0))) |
8 | | simprl 768 |
. . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → 𝑊 ∈ Word 𝑉) |
9 | | lencl 14236 |
. . . . . . . . . . 11
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) |
10 | | 1nn0 12249 |
. . . . . . . . . . . . . 14
⊢ 1 ∈
ℕ0 |
11 | 10 | a1i 11 |
. . . . . . . . . . . . 13
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → 1 ∈
ℕ0) |
12 | | df-ne 2944 |
. . . . . . . . . . . . . . . 16
⊢
((♯‘𝑊)
≠ 0 ↔ ¬ (♯‘𝑊) = 0) |
13 | | elnnne0 12247 |
. . . . . . . . . . . . . . . . 17
⊢
((♯‘𝑊)
∈ ℕ ↔ ((♯‘𝑊) ∈ ℕ0 ∧
(♯‘𝑊) ≠
0)) |
14 | 13 | simplbi2com 503 |
. . . . . . . . . . . . . . . 16
⊢
((♯‘𝑊)
≠ 0 → ((♯‘𝑊) ∈ ℕ0 →
(♯‘𝑊) ∈
ℕ)) |
15 | 12, 14 | sylbir 234 |
. . . . . . . . . . . . . . 15
⊢ (¬
(♯‘𝑊) = 0
→ ((♯‘𝑊)
∈ ℕ0 → (♯‘𝑊) ∈ ℕ)) |
16 | 15 | adantr 481 |
. . . . . . . . . . . . . 14
⊢ ((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) → ((♯‘𝑊) ∈ ℕ0 →
(♯‘𝑊) ∈
ℕ)) |
17 | 16 | impcom 408 |
. . . . . . . . . . . . 13
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) →
(♯‘𝑊) ∈
ℕ) |
18 | | neqne 2951 |
. . . . . . . . . . . . . . 15
⊢ (¬
(♯‘𝑊) = 1
→ (♯‘𝑊)
≠ 1) |
19 | 18 | ad2antll 726 |
. . . . . . . . . . . . . 14
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) →
(♯‘𝑊) ≠
1) |
20 | | nngt1ne1 12002 |
. . . . . . . . . . . . . . 15
⊢
((♯‘𝑊)
∈ ℕ → (1 < (♯‘𝑊) ↔ (♯‘𝑊) ≠ 1)) |
21 | 17, 20 | syl 17 |
. . . . . . . . . . . . . 14
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → (1 <
(♯‘𝑊) ↔
(♯‘𝑊) ≠
1)) |
22 | 19, 21 | mpbird 256 |
. . . . . . . . . . . . 13
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → 1 <
(♯‘𝑊)) |
23 | | elfzo0 13428 |
. . . . . . . . . . . . 13
⊢ (1 ∈
(0..^(♯‘𝑊))
↔ (1 ∈ ℕ0 ∧ (♯‘𝑊) ∈ ℕ ∧ 1 <
(♯‘𝑊))) |
24 | 11, 17, 22, 23 | syl3anbrc 1342 |
. . . . . . . . . . . 12
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → 1 ∈
(0..^(♯‘𝑊))) |
25 | 24 | ex 413 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ0 → ((¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1) → 1 ∈
(0..^(♯‘𝑊)))) |
26 | 9, 25 | syl 17 |
. . . . . . . . . 10
⊢ (𝑊 ∈ Word 𝑉 → ((¬ (♯‘𝑊) = 0 ∧ ¬
(♯‘𝑊) = 1)
→ 1 ∈ (0..^(♯‘𝑊)))) |
27 | 26 | adantr 481 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ((¬ (♯‘𝑊) = 0 ∧ ¬
(♯‘𝑊) = 1)
→ 1 ∈ (0..^(♯‘𝑊)))) |
28 | 27 | impcom 408 |
. . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → 1 ∈ (0..^(♯‘𝑊))) |
29 | | simprr 770 |
. . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → (𝑊 cyclShift 1) = 𝑊) |
30 | | lbfzo0 13427 |
. . . . . . . . . . . . . . . 16
⊢ (0 ∈
(0..^(♯‘𝑊))
↔ (♯‘𝑊)
∈ ℕ) |
31 | 30, 13 | sylbbr 235 |
. . . . . . . . . . . . . . 15
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (♯‘𝑊) ≠ 0) → 0 ∈
(0..^(♯‘𝑊))) |
32 | 31 | ex 413 |
. . . . . . . . . . . . . 14
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) ≠ 0 → 0 ∈
(0..^(♯‘𝑊)))) |
33 | 12, 32 | syl5bir 242 |
. . . . . . . . . . . . 13
⊢
((♯‘𝑊)
∈ ℕ0 → (¬ (♯‘𝑊) = 0 → 0 ∈
(0..^(♯‘𝑊)))) |
34 | 9, 33 | syl 17 |
. . . . . . . . . . . 12
⊢ (𝑊 ∈ Word 𝑉 → (¬ (♯‘𝑊) = 0 → 0 ∈
(0..^(♯‘𝑊)))) |
35 | 34 | adantr 481 |
. . . . . . . . . . 11
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → (¬ (♯‘𝑊) = 0 → 0 ∈
(0..^(♯‘𝑊)))) |
36 | 35 | com12 32 |
. . . . . . . . . 10
⊢ (¬
(♯‘𝑊) = 0
→ ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → 0 ∈ (0..^(♯‘𝑊)))) |
37 | 36 | adantr 481 |
. . . . . . . . 9
⊢ ((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) → ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → 0 ∈ (0..^(♯‘𝑊)))) |
38 | 37 | imp 407 |
. . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → 0 ∈ (0..^(♯‘𝑊))) |
39 | | elfzoelz 13387 |
. . . . . . . . . 10
⊢ (1 ∈
(0..^(♯‘𝑊))
→ 1 ∈ ℤ) |
40 | | cshweqrep 14534 |
. . . . . . . . . 10
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 ∈ ℤ) → (((𝑊 cyclShift 1) = 𝑊 ∧ 0 ∈
(0..^(♯‘𝑊)))
→ ∀𝑖 ∈
ℕ0 (𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))))) |
41 | 39, 40 | sylan2 593 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 ∈ (0..^(♯‘𝑊))) → (((𝑊 cyclShift 1) = 𝑊 ∧ 0 ∈ (0..^(♯‘𝑊))) → ∀𝑖 ∈ ℕ0
(𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))))) |
42 | 41 | imp 407 |
. . . . . . . 8
⊢ (((𝑊 ∈ Word 𝑉 ∧ 1 ∈ (0..^(♯‘𝑊))) ∧ ((𝑊 cyclShift 1) = 𝑊 ∧ 0 ∈ (0..^(♯‘𝑊)))) → ∀𝑖 ∈ ℕ0
(𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊)))) |
43 | 8, 28, 29, 38, 42 | syl22anc 836 |
. . . . . . 7
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → ∀𝑖 ∈ ℕ0 (𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊)))) |
44 | | 0nn0 12248 |
. . . . . . . . 9
⊢ 0 ∈
ℕ0 |
45 | | fzossnn0 13418 |
. . . . . . . . 9
⊢ (0 ∈
ℕ0 → (0..^(♯‘𝑊)) ⊆
ℕ0) |
46 | | ssralv 3987 |
. . . . . . . . 9
⊢
((0..^(♯‘𝑊)) ⊆ ℕ0 →
(∀𝑖 ∈
ℕ0 (𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))) → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))))) |
47 | 44, 45, 46 | mp2b 10 |
. . . . . . . 8
⊢
(∀𝑖 ∈
ℕ0 (𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))) → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊)))) |
48 | | eqcom 2745 |
. . . . . . . . . 10
⊢ ((𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))) ↔ (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))) = (𝑊‘0)) |
49 | | elfzoelz 13387 |
. . . . . . . . . . . . . . 15
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ 𝑖 ∈
ℤ) |
50 | | zre 12323 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑖 ∈ ℤ → 𝑖 ∈
ℝ) |
51 | | ax-1rid 10941 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑖 ∈ ℝ → (𝑖 · 1) = 𝑖) |
52 | 50, 51 | syl 17 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑖 ∈ ℤ → (𝑖 · 1) = 𝑖) |
53 | 52 | oveq2d 7291 |
. . . . . . . . . . . . . . . 16
⊢ (𝑖 ∈ ℤ → (0 +
(𝑖 · 1)) = (0 +
𝑖)) |
54 | | zcn 12324 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑖 ∈ ℤ → 𝑖 ∈
ℂ) |
55 | 54 | addid2d 11176 |
. . . . . . . . . . . . . . . 16
⊢ (𝑖 ∈ ℤ → (0 +
𝑖) = 𝑖) |
56 | 53, 55 | eqtrd 2778 |
. . . . . . . . . . . . . . 15
⊢ (𝑖 ∈ ℤ → (0 +
(𝑖 · 1)) = 𝑖) |
57 | 49, 56 | syl 17 |
. . . . . . . . . . . . . 14
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ (0 + (𝑖 · 1))
= 𝑖) |
58 | 57 | oveq1d 7290 |
. . . . . . . . . . . . 13
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((0 + (𝑖 ·
1)) mod (♯‘𝑊))
= (𝑖 mod
(♯‘𝑊))) |
59 | | zmodidfzoimp 13621 |
. . . . . . . . . . . . 13
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ (𝑖 mod
(♯‘𝑊)) = 𝑖) |
60 | 58, 59 | eqtrd 2778 |
. . . . . . . . . . . 12
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((0 + (𝑖 ·
1)) mod (♯‘𝑊))
= 𝑖) |
61 | 60 | fveqeq2d 6782 |
. . . . . . . . . . 11
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((𝑊‘((0 +
(𝑖 · 1)) mod
(♯‘𝑊))) =
(𝑊‘0) ↔ (𝑊‘𝑖) = (𝑊‘0))) |
62 | 61 | biimpd 228 |
. . . . . . . . . 10
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((𝑊‘((0 +
(𝑖 · 1)) mod
(♯‘𝑊))) =
(𝑊‘0) → (𝑊‘𝑖) = (𝑊‘0))) |
63 | 48, 62 | syl5bi 241 |
. . . . . . . . 9
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((𝑊‘0) =
(𝑊‘((0 + (𝑖 · 1)) mod
(♯‘𝑊))) →
(𝑊‘𝑖) = (𝑊‘0))) |
64 | 63 | ralimia 3085 |
. . . . . . . 8
⊢
(∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))) → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) |
65 | 47, 64 | syl 17 |
. . . . . . 7
⊢
(∀𝑖 ∈
ℕ0 (𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))) → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) |
66 | 43, 65 | syl 17 |
. . . . . 6
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) |
67 | 66 | ex 413 |
. . . . 5
⊢ ((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) → ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0))) |
68 | 67 | impancom 452 |
. . . 4
⊢ ((¬
(♯‘𝑊) = 0 ∧
(𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → (¬ (♯‘𝑊) = 1 → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0))) |
69 | | eqid 2738 |
. . . . . 6
⊢ (𝑊‘0) = (𝑊‘0) |
70 | | c0ex 10969 |
. . . . . . 7
⊢ 0 ∈
V |
71 | | fveqeq2 6783 |
. . . . . . 7
⊢ (𝑖 = 0 → ((𝑊‘𝑖) = (𝑊‘0) ↔ (𝑊‘0) = (𝑊‘0))) |
72 | 70, 71 | ralsn 4617 |
. . . . . 6
⊢
(∀𝑖 ∈
{0} (𝑊‘𝑖) = (𝑊‘0) ↔ (𝑊‘0) = (𝑊‘0)) |
73 | 69, 72 | mpbir 230 |
. . . . 5
⊢
∀𝑖 ∈ {0}
(𝑊‘𝑖) = (𝑊‘0) |
74 | | oveq2 7283 |
. . . . . . 7
⊢
((♯‘𝑊) =
1 → (0..^(♯‘𝑊)) = (0..^1)) |
75 | | fzo01 13469 |
. . . . . . 7
⊢ (0..^1) =
{0} |
76 | 74, 75 | eqtrdi 2794 |
. . . . . 6
⊢
((♯‘𝑊) =
1 → (0..^(♯‘𝑊)) = {0}) |
77 | 76 | raleqdv 3348 |
. . . . 5
⊢
((♯‘𝑊) =
1 → (∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0) ↔ ∀𝑖 ∈ {0} (𝑊‘𝑖) = (𝑊‘0))) |
78 | 73, 77 | mpbiri 257 |
. . . 4
⊢
((♯‘𝑊) =
1 → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) |
79 | 68, 78 | pm2.61d2 181 |
. . 3
⊢ ((¬
(♯‘𝑊) = 0 ∧
(𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) |
80 | 79 | ex 413 |
. 2
⊢ (¬
(♯‘𝑊) = 0
→ ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0))) |
81 | 7, 80 | pm2.61i 182 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) |