![]() |
Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
|
Mirrors > Home > MPE Home > Th. List > wrdeqs1cat | Structured version Visualization version GIF version |
Description: Decompose a nonempty word by separating off the first symbol. (Contributed by Stefan O'Rear, 25-Aug-2015.) (Revised by Mario Carneiro, 1-Oct-2015.) (Proof shortened by AV, 9-May-2020.) |
Ref | Expression |
---|---|
wrdeqs1cat | ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → 𝑊 = (〈“(𝑊‘0)”〉 ++ (𝑊 substr 〈1, (♯‘𝑊)〉))) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | simpl 468 | . . 3 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → 𝑊 ∈ Word 𝐴) | |
2 | 1nn0 11510 | . . . 4 ⊢ 1 ∈ ℕ0 | |
3 | 0elfz 12644 | . . . 4 ⊢ (1 ∈ ℕ0 → 0 ∈ (0...1)) | |
4 | 2, 3 | mp1i 13 | . . 3 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → 0 ∈ (0...1)) |
5 | wrdfin 13519 | . . . 4 ⊢ (𝑊 ∈ Word 𝐴 → 𝑊 ∈ Fin) | |
6 | 1elfz0hash 13381 | . . . 4 ⊢ ((𝑊 ∈ Fin ∧ 𝑊 ≠ ∅) → 1 ∈ (0...(♯‘𝑊))) | |
7 | 5, 6 | sylan 569 | . . 3 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → 1 ∈ (0...(♯‘𝑊))) |
8 | lennncl 13521 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → (♯‘𝑊) ∈ ℕ) | |
9 | 8 | nnnn0d 11553 | . . . 4 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → (♯‘𝑊) ∈ ℕ0) |
10 | eluzfz2 12556 | . . . . 5 ⊢ ((♯‘𝑊) ∈ (ℤ≥‘0) → (♯‘𝑊) ∈ (0...(♯‘𝑊))) | |
11 | nn0uz 11924 | . . . . 5 ⊢ ℕ0 = (ℤ≥‘0) | |
12 | 10, 11 | eleq2s 2868 | . . . 4 ⊢ ((♯‘𝑊) ∈ ℕ0 → (♯‘𝑊) ∈ (0...(♯‘𝑊))) |
13 | 9, 12 | syl 17 | . . 3 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → (♯‘𝑊) ∈ (0...(♯‘𝑊))) |
14 | ccatswrd 13665 | . . 3 ⊢ ((𝑊 ∈ Word 𝐴 ∧ (0 ∈ (0...1) ∧ 1 ∈ (0...(♯‘𝑊)) ∧ (♯‘𝑊) ∈ (0...(♯‘𝑊)))) → ((𝑊 substr 〈0, 1〉) ++ (𝑊 substr 〈1, (♯‘𝑊)〉)) = (𝑊 substr 〈0, (♯‘𝑊)〉)) | |
15 | 1, 4, 7, 13, 14 | syl13anc 1478 | . 2 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → ((𝑊 substr 〈0, 1〉) ++ (𝑊 substr 〈1, (♯‘𝑊)〉)) = (𝑊 substr 〈0, (♯‘𝑊)〉)) |
16 | 0p1e1 11334 | . . . . . 6 ⊢ (0 + 1) = 1 | |
17 | 16 | opeq2i 4543 | . . . . 5 ⊢ 〈0, (0 + 1)〉 = 〈0, 1〉 |
18 | 17 | oveq2i 6804 | . . . 4 ⊢ (𝑊 substr 〈0, (0 + 1)〉) = (𝑊 substr 〈0, 1〉) |
19 | 0nn0 11509 | . . . . . . 7 ⊢ 0 ∈ ℕ0 | |
20 | 19 | a1i 11 | . . . . . 6 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → 0 ∈ ℕ0) |
21 | hashgt0 13379 | . . . . . 6 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → 0 < (♯‘𝑊)) | |
22 | elfzo0 12717 | . . . . . 6 ⊢ (0 ∈ (0..^(♯‘𝑊)) ↔ (0 ∈ ℕ0 ∧ (♯‘𝑊) ∈ ℕ ∧ 0 < (♯‘𝑊))) | |
23 | 20, 8, 21, 22 | syl3anbrc 1428 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → 0 ∈ (0..^(♯‘𝑊))) |
24 | swrds1 13660 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 0 ∈ (0..^(♯‘𝑊))) → (𝑊 substr 〈0, (0 + 1)〉) = 〈“(𝑊‘0)”〉) | |
25 | 23, 24 | syldan 579 | . . . 4 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → (𝑊 substr 〈0, (0 + 1)〉) = 〈“(𝑊‘0)”〉) |
26 | 18, 25 | syl5eqr 2819 | . . 3 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → (𝑊 substr 〈0, 1〉) = 〈“(𝑊‘0)”〉) |
27 | 26 | oveq1d 6808 | . 2 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → ((𝑊 substr 〈0, 1〉) ++ (𝑊 substr 〈1, (♯‘𝑊)〉)) = (〈“(𝑊‘0)”〉 ++ (𝑊 substr 〈1, (♯‘𝑊)〉))) |
28 | swrdid 13637 | . . 3 ⊢ (𝑊 ∈ Word 𝐴 → (𝑊 substr 〈0, (♯‘𝑊)〉) = 𝑊) | |
29 | 28 | adantr 466 | . 2 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → (𝑊 substr 〈0, (♯‘𝑊)〉) = 𝑊) |
30 | 15, 27, 29 | 3eqtr3rd 2814 | 1 ⊢ ((𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅) → 𝑊 = (〈“(𝑊‘0)”〉 ++ (𝑊 substr 〈1, (♯‘𝑊)〉))) |
Colors of variables: wff setvar class |
Syntax hints: → wi 4 ∧ wa 382 = wceq 1631 ∈ wcel 2145 ≠ wne 2943 ∅c0 4063 〈cop 4322 class class class wbr 4786 ‘cfv 6031 (class class class)co 6793 Fincfn 8109 0cc0 10138 1c1 10139 + caddc 10141 < clt 10276 ℕcn 11222 ℕ0cn0 11494 ℤ≥cuz 11888 ...cfz 12533 ..^cfzo 12673 ♯chash 13321 Word cword 13487 ++ cconcat 13489 〈“cs1 13490 substr csubstr 13491 |
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 |
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-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-card 8965 df-pnf 10278 df-mnf 10279 df-xr 10280 df-ltxr 10281 df-le 10282 df-sub 10470 df-neg 10471 df-nn 11223 df-n0 11495 df-xnn0 11566 df-z 11580 df-uz 11889 df-fz 12534 df-fzo 12674 df-hash 13322 df-word 13495 df-concat 13497 df-s1 13498 df-substr 13499 |
This theorem is referenced by: (None) |
Copyright terms: Public domain | W3C validator |