Proof of Theorem cshw1
Step | Hyp | Ref
| Expression |
1 | | ral0 4440 |
. . . 4
⊢
∀𝑖 ∈
∅ (𝑊‘𝑖) = (𝑊‘0) |
2 | | oveq2 7263 |
. . . . . 6
⊢
((♯‘𝑊) =
0 → (0..^(♯‘𝑊)) = (0..^0)) |
3 | | fzo0 13339 |
. . . . . 6
⊢ (0..^0) =
∅ |
4 | 2, 3 | eqtrdi 2795 |
. . . . 5
⊢
((♯‘𝑊) =
0 → (0..^(♯‘𝑊)) = ∅) |
5 | 4 | raleqdv 3339 |
. . . 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 767 |
. . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → 𝑊 ∈ Word 𝑉) |
9 | | lencl 14164 |
. . . . . . . . . . 11
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) |
10 | | 1nn0 12179 |
. . . . . . . . . . . . . 14
⊢ 1 ∈
ℕ0 |
11 | 10 | a1i 11 |
. . . . . . . . . . . . 13
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → 1 ∈
ℕ0) |
12 | | df-ne 2943 |
. . . . . . . . . . . . . . . 16
⊢
((♯‘𝑊)
≠ 0 ↔ ¬ (♯‘𝑊) = 0) |
13 | | elnnne0 12177 |
. . . . . . . . . . . . . . . . 17
⊢
((♯‘𝑊)
∈ ℕ ↔ ((♯‘𝑊) ∈ ℕ0 ∧
(♯‘𝑊) ≠
0)) |
14 | 13 | simplbi2com 502 |
. . . . . . . . . . . . . . . 16
⊢
((♯‘𝑊)
≠ 0 → ((♯‘𝑊) ∈ ℕ0 →
(♯‘𝑊) ∈
ℕ)) |
15 | 12, 14 | sylbir 234 |
. . . . . . . . . . . . . . 15
⊢ (¬
(♯‘𝑊) = 0
→ ((♯‘𝑊)
∈ ℕ0 → (♯‘𝑊) ∈ ℕ)) |
16 | 15 | adantr 480 |
. . . . . . . . . . . . . 14
⊢ ((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) → ((♯‘𝑊) ∈ ℕ0 →
(♯‘𝑊) ∈
ℕ)) |
17 | 16 | impcom 407 |
. . . . . . . . . . . . 13
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) →
(♯‘𝑊) ∈
ℕ) |
18 | | neqne 2950 |
. . . . . . . . . . . . . . 15
⊢ (¬
(♯‘𝑊) = 1
→ (♯‘𝑊)
≠ 1) |
19 | 18 | ad2antll 725 |
. . . . . . . . . . . . . 14
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) →
(♯‘𝑊) ≠
1) |
20 | | nngt1ne1 11932 |
. . . . . . . . . . . . . . 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 13356 |
. . . . . . . . . . . . 13
⊢ (1 ∈
(0..^(♯‘𝑊))
↔ (1 ∈ ℕ0 ∧ (♯‘𝑊) ∈ ℕ ∧ 1 <
(♯‘𝑊))) |
24 | 11, 17, 22, 23 | syl3anbrc 1341 |
. . . . . . . . . . . 12
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → 1 ∈
(0..^(♯‘𝑊))) |
25 | 24 | ex 412 |
. . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℕ0 → ((¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1) → 1 ∈
(0..^(♯‘𝑊)))) |
26 | 9, 25 | syl 17 |
. . . . . . . . . 10
⊢ (𝑊 ∈ Word 𝑉 → ((¬ (♯‘𝑊) = 0 ∧ ¬
(♯‘𝑊) = 1)
→ 1 ∈ (0..^(♯‘𝑊)))) |
27 | 26 | adantr 480 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ((¬ (♯‘𝑊) = 0 ∧ ¬
(♯‘𝑊) = 1)
→ 1 ∈ (0..^(♯‘𝑊)))) |
28 | 27 | impcom 407 |
. . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → 1 ∈ (0..^(♯‘𝑊))) |
29 | | simprr 769 |
. . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → (𝑊 cyclShift 1) = 𝑊) |
30 | | lbfzo0 13355 |
. . . . . . . . . . . . . . . 16
⊢ (0 ∈
(0..^(♯‘𝑊))
↔ (♯‘𝑊)
∈ ℕ) |
31 | 30, 13 | sylbbr 235 |
. . . . . . . . . . . . . . 15
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (♯‘𝑊) ≠ 0) → 0 ∈
(0..^(♯‘𝑊))) |
32 | 31 | ex 412 |
. . . . . . . . . . . . . 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 480 |
. . . . . . . . . . 11
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → (¬ (♯‘𝑊) = 0 → 0 ∈
(0..^(♯‘𝑊)))) |
36 | 35 | com12 32 |
. . . . . . . . . 10
⊢ (¬
(♯‘𝑊) = 0
→ ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → 0 ∈ (0..^(♯‘𝑊)))) |
37 | 36 | adantr 480 |
. . . . . . . . 9
⊢ ((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) → ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → 0 ∈ (0..^(♯‘𝑊)))) |
38 | 37 | imp 406 |
. . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → 0 ∈ (0..^(♯‘𝑊))) |
39 | | elfzoelz 13316 |
. . . . . . . . . 10
⊢ (1 ∈
(0..^(♯‘𝑊))
→ 1 ∈ ℤ) |
40 | | cshweqrep 14462 |
. . . . . . . . . 10
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 ∈ ℤ) → (((𝑊 cyclShift 1) = 𝑊 ∧ 0 ∈
(0..^(♯‘𝑊)))
→ ∀𝑖 ∈
ℕ0 (𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))))) |
41 | 39, 40 | sylan2 592 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ 1 ∈ (0..^(♯‘𝑊))) → (((𝑊 cyclShift 1) = 𝑊 ∧ 0 ∈ (0..^(♯‘𝑊))) → ∀𝑖 ∈ ℕ0
(𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))))) |
42 | 41 | imp 406 |
. . . . . . . 8
⊢ (((𝑊 ∈ Word 𝑉 ∧ 1 ∈ (0..^(♯‘𝑊))) ∧ ((𝑊 cyclShift 1) = 𝑊 ∧ 0 ∈ (0..^(♯‘𝑊)))) → ∀𝑖 ∈ ℕ0
(𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊)))) |
43 | 8, 28, 29, 38, 42 | syl22anc 835 |
. . . . . . 7
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → ∀𝑖 ∈ ℕ0 (𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊)))) |
44 | | 0nn0 12178 |
. . . . . . . . 9
⊢ 0 ∈
ℕ0 |
45 | | fzossnn0 13346 |
. . . . . . . . 9
⊢ (0 ∈
ℕ0 → (0..^(♯‘𝑊)) ⊆
ℕ0) |
46 | | ssralv 3983 |
. . . . . . . . 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 13316 |
. . . . . . . . . . . . . . 15
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ 𝑖 ∈
ℤ) |
50 | | zre 12253 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑖 ∈ ℤ → 𝑖 ∈
ℝ) |
51 | | ax-1rid 10872 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑖 ∈ ℝ → (𝑖 · 1) = 𝑖) |
52 | 50, 51 | syl 17 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑖 ∈ ℤ → (𝑖 · 1) = 𝑖) |
53 | 52 | oveq2d 7271 |
. . . . . . . . . . . . . . . 16
⊢ (𝑖 ∈ ℤ → (0 +
(𝑖 · 1)) = (0 +
𝑖)) |
54 | | zcn 12254 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑖 ∈ ℤ → 𝑖 ∈
ℂ) |
55 | 54 | addid2d 11106 |
. . . . . . . . . . . . . . . 16
⊢ (𝑖 ∈ ℤ → (0 +
𝑖) = 𝑖) |
56 | 53, 55 | eqtrd 2778 |
. . . . . . . . . . . . . . 15
⊢ (𝑖 ∈ ℤ → (0 +
(𝑖 · 1)) = 𝑖) |
57 | 49, 56 | syl 17 |
. . . . . . . . . . . . . 14
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ (0 + (𝑖 · 1))
= 𝑖) |
58 | 57 | oveq1d 7270 |
. . . . . . . . . . . . 13
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((0 + (𝑖 ·
1)) mod (♯‘𝑊))
= (𝑖 mod
(♯‘𝑊))) |
59 | | zmodidfzoimp 13549 |
. . . . . . . . . . . . 13
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ (𝑖 mod
(♯‘𝑊)) = 𝑖) |
60 | 58, 59 | eqtrd 2778 |
. . . . . . . . . . . 12
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((0 + (𝑖 ·
1)) mod (♯‘𝑊))
= 𝑖) |
61 | 60 | fveqeq2d 6764 |
. . . . . . . . . . 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 3084 |
. . . . . . . 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 412 |
. . . . 5
⊢ ((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) → ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0))) |
68 | 67 | impancom 451 |
. . . 4
⊢ ((¬
(♯‘𝑊) = 0 ∧
(𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → (¬ (♯‘𝑊) = 1 → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0))) |
69 | | eqid 2738 |
. . . . . 6
⊢ (𝑊‘0) = (𝑊‘0) |
70 | | c0ex 10900 |
. . . . . . 7
⊢ 0 ∈
V |
71 | | fveqeq2 6765 |
. . . . . . 7
⊢ (𝑖 = 0 → ((𝑊‘𝑖) = (𝑊‘0) ↔ (𝑊‘0) = (𝑊‘0))) |
72 | 70, 71 | ralsn 4614 |
. . . . . 6
⊢
(∀𝑖 ∈
{0} (𝑊‘𝑖) = (𝑊‘0) ↔ (𝑊‘0) = (𝑊‘0)) |
73 | 69, 72 | mpbir 230 |
. . . . 5
⊢
∀𝑖 ∈ {0}
(𝑊‘𝑖) = (𝑊‘0) |
74 | | oveq2 7263 |
. . . . . . 7
⊢
((♯‘𝑊) =
1 → (0..^(♯‘𝑊)) = (0..^1)) |
75 | | fzo01 13397 |
. . . . . . 7
⊢ (0..^1) =
{0} |
76 | 74, 75 | eqtrdi 2795 |
. . . . . 6
⊢
((♯‘𝑊) =
1 → (0..^(♯‘𝑊)) = {0}) |
77 | 76 | raleqdv 3339 |
. . . . 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 412 |
. 2
⊢ (¬
(♯‘𝑊) = 0
→ ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0))) |
81 | 7, 80 | pm2.61i 182 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) |