Proof of Theorem scshwfzeqfzo
| Step | Hyp | Ref
 | Expression | 
| 1 |   | lencl 14552 | 
. . . . . . . . . . . 12
⊢ (𝑋 ∈ Word 𝑉 → (♯‘𝑋) ∈
ℕ0) | 
| 2 |   | elnn0uz 12904 | 
. . . . . . . . . . . 12
⊢
((♯‘𝑋)
∈ ℕ0 ↔ (♯‘𝑋) ∈
(ℤ≥‘0)) | 
| 3 | 1, 2 | sylib 218 | 
. . . . . . . . . . 11
⊢ (𝑋 ∈ Word 𝑉 → (♯‘𝑋) ∈
(ℤ≥‘0)) | 
| 4 | 3 | adantr 480 | 
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝑋)) → (♯‘𝑋) ∈
(ℤ≥‘0)) | 
| 5 |   | eleq1 2821 | 
. . . . . . . . . . 11
⊢ (𝑁 = (♯‘𝑋) → (𝑁 ∈ (ℤ≥‘0)
↔ (♯‘𝑋)
∈ (ℤ≥‘0))) | 
| 6 | 5 | adantl 481 | 
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝑋)) → (𝑁 ∈ (ℤ≥‘0)
↔ (♯‘𝑋)
∈ (ℤ≥‘0))) | 
| 7 | 4, 6 | mpbird 257 | 
. . . . . . . . 9
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝑋)) → 𝑁 ∈
(ℤ≥‘0)) | 
| 8 | 7 | 3adant2 1131 | 
. . . . . . . 8
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → 𝑁 ∈
(ℤ≥‘0)) | 
| 9 | 8 | adantr 480 | 
. . . . . . 7
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → 𝑁 ∈
(ℤ≥‘0)) | 
| 10 |   | fzisfzounsn 13799 | 
. . . . . . 7
⊢ (𝑁 ∈
(ℤ≥‘0) → (0...𝑁) = ((0..^𝑁) ∪ {𝑁})) | 
| 11 | 9, 10 | syl 17 | 
. . . . . 6
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (0...𝑁) = ((0..^𝑁) ∪ {𝑁})) | 
| 12 | 11 | rexeqdv 3310 | 
. . . . 5
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ ((0..^𝑁) ∪ {𝑁})𝑦 = (𝑋 cyclShift 𝑛))) | 
| 13 |   | rexun 4176 | 
. . . . 5
⊢
(∃𝑛 ∈
((0..^𝑁) ∪ {𝑁})𝑦 = (𝑋 cyclShift 𝑛) ↔ (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛))) | 
| 14 | 12, 13 | bitrdi 287 | 
. . . 4
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛)))) | 
| 15 |   | fvex 6898 | 
. . . . . . . . . . . 12
⊢
(♯‘𝑋)
∈ V | 
| 16 |   | eleq1 2821 | 
. . . . . . . . . . . 12
⊢ (𝑁 = (♯‘𝑋) → (𝑁 ∈ V ↔ (♯‘𝑋) ∈ V)) | 
| 17 | 15, 16 | mpbiri 258 | 
. . . . . . . . . . 11
⊢ (𝑁 = (♯‘𝑋) → 𝑁 ∈ V) | 
| 18 |   | oveq2 7420 | 
. . . . . . . . . . . . 13
⊢ (𝑛 = 𝑁 → (𝑋 cyclShift 𝑛) = (𝑋 cyclShift 𝑁)) | 
| 19 | 18 | eqeq2d 2745 | 
. . . . . . . . . . . 12
⊢ (𝑛 = 𝑁 → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) | 
| 20 | 19 | rexsng 4656 | 
. . . . . . . . . . 11
⊢ (𝑁 ∈ V → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) | 
| 21 | 17, 20 | syl 17 | 
. . . . . . . . . 10
⊢ (𝑁 = (♯‘𝑋) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) | 
| 22 | 21 | 3ad2ant3 1135 | 
. . . . . . . . 9
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) | 
| 23 | 22 | adantr 480 | 
. . . . . . . 8
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) | 
| 24 |   | oveq2 7420 | 
. . . . . . . . . . . . 13
⊢ (𝑁 = (♯‘𝑋) → (𝑋 cyclShift 𝑁) = (𝑋 cyclShift (♯‘𝑋))) | 
| 25 | 24 | 3ad2ant3 1135 | 
. . . . . . . . . . . 12
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 𝑁) = (𝑋 cyclShift (♯‘𝑋))) | 
| 26 |   | cshwn 14816 | 
. . . . . . . . . . . . 13
⊢ (𝑋 ∈ Word 𝑉 → (𝑋 cyclShift (♯‘𝑋)) = 𝑋) | 
| 27 | 26 | 3ad2ant1 1133 | 
. . . . . . . . . . . 12
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift (♯‘𝑋)) = 𝑋) | 
| 28 | 25, 27 | eqtrd 2769 | 
. . . . . . . . . . 11
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 𝑁) = 𝑋) | 
| 29 | 28 | eqeq2d 2745 | 
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑦 = (𝑋 cyclShift 𝑁) ↔ 𝑦 = 𝑋)) | 
| 30 | 29 | adantr 480 | 
. . . . . . . . 9
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = (𝑋 cyclShift 𝑁) ↔ 𝑦 = 𝑋)) | 
| 31 |   | cshw0 14813 | 
. . . . . . . . . . . . . . 15
⊢ (𝑋 ∈ Word 𝑉 → (𝑋 cyclShift 0) = 𝑋) | 
| 32 | 31 | 3ad2ant1 1133 | 
. . . . . . . . . . . . . 14
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 0) = 𝑋) | 
| 33 |   | lennncl 14553 | 
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅) → (♯‘𝑋) ∈
ℕ) | 
| 34 | 33 | 3adant3 1132 | 
. . . . . . . . . . . . . . . . 17
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (♯‘𝑋) ∈ ℕ) | 
| 35 |   | eleq1 2821 | 
. . . . . . . . . . . . . . . . . 18
⊢ (𝑁 = (♯‘𝑋) → (𝑁 ∈ ℕ ↔ (♯‘𝑋) ∈
ℕ)) | 
| 36 | 35 | 3ad2ant3 1135 | 
. . . . . . . . . . . . . . . . 17
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑁 ∈ ℕ ↔ (♯‘𝑋) ∈
ℕ)) | 
| 37 | 34, 36 | mpbird 257 | 
. . . . . . . . . . . . . . . 16
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → 𝑁 ∈ ℕ) | 
| 38 |   | lbfzo0 13720 | 
. . . . . . . . . . . . . . . 16
⊢ (0 ∈
(0..^𝑁) ↔ 𝑁 ∈
ℕ) | 
| 39 | 37, 38 | sylibr 234 | 
. . . . . . . . . . . . . . 15
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → 0 ∈ (0..^𝑁)) | 
| 40 |   | oveq2 7420 | 
. . . . . . . . . . . . . . . . . . . 20
⊢ (0 =
𝑛 → (𝑋 cyclShift 0) = (𝑋 cyclShift 𝑛)) | 
| 41 | 40 | eqeq1d 2736 | 
. . . . . . . . . . . . . . . . . . 19
⊢ (0 =
𝑛 → ((𝑋 cyclShift 0) = 𝑋 ↔ (𝑋 cyclShift 𝑛) = 𝑋)) | 
| 42 | 41 | eqcoms 2742 | 
. . . . . . . . . . . . . . . . . 18
⊢ (𝑛 = 0 → ((𝑋 cyclShift 0) = 𝑋 ↔ (𝑋 cyclShift 𝑛) = 𝑋)) | 
| 43 |   | eqcom 2741 | 
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑋 cyclShift 𝑛) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛)) | 
| 44 | 42, 43 | bitrdi 287 | 
. . . . . . . . . . . . . . . . 17
⊢ (𝑛 = 0 → ((𝑋 cyclShift 0) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛))) | 
| 45 | 44 | adantl 481 | 
. . . . . . . . . . . . . . . 16
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑛 = 0) → ((𝑋 cyclShift 0) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛))) | 
| 46 | 45 | biimpd 229 | 
. . . . . . . . . . . . . . 15
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑛 = 0) → ((𝑋 cyclShift 0) = 𝑋 → 𝑋 = (𝑋 cyclShift 𝑛))) | 
| 47 | 39, 46 | rspcimedv 3596 | 
. . . . . . . . . . . . . 14
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → ((𝑋 cyclShift 0) = 𝑋 → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛))) | 
| 48 | 32, 47 | mpd 15 | 
. . . . . . . . . . . . 13
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) | 
| 49 | 48 | adantr 480 | 
. . . . . . . . . . . 12
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) | 
| 50 | 49 | adantr 480 | 
. . . . . . . . . . 11
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) | 
| 51 |   | eqeq1 2738 | 
. . . . . . . . . . . . 13
⊢ (𝑦 = 𝑋 → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑋 = (𝑋 cyclShift 𝑛))) | 
| 52 | 51 | adantl 481 | 
. . . . . . . . . . . 12
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑋 = (𝑋 cyclShift 𝑛))) | 
| 53 | 52 | rexbidv 3166 | 
. . . . . . . . . . 11
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛))) | 
| 54 | 50, 53 | mpbird 257 | 
. . . . . . . . . 10
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛)) | 
| 55 | 54 | ex 412 | 
. . . . . . . . 9
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = 𝑋 → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 56 | 30, 55 | sylbid 240 | 
. . . . . . . 8
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = (𝑋 cyclShift 𝑁) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 57 | 23, 56 | sylbid 240 | 
. . . . . . 7
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 58 | 57 | com12 32 | 
. . . . . 6
⊢
(∃𝑛 ∈
{𝑁}𝑦 = (𝑋 cyclShift 𝑛) → (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 59 | 58 | jao1i 858 | 
. . . . 5
⊢
((∃𝑛 ∈
(0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛)) → (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 60 | 59 | com12 32 | 
. . . 4
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ((∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛)) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 61 | 14, 60 | sylbid 240 | 
. . 3
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 62 |   | fzossfz 13699 | 
. . . 4
⊢
(0..^𝑁) ⊆
(0...𝑁) | 
| 63 |   | ssrexv 4033 | 
. . . 4
⊢
((0..^𝑁) ⊆
(0...𝑁) →
(∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 64 | 62, 63 | mp1i 13 | 
. . 3
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 65 | 61, 64 | impbid 212 | 
. 2
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) | 
| 66 | 65 | rabbidva 3426 | 
1
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → {𝑦 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛)} = {𝑦 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛)}) |