Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
||
Mirrors > Home > MPE Home > Th. List > swrdlsw | Structured version Visualization version GIF version |
Description: Extract the last single symbol from a word. (Contributed by Alexander van der Vekens, 23-Sep-2018.) |
Ref | Expression |
---|---|
swrdlsw | ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (𝑊 substr 〈((♯‘𝑊) − 1), (♯‘𝑊)〉) = 〈“(lastS‘𝑊)”〉) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | hashneq0 14183 | . . . . 5 ⊢ (𝑊 ∈ Word 𝑉 → (0 < (♯‘𝑊) ↔ 𝑊 ≠ ∅)) | |
2 | lencl 14340 | . . . . . 6 ⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℕ0) | |
3 | nn0z 12448 | . . . . . 6 ⊢ ((♯‘𝑊) ∈ ℕ0 → (♯‘𝑊) ∈ ℤ) | |
4 | elnnz 12434 | . . . . . . . 8 ⊢ ((♯‘𝑊) ∈ ℕ ↔ ((♯‘𝑊) ∈ ℤ ∧ 0 < (♯‘𝑊))) | |
5 | fzo0end 13584 | . . . . . . . 8 ⊢ ((♯‘𝑊) ∈ ℕ → ((♯‘𝑊) − 1) ∈ (0..^(♯‘𝑊))) | |
6 | 4, 5 | sylbir 234 | . . . . . . 7 ⊢ (((♯‘𝑊) ∈ ℤ ∧ 0 < (♯‘𝑊)) → ((♯‘𝑊) − 1) ∈ (0..^(♯‘𝑊))) |
7 | 6 | ex 414 | . . . . . 6 ⊢ ((♯‘𝑊) ∈ ℤ → (0 < (♯‘𝑊) → ((♯‘𝑊) − 1) ∈ (0..^(♯‘𝑊)))) |
8 | 2, 3, 7 | 3syl 18 | . . . . 5 ⊢ (𝑊 ∈ Word 𝑉 → (0 < (♯‘𝑊) → ((♯‘𝑊) − 1) ∈ (0..^(♯‘𝑊)))) |
9 | 1, 8 | sylbird 260 | . . . 4 ⊢ (𝑊 ∈ Word 𝑉 → (𝑊 ≠ ∅ → ((♯‘𝑊) − 1) ∈ (0..^(♯‘𝑊)))) |
10 | 9 | imp 408 | . . 3 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → ((♯‘𝑊) − 1) ∈ (0..^(♯‘𝑊))) |
11 | swrds1 14477 | . . 3 ⊢ ((𝑊 ∈ Word 𝑉 ∧ ((♯‘𝑊) − 1) ∈ (0..^(♯‘𝑊))) → (𝑊 substr 〈((♯‘𝑊) − 1), (((♯‘𝑊) − 1) + 1)〉) = 〈“(𝑊‘((♯‘𝑊) − 1))”〉) | |
12 | 10, 11 | syldan 592 | . 2 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (𝑊 substr 〈((♯‘𝑊) − 1), (((♯‘𝑊) − 1) + 1)〉) = 〈“(𝑊‘((♯‘𝑊) − 1))”〉) |
13 | nn0cn 12348 | . . . . . . 7 ⊢ ((♯‘𝑊) ∈ ℕ0 → (♯‘𝑊) ∈ ℂ) | |
14 | ax-1cn 11034 | . . . . . . 7 ⊢ 1 ∈ ℂ | |
15 | 13, 14 | jctir 522 | . . . . . 6 ⊢ ((♯‘𝑊) ∈ ℕ0 → ((♯‘𝑊) ∈ ℂ ∧ 1 ∈ ℂ)) |
16 | npcan 11335 | . . . . . . 7 ⊢ (((♯‘𝑊) ∈ ℂ ∧ 1 ∈ ℂ) → (((♯‘𝑊) − 1) + 1) = (♯‘𝑊)) | |
17 | 16 | eqcomd 2743 | . . . . . 6 ⊢ (((♯‘𝑊) ∈ ℂ ∧ 1 ∈ ℂ) → (♯‘𝑊) = (((♯‘𝑊) − 1) + 1)) |
18 | 2, 15, 17 | 3syl 18 | . . . . 5 ⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) = (((♯‘𝑊) − 1) + 1)) |
19 | 18 | adantr 482 | . . . 4 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (♯‘𝑊) = (((♯‘𝑊) − 1) + 1)) |
20 | 19 | opeq2d 4828 | . . 3 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → 〈((♯‘𝑊) − 1), (♯‘𝑊)〉 = 〈((♯‘𝑊) − 1), (((♯‘𝑊) − 1) + 1)〉) |
21 | 20 | oveq2d 7357 | . 2 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (𝑊 substr 〈((♯‘𝑊) − 1), (♯‘𝑊)〉) = (𝑊 substr 〈((♯‘𝑊) − 1), (((♯‘𝑊) − 1) + 1)〉)) |
22 | lsw 14371 | . . . 4 ⊢ (𝑊 ∈ Word 𝑉 → (lastS‘𝑊) = (𝑊‘((♯‘𝑊) − 1))) | |
23 | 22 | adantr 482 | . . 3 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (lastS‘𝑊) = (𝑊‘((♯‘𝑊) − 1))) |
24 | 23 | s1eqd 14408 | . 2 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → 〈“(lastS‘𝑊)”〉 = 〈“(𝑊‘((♯‘𝑊) − 1))”〉) |
25 | 12, 21, 24 | 3eqtr4d 2787 | 1 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑊 ≠ ∅) → (𝑊 substr 〈((♯‘𝑊) − 1), (♯‘𝑊)〉) = 〈“(lastS‘𝑊)”〉) |
Colors of variables: wff setvar class |
Syntax hints: → wi 4 ∧ wa 397 = wceq 1541 ∈ wcel 2106 ≠ wne 2941 ∅c0 4273 〈cop 4583 class class class wbr 5096 ‘cfv 6483 (class class class)co 7341 ℂcc 10974 0cc0 10976 1c1 10977 + caddc 10979 < clt 11114 − cmin 11310 ℕcn 12078 ℕ0cn0 12338 ℤcz 12424 ..^cfzo 13487 ♯chash 14149 Word cword 14321 lastSclsw 14369 〈“cs1 14402 substr csubstr 14451 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1797 ax-4 1811 ax-5 1913 ax-6 1971 ax-7 2011 ax-8 2108 ax-9 2116 ax-10 2137 ax-11 2154 ax-12 2171 ax-ext 2708 ax-rep 5233 ax-sep 5247 ax-nul 5254 ax-pow 5312 ax-pr 5376 ax-un 7654 ax-cnex 11032 ax-resscn 11033 ax-1cn 11034 ax-icn 11035 ax-addcl 11036 ax-addrcl 11037 ax-mulcl 11038 ax-mulrcl 11039 ax-mulcom 11040 ax-addass 11041 ax-mulass 11042 ax-distr 11043 ax-i2m1 11044 ax-1ne0 11045 ax-1rid 11046 ax-rnegex 11047 ax-rrecex 11048 ax-cnre 11049 ax-pre-lttri 11050 ax-pre-lttrn 11051 ax-pre-ltadd 11052 ax-pre-mulgt0 11053 |
This theorem depends on definitions: df-bi 206 df-an 398 df-or 846 df-3or 1088 df-3an 1089 df-tru 1544 df-fal 1554 df-ex 1782 df-nf 1786 df-sb 2068 df-mo 2539 df-eu 2568 df-clab 2715 df-cleq 2729 df-clel 2815 df-nfc 2887 df-ne 2942 df-nel 3048 df-ral 3063 df-rex 3072 df-reu 3351 df-rab 3405 df-v 3444 df-sbc 3731 df-csb 3847 df-dif 3904 df-un 3906 df-in 3908 df-ss 3918 df-pss 3920 df-nul 4274 df-if 4478 df-pw 4553 df-sn 4578 df-pr 4580 df-op 4584 df-uni 4857 df-int 4899 df-iun 4947 df-br 5097 df-opab 5159 df-mpt 5180 df-tr 5214 df-id 5522 df-eprel 5528 df-po 5536 df-so 5537 df-fr 5579 df-we 5581 df-xp 5630 df-rel 5631 df-cnv 5632 df-co 5633 df-dm 5634 df-rn 5635 df-res 5636 df-ima 5637 df-pred 6242 df-ord 6309 df-on 6310 df-lim 6311 df-suc 6312 df-iota 6435 df-fun 6485 df-fn 6486 df-f 6487 df-f1 6488 df-fo 6489 df-f1o 6490 df-fv 6491 df-riota 7297 df-ov 7344 df-oprab 7345 df-mpo 7346 df-om 7785 df-1st 7903 df-2nd 7904 df-frecs 8171 df-wrecs 8202 df-recs 8276 df-rdg 8315 df-1o 8371 df-er 8573 df-en 8809 df-dom 8810 df-sdom 8811 df-fin 8812 df-card 9800 df-pnf 11116 df-mnf 11117 df-xr 11118 df-ltxr 11119 df-le 11120 df-sub 11312 df-neg 11313 df-nn 12079 df-n0 12339 df-xnn0 12411 df-z 12425 df-uz 12688 df-fz 13345 df-fzo 13488 df-hash 14150 df-word 14322 df-lsw 14370 df-s1 14403 df-substr 14452 |
This theorem is referenced by: pfxsuff1eqwrdeq 14510 pfxlswccat 14524 |
Copyright terms: Public domain | W3C validator |