Step | Hyp | Ref
| Expression |
1 | | cshimadifsn 13575 |
. 2
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝐹 “ ((0..^𝑁) ∖ {𝐽})) = ((𝐹 cyclShift 𝐽) “ (1..^𝑁))) |
2 | | elfzoel2 12469 |
. . . . . . . 8
⊢ (𝐽 ∈ (0..^𝑁) → 𝑁 ∈ ℤ) |
3 | | elfzom1elp1fzo1 12568 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℤ ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝑦 + 1) ∈ (1..^𝑁)) |
4 | 3 | ex 450 |
. . . . . . . 8
⊢ (𝑁 ∈ ℤ → (𝑦 ∈ (0..^(𝑁 − 1)) → (𝑦 + 1) ∈ (1..^𝑁))) |
5 | 2, 4 | syl 17 |
. . . . . . 7
⊢ (𝐽 ∈ (0..^𝑁) → (𝑦 ∈ (0..^(𝑁 − 1)) → (𝑦 + 1) ∈ (1..^𝑁))) |
6 | 5 | 3ad2ant3 1084 |
. . . . . 6
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝑦 ∈ (0..^(𝑁 − 1)) → (𝑦 + 1) ∈ (1..^𝑁))) |
7 | 6 | imp 445 |
. . . . 5
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝑦 + 1) ∈ (1..^𝑁)) |
8 | | elfzo1elm1fzo0 12569 |
. . . . . . 7
⊢ (𝑥 ∈ (1..^𝑁) → (𝑥 − 1) ∈ (0..^(𝑁 − 1))) |
9 | 8 | adantl 482 |
. . . . . 6
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑥 ∈ (1..^𝑁)) → (𝑥 − 1) ∈ (0..^(𝑁 − 1))) |
10 | | oveq1 6657 |
. . . . . . . 8
⊢ (𝑦 = (𝑥 − 1) → (𝑦 + 1) = ((𝑥 − 1) + 1)) |
11 | 10 | eqeq2d 2632 |
. . . . . . 7
⊢ (𝑦 = (𝑥 − 1) → (𝑥 = (𝑦 + 1) ↔ 𝑥 = ((𝑥 − 1) + 1))) |
12 | 11 | adantl 482 |
. . . . . 6
⊢ ((((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑥 ∈ (1..^𝑁)) ∧ 𝑦 = (𝑥 − 1)) → (𝑥 = (𝑦 + 1) ↔ 𝑥 = ((𝑥 − 1) + 1))) |
13 | | elfzoelz 12470 |
. . . . . . . . . 10
⊢ (𝑥 ∈ (1..^𝑁) → 𝑥 ∈ ℤ) |
14 | 13 | zcnd 11483 |
. . . . . . . . 9
⊢ (𝑥 ∈ (1..^𝑁) → 𝑥 ∈ ℂ) |
15 | | npcan1 10455 |
. . . . . . . . 9
⊢ (𝑥 ∈ ℂ → ((𝑥 − 1) + 1) = 𝑥) |
16 | 14, 15 | syl 17 |
. . . . . . . 8
⊢ (𝑥 ∈ (1..^𝑁) → ((𝑥 − 1) + 1) = 𝑥) |
17 | 16 | eqcomd 2628 |
. . . . . . 7
⊢ (𝑥 ∈ (1..^𝑁) → 𝑥 = ((𝑥 − 1) + 1)) |
18 | 17 | adantl 482 |
. . . . . 6
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑥 ∈ (1..^𝑁)) → 𝑥 = ((𝑥 − 1) + 1)) |
19 | 9, 12, 18 | rspcedvd 3317 |
. . . . 5
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑥 ∈ (1..^𝑁)) → ∃𝑦 ∈ (0..^(𝑁 − 1))𝑥 = (𝑦 + 1)) |
20 | | fveq2 6191 |
. . . . . . . 8
⊢ (𝑥 = (𝑦 + 1) → ((𝐹 cyclShift 𝐽)‘𝑥) = ((𝐹 cyclShift 𝐽)‘(𝑦 + 1))) |
21 | 20 | 3ad2ant3 1084 |
. . . . . . 7
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1)) ∧ 𝑥 = (𝑦 + 1)) → ((𝐹 cyclShift 𝐽)‘𝑥) = ((𝐹 cyclShift 𝐽)‘(𝑦 + 1))) |
22 | | elfzoelz 12470 |
. . . . . . . . . . . . . 14
⊢ (𝑦 ∈ (0..^(𝑁 − 1)) → 𝑦 ∈ ℤ) |
23 | 22 | zcnd 11483 |
. . . . . . . . . . . . 13
⊢ (𝑦 ∈ (0..^(𝑁 − 1)) → 𝑦 ∈ ℂ) |
24 | 23 | adantl 482 |
. . . . . . . . . . . 12
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → 𝑦 ∈ ℂ) |
25 | | elfzoelz 12470 |
. . . . . . . . . . . . . . 15
⊢ (𝐽 ∈ (0..^𝑁) → 𝐽 ∈ ℤ) |
26 | 25 | zcnd 11483 |
. . . . . . . . . . . . . 14
⊢ (𝐽 ∈ (0..^𝑁) → 𝐽 ∈ ℂ) |
27 | 26 | 3ad2ant3 1084 |
. . . . . . . . . . . . 13
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → 𝐽 ∈ ℂ) |
28 | 27 | adantr 481 |
. . . . . . . . . . . 12
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → 𝐽 ∈ ℂ) |
29 | | 1cnd 10056 |
. . . . . . . . . . . 12
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → 1 ∈
ℂ) |
30 | | add32r 10255 |
. . . . . . . . . . . 12
⊢ ((𝑦 ∈ ℂ ∧ 𝐽 ∈ ℂ ∧ 1 ∈
ℂ) → (𝑦 + (𝐽 + 1)) = ((𝑦 + 1) + 𝐽)) |
31 | 24, 28, 29, 30 | syl3anc 1326 |
. . . . . . . . . . 11
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝑦 + (𝐽 + 1)) = ((𝑦 + 1) + 𝐽)) |
32 | 31 | oveq1d 6665 |
. . . . . . . . . 10
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → ((𝑦 + (𝐽 + 1)) mod (#‘𝐹)) = (((𝑦 + 1) + 𝐽) mod (#‘𝐹))) |
33 | 32 | fveq2d 6195 |
. . . . . . . . 9
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝐹‘((𝑦 + (𝐽 + 1)) mod (#‘𝐹))) = (𝐹‘(((𝑦 + 1) + 𝐽) mod (#‘𝐹)))) |
34 | | simpl1 1064 |
. . . . . . . . . 10
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → 𝐹 ∈ Word 𝑆) |
35 | 25 | peano2zd 11485 |
. . . . . . . . . . . 12
⊢ (𝐽 ∈ (0..^𝑁) → (𝐽 + 1) ∈ ℤ) |
36 | 35 | 3ad2ant3 1084 |
. . . . . . . . . . 11
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝐽 + 1) ∈ ℤ) |
37 | 36 | adantr 481 |
. . . . . . . . . 10
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝐽 + 1) ∈ ℤ) |
38 | | fzossrbm1 12497 |
. . . . . . . . . . . . . . 15
⊢ (𝑁 ∈ ℤ →
(0..^(𝑁 − 1)) ⊆
(0..^𝑁)) |
39 | 2, 38 | syl 17 |
. . . . . . . . . . . . . 14
⊢ (𝐽 ∈ (0..^𝑁) → (0..^(𝑁 − 1)) ⊆ (0..^𝑁)) |
40 | 39 | sseld 3602 |
. . . . . . . . . . . . 13
⊢ (𝐽 ∈ (0..^𝑁) → (𝑦 ∈ (0..^(𝑁 − 1)) → 𝑦 ∈ (0..^𝑁))) |
41 | 40 | 3ad2ant3 1084 |
. . . . . . . . . . . 12
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝑦 ∈ (0..^(𝑁 − 1)) → 𝑦 ∈ (0..^𝑁))) |
42 | 41 | imp 445 |
. . . . . . . . . . 11
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → 𝑦 ∈ (0..^𝑁)) |
43 | | oveq2 6658 |
. . . . . . . . . . . . . 14
⊢ (𝑁 = (#‘𝐹) → (0..^𝑁) = (0..^(#‘𝐹))) |
44 | 43 | eleq2d 2687 |
. . . . . . . . . . . . 13
⊢ (𝑁 = (#‘𝐹) → (𝑦 ∈ (0..^𝑁) ↔ 𝑦 ∈ (0..^(#‘𝐹)))) |
45 | 44 | 3ad2ant2 1083 |
. . . . . . . . . . . 12
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝑦 ∈ (0..^𝑁) ↔ 𝑦 ∈ (0..^(#‘𝐹)))) |
46 | 45 | adantr 481 |
. . . . . . . . . . 11
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝑦 ∈ (0..^𝑁) ↔ 𝑦 ∈ (0..^(#‘𝐹)))) |
47 | 42, 46 | mpbid 222 |
. . . . . . . . . 10
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → 𝑦 ∈ (0..^(#‘𝐹))) |
48 | | cshwidxmod 13549 |
. . . . . . . . . 10
⊢ ((𝐹 ∈ Word 𝑆 ∧ (𝐽 + 1) ∈ ℤ ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ((𝐹 cyclShift (𝐽 + 1))‘𝑦) = (𝐹‘((𝑦 + (𝐽 + 1)) mod (#‘𝐹)))) |
49 | 34, 37, 47, 48 | syl3anc 1326 |
. . . . . . . . 9
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → ((𝐹 cyclShift (𝐽 + 1))‘𝑦) = (𝐹‘((𝑦 + (𝐽 + 1)) mod (#‘𝐹)))) |
50 | 25 | 3ad2ant3 1084 |
. . . . . . . . . . 11
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → 𝐽 ∈ ℤ) |
51 | 50 | adantr 481 |
. . . . . . . . . 10
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → 𝐽 ∈ ℤ) |
52 | | fzo0ss1 12498 |
. . . . . . . . . . . 12
⊢
(1..^𝑁) ⊆
(0..^𝑁) |
53 | 2 | 3ad2ant3 1084 |
. . . . . . . . . . . . 13
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → 𝑁 ∈ ℤ) |
54 | 53, 3 | sylan 488 |
. . . . . . . . . . . 12
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝑦 + 1) ∈ (1..^𝑁)) |
55 | 52, 54 | sseldi 3601 |
. . . . . . . . . . 11
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝑦 + 1) ∈ (0..^𝑁)) |
56 | 43 | eleq2d 2687 |
. . . . . . . . . . . . 13
⊢ (𝑁 = (#‘𝐹) → ((𝑦 + 1) ∈ (0..^𝑁) ↔ (𝑦 + 1) ∈ (0..^(#‘𝐹)))) |
57 | 56 | 3ad2ant2 1083 |
. . . . . . . . . . . 12
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → ((𝑦 + 1) ∈ (0..^𝑁) ↔ (𝑦 + 1) ∈ (0..^(#‘𝐹)))) |
58 | 57 | adantr 481 |
. . . . . . . . . . 11
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → ((𝑦 + 1) ∈ (0..^𝑁) ↔ (𝑦 + 1) ∈ (0..^(#‘𝐹)))) |
59 | 55, 58 | mpbid 222 |
. . . . . . . . . 10
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → (𝑦 + 1) ∈ (0..^(#‘𝐹))) |
60 | | cshwidxmod 13549 |
. . . . . . . . . 10
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝐽 ∈ ℤ ∧ (𝑦 + 1) ∈ (0..^(#‘𝐹))) → ((𝐹 cyclShift 𝐽)‘(𝑦 + 1)) = (𝐹‘(((𝑦 + 1) + 𝐽) mod (#‘𝐹)))) |
61 | 34, 51, 59, 60 | syl3anc 1326 |
. . . . . . . . 9
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → ((𝐹 cyclShift 𝐽)‘(𝑦 + 1)) = (𝐹‘(((𝑦 + 1) + 𝐽) mod (#‘𝐹)))) |
62 | 33, 49, 61 | 3eqtr4rd 2667 |
. . . . . . . 8
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1))) → ((𝐹 cyclShift 𝐽)‘(𝑦 + 1)) = ((𝐹 cyclShift (𝐽 + 1))‘𝑦)) |
63 | 62 | 3adant3 1081 |
. . . . . . 7
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1)) ∧ 𝑥 = (𝑦 + 1)) → ((𝐹 cyclShift 𝐽)‘(𝑦 + 1)) = ((𝐹 cyclShift (𝐽 + 1))‘𝑦)) |
64 | 21, 63 | eqtrd 2656 |
. . . . . 6
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1)) ∧ 𝑥 = (𝑦 + 1)) → ((𝐹 cyclShift 𝐽)‘𝑥) = ((𝐹 cyclShift (𝐽 + 1))‘𝑦)) |
65 | 64 | eqeq1d 2624 |
. . . . 5
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ 𝑦 ∈ (0..^(𝑁 − 1)) ∧ 𝑥 = (𝑦 + 1)) → (((𝐹 cyclShift 𝐽)‘𝑥) = 𝑧 ↔ ((𝐹 cyclShift (𝐽 + 1))‘𝑦) = 𝑧)) |
66 | 7, 19, 65 | rexxfrd2 4885 |
. . . 4
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (∃𝑥 ∈ (1..^𝑁)((𝐹 cyclShift 𝐽)‘𝑥) = 𝑧 ↔ ∃𝑦 ∈ (0..^(𝑁 − 1))((𝐹 cyclShift (𝐽 + 1))‘𝑦) = 𝑧)) |
67 | 66 | abbidv 2741 |
. . 3
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → {𝑧 ∣ ∃𝑥 ∈ (1..^𝑁)((𝐹 cyclShift 𝐽)‘𝑥) = 𝑧} = {𝑧 ∣ ∃𝑦 ∈ (0..^(𝑁 − 1))((𝐹 cyclShift (𝐽 + 1))‘𝑦) = 𝑧}) |
68 | 25 | anim2i 593 |
. . . . . . 7
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝐽 ∈ (0..^𝑁)) → (𝐹 ∈ Word 𝑆 ∧ 𝐽 ∈ ℤ)) |
69 | 68 | 3adant2 1080 |
. . . . . 6
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝐹 ∈ Word 𝑆 ∧ 𝐽 ∈ ℤ)) |
70 | | cshwfn 13547 |
. . . . . 6
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝐽 ∈ ℤ) → (𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹))) |
71 | 69, 70 | syl 17 |
. . . . 5
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹))) |
72 | | fnfun 5988 |
. . . . . . 7
⊢ ((𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹)) → Fun (𝐹 cyclShift 𝐽)) |
73 | 72 | adantl 482 |
. . . . . 6
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹))) → Fun (𝐹 cyclShift 𝐽)) |
74 | 43 | 3ad2ant2 1083 |
. . . . . . . . 9
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (0..^𝑁) = (0..^(#‘𝐹))) |
75 | 52, 74 | syl5sseq 3653 |
. . . . . . . 8
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (1..^𝑁) ⊆ (0..^(#‘𝐹))) |
76 | 75 | adantr 481 |
. . . . . . 7
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹))) → (1..^𝑁) ⊆ (0..^(#‘𝐹))) |
77 | | fndm 5990 |
. . . . . . . 8
⊢ ((𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹)) → dom (𝐹 cyclShift 𝐽) = (0..^(#‘𝐹))) |
78 | 77 | adantl 482 |
. . . . . . 7
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹))) → dom (𝐹 cyclShift 𝐽) = (0..^(#‘𝐹))) |
79 | 76, 78 | sseqtr4d 3642 |
. . . . . 6
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹))) → (1..^𝑁) ⊆ dom (𝐹 cyclShift 𝐽)) |
80 | 73, 79 | jca 554 |
. . . . 5
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift 𝐽) Fn (0..^(#‘𝐹))) → (Fun (𝐹 cyclShift 𝐽) ∧ (1..^𝑁) ⊆ dom (𝐹 cyclShift 𝐽))) |
81 | 71, 80 | mpdan 702 |
. . . 4
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (Fun (𝐹 cyclShift 𝐽) ∧ (1..^𝑁) ⊆ dom (𝐹 cyclShift 𝐽))) |
82 | | dfimafn 6245 |
. . . 4
⊢ ((Fun
(𝐹 cyclShift 𝐽) ∧ (1..^𝑁) ⊆ dom (𝐹 cyclShift 𝐽)) → ((𝐹 cyclShift 𝐽) “ (1..^𝑁)) = {𝑧 ∣ ∃𝑥 ∈ (1..^𝑁)((𝐹 cyclShift 𝐽)‘𝑥) = 𝑧}) |
83 | 81, 82 | syl 17 |
. . 3
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → ((𝐹 cyclShift 𝐽) “ (1..^𝑁)) = {𝑧 ∣ ∃𝑥 ∈ (1..^𝑁)((𝐹 cyclShift 𝐽)‘𝑥) = 𝑧}) |
84 | 35 | anim2i 593 |
. . . . . . 7
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝐽 ∈ (0..^𝑁)) → (𝐹 ∈ Word 𝑆 ∧ (𝐽 + 1) ∈ ℤ)) |
85 | 84 | 3adant2 1080 |
. . . . . 6
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝐹 ∈ Word 𝑆 ∧ (𝐽 + 1) ∈ ℤ)) |
86 | | cshwfn 13547 |
. . . . . 6
⊢ ((𝐹 ∈ Word 𝑆 ∧ (𝐽 + 1) ∈ ℤ) → (𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹))) |
87 | 85, 86 | syl 17 |
. . . . 5
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹))) |
88 | | fnfun 5988 |
. . . . . . 7
⊢ ((𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹)) → Fun (𝐹 cyclShift (𝐽 + 1))) |
89 | 88 | adantl 482 |
. . . . . 6
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹))) → Fun (𝐹 cyclShift (𝐽 + 1))) |
90 | 39 | 3ad2ant3 1084 |
. . . . . . . . 9
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (0..^(𝑁 − 1)) ⊆ (0..^𝑁)) |
91 | | oveq2 6658 |
. . . . . . . . . . 11
⊢
((#‘𝐹) = 𝑁 → (0..^(#‘𝐹)) = (0..^𝑁)) |
92 | 91 | eqcoms 2630 |
. . . . . . . . . 10
⊢ (𝑁 = (#‘𝐹) → (0..^(#‘𝐹)) = (0..^𝑁)) |
93 | 92 | 3ad2ant2 1083 |
. . . . . . . . 9
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (0..^(#‘𝐹)) = (0..^𝑁)) |
94 | 90, 93 | sseqtr4d 3642 |
. . . . . . . 8
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (0..^(𝑁 − 1)) ⊆ (0..^(#‘𝐹))) |
95 | 94 | adantr 481 |
. . . . . . 7
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹))) → (0..^(𝑁 − 1)) ⊆ (0..^(#‘𝐹))) |
96 | | fndm 5990 |
. . . . . . . 8
⊢ ((𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹)) → dom (𝐹 cyclShift (𝐽 + 1)) = (0..^(#‘𝐹))) |
97 | 96 | adantl 482 |
. . . . . . 7
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹))) → dom (𝐹 cyclShift (𝐽 + 1)) = (0..^(#‘𝐹))) |
98 | 95, 97 | sseqtr4d 3642 |
. . . . . 6
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹))) → (0..^(𝑁 − 1)) ⊆ dom (𝐹 cyclShift (𝐽 + 1))) |
99 | 89, 98 | jca 554 |
. . . . 5
⊢ (((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) ∧ (𝐹 cyclShift (𝐽 + 1)) Fn (0..^(#‘𝐹))) → (Fun (𝐹 cyclShift (𝐽 + 1)) ∧ (0..^(𝑁 − 1)) ⊆ dom (𝐹 cyclShift (𝐽 + 1)))) |
100 | 87, 99 | mpdan 702 |
. . . 4
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (Fun (𝐹 cyclShift (𝐽 + 1)) ∧ (0..^(𝑁 − 1)) ⊆ dom (𝐹 cyclShift (𝐽 + 1)))) |
101 | | dfimafn 6245 |
. . . 4
⊢ ((Fun
(𝐹 cyclShift (𝐽 + 1)) ∧ (0..^(𝑁 − 1)) ⊆ dom (𝐹 cyclShift (𝐽 + 1))) → ((𝐹 cyclShift (𝐽 + 1)) “ (0..^(𝑁 − 1))) = {𝑧 ∣ ∃𝑦 ∈ (0..^(𝑁 − 1))((𝐹 cyclShift (𝐽 + 1))‘𝑦) = 𝑧}) |
102 | 100, 101 | syl 17 |
. . 3
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → ((𝐹 cyclShift (𝐽 + 1)) “ (0..^(𝑁 − 1))) = {𝑧 ∣ ∃𝑦 ∈ (0..^(𝑁 − 1))((𝐹 cyclShift (𝐽 + 1))‘𝑦) = 𝑧}) |
103 | 67, 83, 102 | 3eqtr4d 2666 |
. 2
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → ((𝐹 cyclShift 𝐽) “ (1..^𝑁)) = ((𝐹 cyclShift (𝐽 + 1)) “ (0..^(𝑁 − 1)))) |
104 | 1, 103 | eqtrd 2656 |
1
⊢ ((𝐹 ∈ Word 𝑆 ∧ 𝑁 = (#‘𝐹) ∧ 𝐽 ∈ (0..^𝑁)) → (𝐹 “ ((0..^𝑁) ∖ {𝐽})) = ((𝐹 cyclShift (𝐽 + 1)) “ (0..^(𝑁 − 1)))) |