Proof of Theorem scshwfzeqfzo
| Step | Hyp | Ref
| Expression |
| 1 | | lencl 14508 |
. . . . . . . . . . . 12
⊢ (𝑋 ∈ Word 𝑉 → (♯‘𝑋) ∈
ℕ0) |
| 2 | | elnn0uz 12854 |
. . . . . . . . . . . 12
⊢
((♯‘𝑋)
∈ ℕ0 ↔ (♯‘𝑋) ∈
(ℤ≥‘0)) |
| 3 | 1, 2 | sylib 218 |
. . . . . . . . . . 11
⊢ (𝑋 ∈ Word 𝑉 → (♯‘𝑋) ∈
(ℤ≥‘0)) |
| 4 | 3 | adantr 480 |
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝑋)) → (♯‘𝑋) ∈
(ℤ≥‘0)) |
| 5 | | eleq1 2817 |
. . . . . . . . . . 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 13752 |
. . . . . . 7
⊢ (𝑁 ∈
(ℤ≥‘0) → (0...𝑁) = ((0..^𝑁) ∪ {𝑁})) |
| 11 | 9, 10 | syl 17 |
. . . . . 6
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (0...𝑁) = ((0..^𝑁) ∪ {𝑁})) |
| 12 | 11 | rexeqdv 3303 |
. . . . 5
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ ((0..^𝑁) ∪ {𝑁})𝑦 = (𝑋 cyclShift 𝑛))) |
| 13 | | rexun 4167 |
. . . . 5
⊢
(∃𝑛 ∈
((0..^𝑁) ∪ {𝑁})𝑦 = (𝑋 cyclShift 𝑛) ↔ (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛))) |
| 14 | 12, 13 | bitrdi 287 |
. . . 4
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛)))) |
| 15 | | fvex 6878 |
. . . . . . . . . . . 12
⊢
(♯‘𝑋)
∈ V |
| 16 | | eleq1 2817 |
. . . . . . . . . . . 12
⊢ (𝑁 = (♯‘𝑋) → (𝑁 ∈ V ↔ (♯‘𝑋) ∈ V)) |
| 17 | 15, 16 | mpbiri 258 |
. . . . . . . . . . 11
⊢ (𝑁 = (♯‘𝑋) → 𝑁 ∈ V) |
| 18 | | oveq2 7402 |
. . . . . . . . . . . . 13
⊢ (𝑛 = 𝑁 → (𝑋 cyclShift 𝑛) = (𝑋 cyclShift 𝑁)) |
| 19 | 18 | eqeq2d 2741 |
. . . . . . . . . . . 12
⊢ (𝑛 = 𝑁 → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
| 20 | 19 | rexsng 4648 |
. . . . . . . . . . 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 7402 |
. . . . . . . . . . . . 13
⊢ (𝑁 = (♯‘𝑋) → (𝑋 cyclShift 𝑁) = (𝑋 cyclShift (♯‘𝑋))) |
| 25 | 24 | 3ad2ant3 1135 |
. . . . . . . . . . . 12
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 𝑁) = (𝑋 cyclShift (♯‘𝑋))) |
| 26 | | cshwn 14772 |
. . . . . . . . . . . . 13
⊢ (𝑋 ∈ Word 𝑉 → (𝑋 cyclShift (♯‘𝑋)) = 𝑋) |
| 27 | 26 | 3ad2ant1 1133 |
. . . . . . . . . . . 12
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift (♯‘𝑋)) = 𝑋) |
| 28 | 25, 27 | eqtrd 2765 |
. . . . . . . . . . 11
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 𝑁) = 𝑋) |
| 29 | 28 | eqeq2d 2741 |
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑦 = (𝑋 cyclShift 𝑁) ↔ 𝑦 = 𝑋)) |
| 30 | 29 | adantr 480 |
. . . . . . . . 9
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = (𝑋 cyclShift 𝑁) ↔ 𝑦 = 𝑋)) |
| 31 | | cshw0 14769 |
. . . . . . . . . . . . . . 15
⊢ (𝑋 ∈ Word 𝑉 → (𝑋 cyclShift 0) = 𝑋) |
| 32 | 31 | 3ad2ant1 1133 |
. . . . . . . . . . . . . 14
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 0) = 𝑋) |
| 33 | | lennncl 14509 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅) → (♯‘𝑋) ∈
ℕ) |
| 34 | 33 | 3adant3 1132 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (♯‘𝑋) ∈ ℕ) |
| 35 | | eleq1 2817 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑁 = (♯‘𝑋) → (𝑁 ∈ ℕ ↔ (♯‘𝑋) ∈
ℕ)) |
| 36 | 35 | 3ad2ant3 1135 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑁 ∈ ℕ ↔ (♯‘𝑋) ∈
ℕ)) |
| 37 | 34, 36 | mpbird 257 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → 𝑁 ∈ ℕ) |
| 38 | | lbfzo0 13673 |
. . . . . . . . . . . . . . . 16
⊢ (0 ∈
(0..^𝑁) ↔ 𝑁 ∈
ℕ) |
| 39 | 37, 38 | sylibr 234 |
. . . . . . . . . . . . . . 15
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → 0 ∈ (0..^𝑁)) |
| 40 | | oveq2 7402 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (0 =
𝑛 → (𝑋 cyclShift 0) = (𝑋 cyclShift 𝑛)) |
| 41 | 40 | eqeq1d 2732 |
. . . . . . . . . . . . . . . . . . 19
⊢ (0 =
𝑛 → ((𝑋 cyclShift 0) = 𝑋 ↔ (𝑋 cyclShift 𝑛) = 𝑋)) |
| 42 | 41 | eqcoms 2738 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑛 = 0 → ((𝑋 cyclShift 0) = 𝑋 ↔ (𝑋 cyclShift 𝑛) = 𝑋)) |
| 43 | | eqcom 2737 |
. . . . . . . . . . . . . . . . . 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 3588 |
. . . . . . . . . . . . . 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 2734 |
. . . . . . . . . . . . 13
⊢ (𝑦 = 𝑋 → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
| 52 | 51 | adantl 481 |
. . . . . . . . . . . 12
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
| 53 | 52 | rexbidv 3159 |
. . . . . . . . . . 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 13652 |
. . . 4
⊢
(0..^𝑁) ⊆
(0...𝑁) |
| 63 | | ssrexv 4024 |
. . . 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 3418 |
1
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → {𝑦 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛)} = {𝑦 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛)}) |