Proof of Theorem scshwfzeqfzo
| Step | Hyp | Ref
| Expression |
| 1 | | lencl 13324 |
. . . . . . . . . . . 12
⊢ (𝑋 ∈ Word 𝑉 → (#‘𝑋) ∈
ℕ0) |
| 2 | | elnn0uz 11725 |
. . . . . . . . . . . 12
⊢
((#‘𝑋) ∈
ℕ0 ↔ (#‘𝑋) ∈
(ℤ≥‘0)) |
| 3 | 1, 2 | sylib 208 |
. . . . . . . . . . 11
⊢ (𝑋 ∈ Word 𝑉 → (#‘𝑋) ∈
(ℤ≥‘0)) |
| 4 | 3 | adantr 481 |
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (#‘𝑋)) → (#‘𝑋) ∈
(ℤ≥‘0)) |
| 5 | | eleq1 2689 |
. . . . . . . . . . 11
⊢ (𝑁 = (#‘𝑋) → (𝑁 ∈ (ℤ≥‘0)
↔ (#‘𝑋) ∈
(ℤ≥‘0))) |
| 6 | 5 | adantl 482 |
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (#‘𝑋)) → (𝑁 ∈ (ℤ≥‘0)
↔ (#‘𝑋) ∈
(ℤ≥‘0))) |
| 7 | 4, 6 | mpbird 247 |
. . . . . . . . 9
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (#‘𝑋)) → 𝑁 ∈
(ℤ≥‘0)) |
| 8 | 7 | 3adant2 1080 |
. . . . . . . 8
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → 𝑁 ∈
(ℤ≥‘0)) |
| 9 | 8 | adantr 481 |
. . . . . . 7
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → 𝑁 ∈
(ℤ≥‘0)) |
| 10 | | fzisfzounsn 12580 |
. . . . . . 7
⊢ (𝑁 ∈
(ℤ≥‘0) → (0...𝑁) = ((0..^𝑁) ∪ {𝑁})) |
| 11 | 9, 10 | syl 17 |
. . . . . 6
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (0...𝑁) = ((0..^𝑁) ∪ {𝑁})) |
| 12 | 11 | rexeqdv 3145 |
. . . . 5
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ ((0..^𝑁) ∪ {𝑁})𝑦 = (𝑋 cyclShift 𝑛))) |
| 13 | | rexun 3793 |
. . . . 5
⊢
(∃𝑛 ∈
((0..^𝑁) ∪ {𝑁})𝑦 = (𝑋 cyclShift 𝑛) ↔ (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛))) |
| 14 | 12, 13 | syl6bb 276 |
. . . 4
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛)))) |
| 15 | | ax-1 6 |
. . . . . 6
⊢
(∃𝑛 ∈
(0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) → (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 16 | | fvex 6201 |
. . . . . . . . . . . 12
⊢
(#‘𝑋) ∈
V |
| 17 | | eleq1 2689 |
. . . . . . . . . . . 12
⊢ (𝑁 = (#‘𝑋) → (𝑁 ∈ V ↔ (#‘𝑋) ∈ V)) |
| 18 | 16, 17 | mpbiri 248 |
. . . . . . . . . . 11
⊢ (𝑁 = (#‘𝑋) → 𝑁 ∈ V) |
| 19 | | oveq2 6658 |
. . . . . . . . . . . . 13
⊢ (𝑛 = 𝑁 → (𝑋 cyclShift 𝑛) = (𝑋 cyclShift 𝑁)) |
| 20 | 19 | eqeq2d 2632 |
. . . . . . . . . . . 12
⊢ (𝑛 = 𝑁 → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
| 21 | 20 | rexsng 4219 |
. . . . . . . . . . 11
⊢ (𝑁 ∈ V → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
| 22 | 18, 21 | syl 17 |
. . . . . . . . . 10
⊢ (𝑁 = (#‘𝑋) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
| 23 | 22 | 3ad2ant3 1084 |
. . . . . . . . 9
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
| 24 | 23 | adantr 481 |
. . . . . . . 8
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
| 25 | | oveq2 6658 |
. . . . . . . . . . . . 13
⊢ (𝑁 = (#‘𝑋) → (𝑋 cyclShift 𝑁) = (𝑋 cyclShift (#‘𝑋))) |
| 26 | 25 | 3ad2ant3 1084 |
. . . . . . . . . . . 12
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → (𝑋 cyclShift 𝑁) = (𝑋 cyclShift (#‘𝑋))) |
| 27 | | cshwn 13543 |
. . . . . . . . . . . . 13
⊢ (𝑋 ∈ Word 𝑉 → (𝑋 cyclShift (#‘𝑋)) = 𝑋) |
| 28 | 27 | 3ad2ant1 1082 |
. . . . . . . . . . . 12
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → (𝑋 cyclShift (#‘𝑋)) = 𝑋) |
| 29 | 26, 28 | eqtrd 2656 |
. . . . . . . . . . 11
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → (𝑋 cyclShift 𝑁) = 𝑋) |
| 30 | 29 | eqeq2d 2632 |
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → (𝑦 = (𝑋 cyclShift 𝑁) ↔ 𝑦 = 𝑋)) |
| 31 | 30 | adantr 481 |
. . . . . . . . 9
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = (𝑋 cyclShift 𝑁) ↔ 𝑦 = 𝑋)) |
| 32 | | cshw0 13540 |
. . . . . . . . . . . . . . 15
⊢ (𝑋 ∈ Word 𝑉 → (𝑋 cyclShift 0) = 𝑋) |
| 33 | 32 | 3ad2ant1 1082 |
. . . . . . . . . . . . . 14
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → (𝑋 cyclShift 0) = 𝑋) |
| 34 | | lennncl 13325 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅) → (#‘𝑋) ∈
ℕ) |
| 35 | 34 | 3adant3 1081 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → (#‘𝑋) ∈ ℕ) |
| 36 | | eleq1 2689 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑁 = (#‘𝑋) → (𝑁 ∈ ℕ ↔ (#‘𝑋) ∈
ℕ)) |
| 37 | 36 | 3ad2ant3 1084 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → (𝑁 ∈ ℕ ↔ (#‘𝑋) ∈
ℕ)) |
| 38 | 35, 37 | mpbird 247 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → 𝑁 ∈ ℕ) |
| 39 | | lbfzo0 12507 |
. . . . . . . . . . . . . . . 16
⊢ (0 ∈
(0..^𝑁) ↔ 𝑁 ∈
ℕ) |
| 40 | 38, 39 | sylibr 224 |
. . . . . . . . . . . . . . 15
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → 0 ∈ (0..^𝑁)) |
| 41 | | oveq2 6658 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (0 =
𝑛 → (𝑋 cyclShift 0) = (𝑋 cyclShift 𝑛)) |
| 42 | 41 | eqeq1d 2624 |
. . . . . . . . . . . . . . . . . . 19
⊢ (0 =
𝑛 → ((𝑋 cyclShift 0) = 𝑋 ↔ (𝑋 cyclShift 𝑛) = 𝑋)) |
| 43 | 42 | eqcoms 2630 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑛 = 0 → ((𝑋 cyclShift 0) = 𝑋 ↔ (𝑋 cyclShift 𝑛) = 𝑋)) |
| 44 | | eqcom 2629 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑋 cyclShift 𝑛) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛)) |
| 45 | 43, 44 | syl6bb 276 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑛 = 0 → ((𝑋 cyclShift 0) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
| 46 | 45 | adantl 482 |
. . . . . . . . . . . . . . . 16
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑛 = 0) → ((𝑋 cyclShift 0) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
| 47 | 46 | biimpd 219 |
. . . . . . . . . . . . . . 15
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑛 = 0) → ((𝑋 cyclShift 0) = 𝑋 → 𝑋 = (𝑋 cyclShift 𝑛))) |
| 48 | 40, 47 | rspcimedv 3311 |
. . . . . . . . . . . . . 14
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → ((𝑋 cyclShift 0) = 𝑋 → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛))) |
| 49 | 33, 48 | mpd 15 |
. . . . . . . . . . . . 13
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) |
| 50 | 49 | adantr 481 |
. . . . . . . . . . . 12
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) |
| 51 | 50 | adantr 481 |
. . . . . . . . . . 11
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) |
| 52 | | eqeq1 2626 |
. . . . . . . . . . . . 13
⊢ (𝑦 = 𝑋 → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
| 53 | 52 | adantl 482 |
. . . . . . . . . . . 12
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
| 54 | 53 | rexbidv 3052 |
. . . . . . . . . . 11
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛))) |
| 55 | 51, 54 | mpbird 247 |
. . . . . . . . . 10
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛)) |
| 56 | 55 | ex 450 |
. . . . . . . . 9
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = 𝑋 → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 57 | 31, 56 | sylbid 230 |
. . . . . . . 8
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = (𝑋 cyclShift 𝑁) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 58 | 24, 57 | sylbid 230 |
. . . . . . 7
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 59 | 58 | com12 32 |
. . . . . 6
⊢
(∃𝑛 ∈
{𝑁}𝑦 = (𝑋 cyclShift 𝑛) → (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 60 | 15, 59 | jaoi 394 |
. . . . 5
⊢
((∃𝑛 ∈
(0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛)) → (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 61 | 60 | com12 32 |
. . . 4
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ((∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛)) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 62 | 14, 61 | sylbid 230 |
. . 3
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 63 | | fzossfz 12488 |
. . . 4
⊢
(0..^𝑁) ⊆
(0...𝑁) |
| 64 | | ssrexv 3667 |
. . . 4
⊢
((0..^𝑁) ⊆
(0...𝑁) →
(∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 65 | 63, 64 | mp1i 13 |
. . 3
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 66 | 62, 65 | impbid 202 |
. 2
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
| 67 | 66 | rabbidva 3188 |
1
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (#‘𝑋)) → {𝑦 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛)} = {𝑦 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛)}) |