Proof of Theorem cshwsiun
| Step | Hyp | Ref
| Expression |
| 1 | | df-rab 2921 |
. . 3
⊢ {𝑤 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤} = {𝑤 ∣ (𝑤 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤)} |
| 2 | | eqcom 2629 |
. . . . . . . . 9
⊢ ((𝑊 cyclShift 𝑛) = 𝑤 ↔ 𝑤 = (𝑊 cyclShift 𝑛)) |
| 3 | 2 | biimpi 206 |
. . . . . . . 8
⊢ ((𝑊 cyclShift 𝑛) = 𝑤 → 𝑤 = (𝑊 cyclShift 𝑛)) |
| 4 | 3 | reximi 3011 |
. . . . . . 7
⊢
(∃𝑛 ∈
(0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤 → ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛)) |
| 5 | 4 | adantl 482 |
. . . . . 6
⊢ ((𝑤 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤) → ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛)) |
| 6 | | cshwcl 13544 |
. . . . . . . . . . . 12
⊢ (𝑊 ∈ Word 𝑉 → (𝑊 cyclShift 𝑛) ∈ Word 𝑉) |
| 7 | 6 | adantr 481 |
. . . . . . . . . . 11
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑛 ∈ (0..^(#‘𝑊))) → (𝑊 cyclShift 𝑛) ∈ Word 𝑉) |
| 8 | | eleq1 2689 |
. . . . . . . . . . 11
⊢ (𝑤 = (𝑊 cyclShift 𝑛) → (𝑤 ∈ Word 𝑉 ↔ (𝑊 cyclShift 𝑛) ∈ Word 𝑉)) |
| 9 | 7, 8 | syl5ibrcom 237 |
. . . . . . . . . 10
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑛 ∈ (0..^(#‘𝑊))) → (𝑤 = (𝑊 cyclShift 𝑛) → 𝑤 ∈ Word 𝑉)) |
| 10 | 9 | rexlimdva 3031 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → (∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛) → 𝑤 ∈ Word 𝑉)) |
| 11 | 10 | imp 445 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛)) → 𝑤 ∈ Word 𝑉) |
| 12 | | eqcom 2629 |
. . . . . . . . . . 11
⊢ (𝑤 = (𝑊 cyclShift 𝑛) ↔ (𝑊 cyclShift 𝑛) = 𝑤) |
| 13 | 12 | biimpi 206 |
. . . . . . . . . 10
⊢ (𝑤 = (𝑊 cyclShift 𝑛) → (𝑊 cyclShift 𝑛) = 𝑤) |
| 14 | 13 | reximi 3011 |
. . . . . . . . 9
⊢
(∃𝑛 ∈
(0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛) → ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤) |
| 15 | 14 | adantl 482 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛)) → ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤) |
| 16 | 11, 15 | jca 554 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛)) → (𝑤 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤)) |
| 17 | 16 | ex 450 |
. . . . . 6
⊢ (𝑊 ∈ Word 𝑉 → (∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛) → (𝑤 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤))) |
| 18 | 5, 17 | impbid2 216 |
. . . . 5
⊢ (𝑊 ∈ Word 𝑉 → ((𝑤 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤) ↔ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛))) |
| 19 | | velsn 4193 |
. . . . . . . 8
⊢ (𝑤 ∈ {(𝑊 cyclShift 𝑛)} ↔ 𝑤 = (𝑊 cyclShift 𝑛)) |
| 20 | 19 | bicomi 214 |
. . . . . . 7
⊢ (𝑤 = (𝑊 cyclShift 𝑛) ↔ 𝑤 ∈ {(𝑊 cyclShift 𝑛)}) |
| 21 | 20 | a1i 11 |
. . . . . 6
⊢ (𝑊 ∈ Word 𝑉 → (𝑤 = (𝑊 cyclShift 𝑛) ↔ 𝑤 ∈ {(𝑊 cyclShift 𝑛)})) |
| 22 | 21 | rexbidv 3052 |
. . . . 5
⊢ (𝑊 ∈ Word 𝑉 → (∃𝑛 ∈ (0..^(#‘𝑊))𝑤 = (𝑊 cyclShift 𝑛) ↔ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 ∈ {(𝑊 cyclShift 𝑛)})) |
| 23 | 18, 22 | bitrd 268 |
. . . 4
⊢ (𝑊 ∈ Word 𝑉 → ((𝑤 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤) ↔ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 ∈ {(𝑊 cyclShift 𝑛)})) |
| 24 | 23 | abbidv 2741 |
. . 3
⊢ (𝑊 ∈ Word 𝑉 → {𝑤 ∣ (𝑤 ∈ Word 𝑉 ∧ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤)} = {𝑤 ∣ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 ∈ {(𝑊 cyclShift 𝑛)}}) |
| 25 | 1, 24 | syl5eq 2668 |
. 2
⊢ (𝑊 ∈ Word 𝑉 → {𝑤 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤} = {𝑤 ∣ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 ∈ {(𝑊 cyclShift 𝑛)}}) |
| 26 | | cshwrepswhash1.m |
. 2
⊢ 𝑀 = {𝑤 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0..^(#‘𝑊))(𝑊 cyclShift 𝑛) = 𝑤} |
| 27 | | df-iun 4522 |
. 2
⊢ ∪ 𝑛 ∈ (0..^(#‘𝑊)){(𝑊 cyclShift 𝑛)} = {𝑤 ∣ ∃𝑛 ∈ (0..^(#‘𝑊))𝑤 ∈ {(𝑊 cyclShift 𝑛)}} |
| 28 | 25, 26, 27 | 3eqtr4g 2681 |
1
⊢ (𝑊 ∈ Word 𝑉 → 𝑀 = ∪ 𝑛 ∈ (0..^(#‘𝑊)){(𝑊 cyclShift 𝑛)}) |