Proof of Theorem cshw1
| Step | Hyp | Ref | Expression | 
|---|
| 1 |  | ral0 4512 | . . . 4
⊢
∀𝑖 ∈
∅ (𝑊‘𝑖) = (𝑊‘0) | 
| 2 |  | oveq2 7440 | . . . . . 6
⊢
((♯‘𝑊) =
0 → (0..^(♯‘𝑊)) = (0..^0)) | 
| 3 |  | fzo0 13724 | . . . . . 6
⊢ (0..^0) =
∅ | 
| 4 | 2, 3 | eqtrdi 2792 | . . . . 5
⊢
((♯‘𝑊) =
0 → (0..^(♯‘𝑊)) = ∅) | 
| 5 | 4 | raleqdv 3325 | . . . 4
⊢
((♯‘𝑊) =
0 → (∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0) ↔ ∀𝑖 ∈ ∅ (𝑊‘𝑖) = (𝑊‘0))) | 
| 6 | 1, 5 | mpbiri 258 | . . 3
⊢
((♯‘𝑊) =
0 → ∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0)) | 
| 7 | 6 | a1d 25 | . 2
⊢
((♯‘𝑊) =
0 → ((𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊) → ∀𝑖 ∈ (0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0))) | 
| 8 |  | simprl 770 | . . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → 𝑊 ∈ Word 𝑉) | 
| 9 |  | lencl 14572 | . . . . . . . . . . 11
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) | 
| 10 |  | 1nn0 12544 | . . . . . . . . . . . . . 14
⊢ 1 ∈
ℕ0 | 
| 11 | 10 | a1i 11 | . . . . . . . . . . . . 13
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → 1 ∈
ℕ0) | 
| 12 |  | df-ne 2940 | . . . . . . . . . . . . . . . 16
⊢
((♯‘𝑊)
≠ 0 ↔ ¬ (♯‘𝑊) = 0) | 
| 13 |  | elnnne0 12542 | . . . . . . . . . . . . . . . . 17
⊢
((♯‘𝑊)
∈ ℕ ↔ ((♯‘𝑊) ∈ ℕ0 ∧
(♯‘𝑊) ≠
0)) | 
| 14 | 13 | simplbi2com 502 | . . . . . . . . . . . . . . . 16
⊢
((♯‘𝑊)
≠ 0 → ((♯‘𝑊) ∈ ℕ0 →
(♯‘𝑊) ∈
ℕ)) | 
| 15 | 12, 14 | sylbir 235 | . . . . . . . . . . . . . . 15
⊢ (¬
(♯‘𝑊) = 0
→ ((♯‘𝑊)
∈ ℕ0 → (♯‘𝑊) ∈ ℕ)) | 
| 16 | 15 | adantr 480 | . . . . . . . . . . . . . 14
⊢ ((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) → ((♯‘𝑊) ∈ ℕ0 →
(♯‘𝑊) ∈
ℕ)) | 
| 17 | 16 | impcom 407 | . . . . . . . . . . . . 13
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) →
(♯‘𝑊) ∈
ℕ) | 
| 18 |  | neqne 2947 | . . . . . . . . . . . . . . 15
⊢ (¬
(♯‘𝑊) = 1
→ (♯‘𝑊)
≠ 1) | 
| 19 | 18 | ad2antll 729 | . . . . . . . . . . . . . 14
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) →
(♯‘𝑊) ≠
1) | 
| 20 |  | nngt1ne1 12296 | . . . . . . . . . . . . . . 15
⊢
((♯‘𝑊)
∈ ℕ → (1 < (♯‘𝑊) ↔ (♯‘𝑊) ≠ 1)) | 
| 21 | 17, 20 | syl 17 | . . . . . . . . . . . . . 14
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → (1 <
(♯‘𝑊) ↔
(♯‘𝑊) ≠
1)) | 
| 22 | 19, 21 | mpbird 257 | . . . . . . . . . . . . 13
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (¬ (♯‘𝑊) = 0 ∧ ¬ (♯‘𝑊) = 1)) → 1 <
(♯‘𝑊)) | 
| 23 |  | elfzo0 13741 | . . . . . . . . . . . . 13
⊢ (1 ∈
(0..^(♯‘𝑊))
↔ (1 ∈ ℕ0 ∧ (♯‘𝑊) ∈ ℕ ∧ 1 <
(♯‘𝑊))) | 
| 24 | 11, 17, 22, 23 | syl3anbrc 1343 | . . . . . . . . . . . 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 772 | . . . . . . . 8
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → (𝑊 cyclShift 1) = 𝑊) | 
| 30 |  | lbfzo0 13740 | . . . . . . . . . . . . . . . 16
⊢ (0 ∈
(0..^(♯‘𝑊))
↔ (♯‘𝑊)
∈ ℕ) | 
| 31 | 30, 13 | sylbbr 236 | . . . . . . . . . . . . . . 15
⊢
(((♯‘𝑊)
∈ ℕ0 ∧ (♯‘𝑊) ≠ 0) → 0 ∈
(0..^(♯‘𝑊))) | 
| 32 | 31 | ex 412 | . . . . . . . . . . . . . 14
⊢
((♯‘𝑊)
∈ ℕ0 → ((♯‘𝑊) ≠ 0 → 0 ∈
(0..^(♯‘𝑊)))) | 
| 33 | 12, 32 | biimtrrid 243 | . . . . . . . . . . . . 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 13700 | . . . . . . . . . 10
⊢ (1 ∈
(0..^(♯‘𝑊))
→ 1 ∈ ℤ) | 
| 40 |  | cshweqrep 14860 | . . . . . . . . . 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 406 | . . . . . . . 8
⊢ (((𝑊 ∈ Word 𝑉 ∧ 1 ∈ (0..^(♯‘𝑊))) ∧ ((𝑊 cyclShift 1) = 𝑊 ∧ 0 ∈ (0..^(♯‘𝑊)))) → ∀𝑖 ∈ ℕ0
(𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊)))) | 
| 43 | 8, 28, 29, 38, 42 | syl22anc 838 | . . . . . . 7
⊢ (((¬
(♯‘𝑊) = 0 ∧
¬ (♯‘𝑊) =
1) ∧ (𝑊 ∈ Word
𝑉 ∧ (𝑊 cyclShift 1) = 𝑊)) → ∀𝑖 ∈ ℕ0 (𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊)))) | 
| 44 |  | 0nn0 12543 | . . . . . . . . 9
⊢ 0 ∈
ℕ0 | 
| 45 |  | fzossnn0 13731 | . . . . . . . . 9
⊢ (0 ∈
ℕ0 → (0..^(♯‘𝑊)) ⊆
ℕ0) | 
| 46 |  | ssralv 4051 | . . . . . . . . 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 2743 | . . . . . . . . . 10
⊢ ((𝑊‘0) = (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))) ↔ (𝑊‘((0 + (𝑖 · 1)) mod (♯‘𝑊))) = (𝑊‘0)) | 
| 49 |  | elfzoelz 13700 | . . . . . . . . . . . . . . 15
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ 𝑖 ∈
ℤ) | 
| 50 |  | zre 12619 | . . . . . . . . . . . . . . . . . 18
⊢ (𝑖 ∈ ℤ → 𝑖 ∈
ℝ) | 
| 51 |  | ax-1rid 11226 | . . . . . . . . . . . . . . . . . 18
⊢ (𝑖 ∈ ℝ → (𝑖 · 1) = 𝑖) | 
| 52 | 50, 51 | syl 17 | . . . . . . . . . . . . . . . . 17
⊢ (𝑖 ∈ ℤ → (𝑖 · 1) = 𝑖) | 
| 53 | 52 | oveq2d 7448 | . . . . . . . . . . . . . . . 16
⊢ (𝑖 ∈ ℤ → (0 +
(𝑖 · 1)) = (0 +
𝑖)) | 
| 54 |  | zcn 12620 | . . . . . . . . . . . . . . . . 17
⊢ (𝑖 ∈ ℤ → 𝑖 ∈
ℂ) | 
| 55 | 54 | addlidd 11463 | . . . . . . . . . . . . . . . 16
⊢ (𝑖 ∈ ℤ → (0 +
𝑖) = 𝑖) | 
| 56 | 53, 55 | eqtrd 2776 | . . . . . . . . . . . . . . 15
⊢ (𝑖 ∈ ℤ → (0 +
(𝑖 · 1)) = 𝑖) | 
| 57 | 49, 56 | syl 17 | . . . . . . . . . . . . . 14
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ (0 + (𝑖 · 1))
= 𝑖) | 
| 58 | 57 | oveq1d 7447 | . . . . . . . . . . . . 13
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((0 + (𝑖 ·
1)) mod (♯‘𝑊))
= (𝑖 mod
(♯‘𝑊))) | 
| 59 |  | zmodidfzoimp 13942 | . . . . . . . . . . . . 13
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ (𝑖 mod
(♯‘𝑊)) = 𝑖) | 
| 60 | 58, 59 | eqtrd 2776 | . . . . . . . . . . . 12
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((0 + (𝑖 ·
1)) mod (♯‘𝑊))
= 𝑖) | 
| 61 | 60 | fveqeq2d 6913 | . . . . . . . . . . 11
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((𝑊‘((0 +
(𝑖 · 1)) mod
(♯‘𝑊))) =
(𝑊‘0) ↔ (𝑊‘𝑖) = (𝑊‘0))) | 
| 62 | 61 | biimpd 229 | . . . . . . . . . 10
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((𝑊‘((0 +
(𝑖 · 1)) mod
(♯‘𝑊))) =
(𝑊‘0) → (𝑊‘𝑖) = (𝑊‘0))) | 
| 63 | 48, 62 | biimtrid 242 | . . . . . . . . 9
⊢ (𝑖 ∈
(0..^(♯‘𝑊))
→ ((𝑊‘0) =
(𝑊‘((0 + (𝑖 · 1)) mod
(♯‘𝑊))) →
(𝑊‘𝑖) = (𝑊‘0))) | 
| 64 | 63 | ralimia 3079 | . . . . . . . 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 2736 | . . . . . 6
⊢ (𝑊‘0) = (𝑊‘0) | 
| 70 |  | c0ex 11256 | . . . . . . 7
⊢ 0 ∈
V | 
| 71 |  | fveqeq2 6914 | . . . . . . 7
⊢ (𝑖 = 0 → ((𝑊‘𝑖) = (𝑊‘0) ↔ (𝑊‘0) = (𝑊‘0))) | 
| 72 | 70, 71 | ralsn 4680 | . . . . . 6
⊢
(∀𝑖 ∈
{0} (𝑊‘𝑖) = (𝑊‘0) ↔ (𝑊‘0) = (𝑊‘0)) | 
| 73 | 69, 72 | mpbir 231 | . . . . 5
⊢
∀𝑖 ∈ {0}
(𝑊‘𝑖) = (𝑊‘0) | 
| 74 |  | oveq2 7440 | . . . . . . 7
⊢
((♯‘𝑊) =
1 → (0..^(♯‘𝑊)) = (0..^1)) | 
| 75 |  | fzo01 13787 | . . . . . . 7
⊢ (0..^1) =
{0} | 
| 76 | 74, 75 | eqtrdi 2792 | . . . . . 6
⊢
((♯‘𝑊) =
1 → (0..^(♯‘𝑊)) = {0}) | 
| 77 | 76 | raleqdv 3325 | . . . . 5
⊢
((♯‘𝑊) =
1 → (∀𝑖 ∈
(0..^(♯‘𝑊))(𝑊‘𝑖) = (𝑊‘0) ↔ ∀𝑖 ∈ {0} (𝑊‘𝑖) = (𝑊‘0))) | 
| 78 | 73, 77 | mpbiri 258 | . . . 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)) |