![]() |
Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
|
Mirrors > Home > MPE Home > Th. List > cshw0 | Structured version Visualization version GIF version |
Description: A word cyclically shifted by 0 is the word itself. (Contributed by AV, 16-May-2018.) (Revised by AV, 20-May-2018.) (Revised by AV, 26-Oct-2018.) |
Ref | Expression |
---|---|
cshw0 | ⊢ (𝑊 ∈ Word 𝑉 → (𝑊 cyclShift 0) = 𝑊) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | 0csh0 13748 | . . . 4 ⊢ (∅ cyclShift 0) = ∅ | |
2 | oveq1 6800 | . . . 4 ⊢ (∅ = 𝑊 → (∅ cyclShift 0) = (𝑊 cyclShift 0)) | |
3 | id 22 | . . . 4 ⊢ (∅ = 𝑊 → ∅ = 𝑊) | |
4 | 1, 2, 3 | 3eqtr3a 2829 | . . 3 ⊢ (∅ = 𝑊 → (𝑊 cyclShift 0) = 𝑊) |
5 | 4 | a1d 25 | . 2 ⊢ (∅ = 𝑊 → (𝑊 ∈ Word 𝑉 → (𝑊 cyclShift 0) = 𝑊)) |
6 | 0z 11590 | . . . . . . 7 ⊢ 0 ∈ ℤ | |
7 | cshword 13746 | . . . . . . 7 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 0 ∈ ℤ) → (𝑊 cyclShift 0) = ((𝑊 substr 〈(0 mod (♯‘𝑊)), (♯‘𝑊)〉) ++ (𝑊 substr 〈0, (0 mod (♯‘𝑊))〉))) | |
8 | 6, 7 | mpan2 671 | . . . . . 6 ⊢ (𝑊 ∈ Word 𝑉 → (𝑊 cyclShift 0) = ((𝑊 substr 〈(0 mod (♯‘𝑊)), (♯‘𝑊)〉) ++ (𝑊 substr 〈0, (0 mod (♯‘𝑊))〉))) |
9 | 8 | adantr 466 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ∅ ≠ 𝑊) → (𝑊 cyclShift 0) = ((𝑊 substr 〈(0 mod (♯‘𝑊)), (♯‘𝑊)〉) ++ (𝑊 substr 〈0, (0 mod (♯‘𝑊))〉))) |
10 | necom 2996 | . . . . . 6 ⊢ (∅ ≠ 𝑊 ↔ 𝑊 ≠ ∅) | |
11 | lennncl 13521 | . . . . . . 7 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (♯‘𝑊) ∈ ℕ) | |
12 | nnrp 12045 | . . . . . . 7 ⊢ ((♯‘𝑊) ∈ ℕ → (♯‘𝑊) ∈ ℝ+) | |
13 | 0mod 12909 | . . . . . . . . . 10 ⊢ ((♯‘𝑊) ∈ ℝ+ → (0 mod (♯‘𝑊)) = 0) | |
14 | 13 | opeq1d 4545 | . . . . . . . . 9 ⊢ ((♯‘𝑊) ∈ ℝ+ → 〈(0 mod (♯‘𝑊)), (♯‘𝑊)〉 = 〈0, (♯‘𝑊)〉) |
15 | 14 | oveq2d 6809 | . . . . . . . 8 ⊢ ((♯‘𝑊) ∈ ℝ+ → (𝑊 substr 〈(0 mod (♯‘𝑊)), (♯‘𝑊)〉) = (𝑊 substr 〈0, (♯‘𝑊)〉)) |
16 | 13 | opeq2d 4546 | . . . . . . . . 9 ⊢ ((♯‘𝑊) ∈ ℝ+ → 〈0, (0 mod (♯‘𝑊))〉 = 〈0, 0〉) |
17 | 16 | oveq2d 6809 | . . . . . . . 8 ⊢ ((♯‘𝑊) ∈ ℝ+ → (𝑊 substr 〈0, (0 mod (♯‘𝑊))〉) = (𝑊 substr 〈0, 0〉)) |
18 | 15, 17 | oveq12d 6811 | . . . . . . 7 ⊢ ((♯‘𝑊) ∈ ℝ+ → ((𝑊 substr 〈(0 mod (♯‘𝑊)), (♯‘𝑊)〉) ++ (𝑊 substr 〈0, (0 mod (♯‘𝑊))〉)) = ((𝑊 substr 〈0, (♯‘𝑊)〉) ++ (𝑊 substr 〈0, 0〉))) |
19 | 11, 12, 18 | 3syl 18 | . . . . . 6 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → ((𝑊 substr 〈(0 mod (♯‘𝑊)), (♯‘𝑊)〉) ++ (𝑊 substr 〈0, (0 mod (♯‘𝑊))〉)) = ((𝑊 substr 〈0, (♯‘𝑊)〉) ++ (𝑊 substr 〈0, 0〉))) |
20 | 10, 19 | sylan2b 581 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ∅ ≠ 𝑊) → ((𝑊 substr 〈(0 mod (♯‘𝑊)), (♯‘𝑊)〉) ++ (𝑊 substr 〈0, (0 mod (♯‘𝑊))〉)) = ((𝑊 substr 〈0, (♯‘𝑊)〉) ++ (𝑊 substr 〈0, 0〉))) |
21 | 9, 20 | eqtrd 2805 | . . . 4 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ∅ ≠ 𝑊) → (𝑊 cyclShift 0) = ((𝑊 substr 〈0, (♯‘𝑊)〉) ++ (𝑊 substr 〈0, 0〉))) |
22 | swrdid 13637 | . . . . . 6 ⊢ (𝑊 ∈ Word 𝑉 → (𝑊 substr 〈0, (♯‘𝑊)〉) = 𝑊) | |
23 | 22 | adantr 466 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ∅ ≠ 𝑊) → (𝑊 substr 〈0, (♯‘𝑊)〉) = 𝑊) |
24 | swrd00 13626 | . . . . . 6 ⊢ (𝑊 substr 〈0, 0〉) = ∅ | |
25 | 24 | a1i 11 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ∅ ≠ 𝑊) → (𝑊 substr 〈0, 0〉) = ∅) |
26 | 23, 25 | oveq12d 6811 | . . . 4 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ∅ ≠ 𝑊) → ((𝑊 substr 〈0, (♯‘𝑊)〉) ++ (𝑊 substr 〈0, 0〉)) = (𝑊 ++ ∅)) |
27 | ccatrid 13569 | . . . . 5 ⊢ (𝑊 ∈ Word 𝑉 → (𝑊 ++ ∅) = 𝑊) | |
28 | 27 | adantr 466 | . . . 4 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ∅ ≠ 𝑊) → (𝑊 ++ ∅) = 𝑊) |
29 | 21, 26, 28 | 3eqtrd 2809 | . . 3 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ∅ ≠ 𝑊) → (𝑊 cyclShift 0) = 𝑊) |
30 | 29 | expcom 398 | . 2 ⊢ (∅ ≠ 𝑊 → (𝑊 ∈ Word 𝑉 → (𝑊 cyclShift 0) = 𝑊)) |
31 | 5, 30 | pm2.61ine 3026 | 1 ⊢ (𝑊 ∈ Word 𝑉 → (𝑊 cyclShift 0) = 𝑊) |
Colors of variables: wff setvar class |
Syntax hints: → wi 4 ∧ wa 382 = wceq 1631 ∈ wcel 2145 ≠ wne 2943 ∅c0 4063 〈cop 4322 ‘cfv 6031 (class class class)co 6793 0cc0 10138 ℕcn 11222 ℤcz 11579 ℝ+crp 12035 mod cmo 12876 ♯chash 13321 Word cword 13487 ++ cconcat 13489 substr csubstr 13491 cyclShift ccsh 13743 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1870 ax-4 1885 ax-5 1991 ax-6 2057 ax-7 2093 ax-8 2147 ax-9 2154 ax-10 2174 ax-11 2190 ax-12 2203 ax-13 2408 ax-ext 2751 ax-rep 4904 ax-sep 4915 ax-nul 4923 ax-pow 4974 ax-pr 5034 ax-un 7096 ax-cnex 10194 ax-resscn 10195 ax-1cn 10196 ax-icn 10197 ax-addcl 10198 ax-addrcl 10199 ax-mulcl 10200 ax-mulrcl 10201 ax-mulcom 10202 ax-addass 10203 ax-mulass 10204 ax-distr 10205 ax-i2m1 10206 ax-1ne0 10207 ax-1rid 10208 ax-rnegex 10209 ax-rrecex 10210 ax-cnre 10211 ax-pre-lttri 10212 ax-pre-lttrn 10213 ax-pre-ltadd 10214 ax-pre-mulgt0 10215 ax-pre-sup 10216 |
This theorem depends on definitions: df-bi 197 df-an 383 df-or 837 df-3or 1072 df-3an 1073 df-tru 1634 df-ex 1853 df-nf 1858 df-sb 2050 df-eu 2622 df-mo 2623 df-clab 2758 df-cleq 2764 df-clel 2767 df-nfc 2902 df-ne 2944 df-nel 3047 df-ral 3066 df-rex 3067 df-reu 3068 df-rmo 3069 df-rab 3070 df-v 3353 df-sbc 3588 df-csb 3683 df-dif 3726 df-un 3728 df-in 3730 df-ss 3737 df-pss 3739 df-nul 4064 df-if 4226 df-pw 4299 df-sn 4317 df-pr 4319 df-tp 4321 df-op 4323 df-uni 4575 df-int 4612 df-iun 4656 df-br 4787 df-opab 4847 df-mpt 4864 df-tr 4887 df-id 5157 df-eprel 5162 df-po 5170 df-so 5171 df-fr 5208 df-we 5210 df-xp 5255 df-rel 5256 df-cnv 5257 df-co 5258 df-dm 5259 df-rn 5260 df-res 5261 df-ima 5262 df-pred 5823 df-ord 5869 df-on 5870 df-lim 5871 df-suc 5872 df-iota 5994 df-fun 6033 df-fn 6034 df-f 6035 df-f1 6036 df-fo 6037 df-f1o 6038 df-fv 6039 df-riota 6754 df-ov 6796 df-oprab 6797 df-mpt2 6798 df-om 7213 df-1st 7315 df-2nd 7316 df-wrecs 7559 df-recs 7621 df-rdg 7659 df-1o 7713 df-oadd 7717 df-er 7896 df-en 8110 df-dom 8111 df-sdom 8112 df-fin 8113 df-sup 8504 df-inf 8505 df-card 8965 df-pnf 10278 df-mnf 10279 df-xr 10280 df-ltxr 10281 df-le 10282 df-sub 10470 df-neg 10471 df-div 10887 df-nn 11223 df-n0 11495 df-z 11580 df-uz 11889 df-rp 12036 df-fz 12534 df-fzo 12674 df-fl 12801 df-mod 12877 df-hash 13322 df-word 13495 df-concat 13497 df-substr 13499 df-csh 13744 |
This theorem is referenced by: cshwn 13752 2cshwcshw 13780 scshwfzeqfzo 13781 cshwrepswhash1 16016 crctcshlem4 26948 clwwisshclwws 27165 erclwwlkref 27170 erclwwlknref 27227 |
Copyright terms: Public domain | W3C validator |