Proof of Theorem scshwfzeqfzo
Step | Hyp | Ref
| Expression |
1 | | lencl 14088 |
. . . . . . . . . . . 12
⊢ (𝑋 ∈ Word 𝑉 → (♯‘𝑋) ∈
ℕ0) |
2 | | elnn0uz 12479 |
. . . . . . . . . . . 12
⊢
((♯‘𝑋)
∈ ℕ0 ↔ (♯‘𝑋) ∈
(ℤ≥‘0)) |
3 | 1, 2 | sylib 221 |
. . . . . . . . . . 11
⊢ (𝑋 ∈ Word 𝑉 → (♯‘𝑋) ∈
(ℤ≥‘0)) |
4 | 3 | adantr 484 |
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝑋)) → (♯‘𝑋) ∈
(ℤ≥‘0)) |
5 | | eleq1 2825 |
. . . . . . . . . . 11
⊢ (𝑁 = (♯‘𝑋) → (𝑁 ∈ (ℤ≥‘0)
↔ (♯‘𝑋)
∈ (ℤ≥‘0))) |
6 | 5 | adantl 485 |
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝑋)) → (𝑁 ∈ (ℤ≥‘0)
↔ (♯‘𝑋)
∈ (ℤ≥‘0))) |
7 | 4, 6 | mpbird 260 |
. . . . . . . . 9
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝑋)) → 𝑁 ∈
(ℤ≥‘0)) |
8 | 7 | 3adant2 1133 |
. . . . . . . 8
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → 𝑁 ∈
(ℤ≥‘0)) |
9 | 8 | adantr 484 |
. . . . . . 7
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → 𝑁 ∈
(ℤ≥‘0)) |
10 | | fzisfzounsn 13354 |
. . . . . . 7
⊢ (𝑁 ∈
(ℤ≥‘0) → (0...𝑁) = ((0..^𝑁) ∪ {𝑁})) |
11 | 9, 10 | syl 17 |
. . . . . 6
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (0...𝑁) = ((0..^𝑁) ∪ {𝑁})) |
12 | 11 | rexeqdv 3326 |
. . . . 5
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ ((0..^𝑁) ∪ {𝑁})𝑦 = (𝑋 cyclShift 𝑛))) |
13 | | rexun 4104 |
. . . . 5
⊢
(∃𝑛 ∈
((0..^𝑁) ∪ {𝑁})𝑦 = (𝑋 cyclShift 𝑛) ↔ (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛))) |
14 | 12, 13 | bitrdi 290 |
. . . 4
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ∨ ∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛)))) |
15 | | fvex 6730 |
. . . . . . . . . . . 12
⊢
(♯‘𝑋)
∈ V |
16 | | eleq1 2825 |
. . . . . . . . . . . 12
⊢ (𝑁 = (♯‘𝑋) → (𝑁 ∈ V ↔ (♯‘𝑋) ∈ V)) |
17 | 15, 16 | mpbiri 261 |
. . . . . . . . . . 11
⊢ (𝑁 = (♯‘𝑋) → 𝑁 ∈ V) |
18 | | oveq2 7221 |
. . . . . . . . . . . . 13
⊢ (𝑛 = 𝑁 → (𝑋 cyclShift 𝑛) = (𝑋 cyclShift 𝑁)) |
19 | 18 | eqeq2d 2748 |
. . . . . . . . . . . 12
⊢ (𝑛 = 𝑁 → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
20 | 19 | rexsng 4590 |
. . . . . . . . . . 11
⊢ (𝑁 ∈ V → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
21 | 17, 20 | syl 17 |
. . . . . . . . . 10
⊢ (𝑁 = (♯‘𝑋) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
22 | 21 | 3ad2ant3 1137 |
. . . . . . . . 9
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
23 | 22 | adantr 484 |
. . . . . . . 8
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ {𝑁}𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑦 = (𝑋 cyclShift 𝑁))) |
24 | | oveq2 7221 |
. . . . . . . . . . . . 13
⊢ (𝑁 = (♯‘𝑋) → (𝑋 cyclShift 𝑁) = (𝑋 cyclShift (♯‘𝑋))) |
25 | 24 | 3ad2ant3 1137 |
. . . . . . . . . . . 12
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 𝑁) = (𝑋 cyclShift (♯‘𝑋))) |
26 | | cshwn 14362 |
. . . . . . . . . . . . 13
⊢ (𝑋 ∈ Word 𝑉 → (𝑋 cyclShift (♯‘𝑋)) = 𝑋) |
27 | 26 | 3ad2ant1 1135 |
. . . . . . . . . . . 12
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift (♯‘𝑋)) = 𝑋) |
28 | 25, 27 | eqtrd 2777 |
. . . . . . . . . . 11
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 𝑁) = 𝑋) |
29 | 28 | eqeq2d 2748 |
. . . . . . . . . 10
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑦 = (𝑋 cyclShift 𝑁) ↔ 𝑦 = 𝑋)) |
30 | 29 | adantr 484 |
. . . . . . . . 9
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = (𝑋 cyclShift 𝑁) ↔ 𝑦 = 𝑋)) |
31 | | cshw0 14359 |
. . . . . . . . . . . . . . 15
⊢ (𝑋 ∈ Word 𝑉 → (𝑋 cyclShift 0) = 𝑋) |
32 | 31 | 3ad2ant1 1135 |
. . . . . . . . . . . . . 14
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑋 cyclShift 0) = 𝑋) |
33 | | lennncl 14089 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅) → (♯‘𝑋) ∈
ℕ) |
34 | 33 | 3adant3 1134 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (♯‘𝑋) ∈ ℕ) |
35 | | eleq1 2825 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑁 = (♯‘𝑋) → (𝑁 ∈ ℕ ↔ (♯‘𝑋) ∈
ℕ)) |
36 | 35 | 3ad2ant3 1137 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → (𝑁 ∈ ℕ ↔ (♯‘𝑋) ∈
ℕ)) |
37 | 34, 36 | mpbird 260 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → 𝑁 ∈ ℕ) |
38 | | lbfzo0 13282 |
. . . . . . . . . . . . . . . 16
⊢ (0 ∈
(0..^𝑁) ↔ 𝑁 ∈
ℕ) |
39 | 37, 38 | sylibr 237 |
. . . . . . . . . . . . . . 15
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → 0 ∈ (0..^𝑁)) |
40 | | oveq2 7221 |
. . . . . . . . . . . . . . . . . . . 20
⊢ (0 =
𝑛 → (𝑋 cyclShift 0) = (𝑋 cyclShift 𝑛)) |
41 | 40 | eqeq1d 2739 |
. . . . . . . . . . . . . . . . . . 19
⊢ (0 =
𝑛 → ((𝑋 cyclShift 0) = 𝑋 ↔ (𝑋 cyclShift 𝑛) = 𝑋)) |
42 | 41 | eqcoms 2745 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝑛 = 0 → ((𝑋 cyclShift 0) = 𝑋 ↔ (𝑋 cyclShift 𝑛) = 𝑋)) |
43 | | eqcom 2744 |
. . . . . . . . . . . . . . . . . 18
⊢ ((𝑋 cyclShift 𝑛) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛)) |
44 | 42, 43 | bitrdi 290 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑛 = 0 → ((𝑋 cyclShift 0) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
45 | 44 | adantl 485 |
. . . . . . . . . . . . . . . 16
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑛 = 0) → ((𝑋 cyclShift 0) = 𝑋 ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
46 | 45 | biimpd 232 |
. . . . . . . . . . . . . . 15
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑛 = 0) → ((𝑋 cyclShift 0) = 𝑋 → 𝑋 = (𝑋 cyclShift 𝑛))) |
47 | 39, 46 | rspcimedv 3528 |
. . . . . . . . . . . . . 14
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → ((𝑋 cyclShift 0) = 𝑋 → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛))) |
48 | 32, 47 | mpd 15 |
. . . . . . . . . . . . 13
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) |
49 | 48 | adantr 484 |
. . . . . . . . . . . 12
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) |
50 | 49 | adantr 484 |
. . . . . . . . . . 11
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛)) |
51 | | eqeq1 2741 |
. . . . . . . . . . . . 13
⊢ (𝑦 = 𝑋 → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
52 | 51 | adantl 485 |
. . . . . . . . . . . 12
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → (𝑦 = (𝑋 cyclShift 𝑛) ↔ 𝑋 = (𝑋 cyclShift 𝑛))) |
53 | 52 | rexbidv 3216 |
. . . . . . . . . . 11
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ (0..^𝑁)𝑋 = (𝑋 cyclShift 𝑛))) |
54 | 50, 53 | mpbird 260 |
. . . . . . . . . 10
⊢ ((((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) ∧ 𝑦 = 𝑋) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛)) |
55 | 54 | ex 416 |
. . . . . . . . 9
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = 𝑋 → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
56 | 30, 55 | sylbid 243 |
. . . . . . . 8
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (𝑦 = (𝑋 cyclShift 𝑁) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
57 | 23, 56 | sylbid 243 |
. . . . . . 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 243 |
. . 3
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
62 | | fzossfz 13261 |
. . . 4
⊢
(0..^𝑁) ⊆
(0...𝑁) |
63 | | ssrexv 3968 |
. . . 4
⊢
((0..^𝑁) ⊆
(0...𝑁) →
(∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
64 | 62, 63 | mp1i 13 |
. . 3
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛) → ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
65 | 61, 64 | impbid 215 |
. 2
⊢ (((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) ∧ 𝑦 ∈ Word 𝑉) → (∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛) ↔ ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛))) |
66 | 65 | rabbidva 3388 |
1
⊢ ((𝑋 ∈ Word 𝑉 ∧ 𝑋 ≠ ∅ ∧ 𝑁 = (♯‘𝑋)) → {𝑦 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0...𝑁)𝑦 = (𝑋 cyclShift 𝑛)} = {𝑦 ∈ Word 𝑉 ∣ ∃𝑛 ∈ (0..^𝑁)𝑦 = (𝑋 cyclShift 𝑛)}) |