| Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
||
| Mirrors > Home > MPE Home > Th. List > pfxswrd | Structured version Visualization version GIF version | ||
| Description: A prefix of a subword is a subword. (Contributed by AV, 2-Apr-2018.) (Revised by AV, 8-May-2020.) |
| Ref | Expression |
|---|---|
| pfxswrd | ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝐿 ∈ (0...(𝑁 − 𝑀)) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = (𝑊 substr 〈𝑀, (𝑀 + 𝐿)〉))) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | ovexd 7392 | . . . 4 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝑊 substr 〈𝑀, 𝑁〉) ∈ V) | |
| 2 | elfznn0 13566 | . . . 4 ⊢ (𝐿 ∈ (0...(𝑁 − 𝑀)) → 𝐿 ∈ ℕ0) | |
| 3 | pfxval 14628 | . . . 4 ⊢ (((𝑊 substr 〈𝑀, 𝑁〉) ∈ V ∧ 𝐿 ∈ ℕ0) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉)) | |
| 4 | 1, 2, 3 | syl2an 602 | . . 3 ⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉)) |
| 5 | fznn0sub 13502 | . . . . . . 7 ⊢ (𝑀 ∈ (0...𝑁) → (𝑁 − 𝑀) ∈ ℕ0) | |
| 6 | 5 | 3ad2ant3 1141 | . . . . . 6 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝑁 − 𝑀) ∈ ℕ0) |
| 7 | 0elfz 13570 | . . . . . 6 ⊢ ((𝑁 − 𝑀) ∈ ℕ0 → 0 ∈ (0...(𝑁 − 𝑀))) | |
| 8 | 6, 7 | syl 17 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → 0 ∈ (0...(𝑁 − 𝑀))) |
| 9 | 8 | anim1i 621 | . . . 4 ⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → (0 ∈ (0...(𝑁 − 𝑀)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀)))) |
| 10 | swrdswrd 14659 | . . . . 5 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → ((0 ∈ (0...(𝑁 − 𝑀)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉) = (𝑊 substr 〈(𝑀 + 0), (𝑀 + 𝐿)〉))) | |
| 11 | 10 | imp 407 | . . . 4 ⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ (0 ∈ (0...(𝑁 − 𝑀)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀)))) → ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉) = (𝑊 substr 〈(𝑀 + 0), (𝑀 + 𝐿)〉)) |
| 12 | 9, 11 | syldan 597 | . . 3 ⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉) = (𝑊 substr 〈(𝑀 + 0), (𝑀 + 𝐿)〉)) |
| 13 | elfznn0 13566 | . . . . . . . 8 ⊢ (𝑀 ∈ (0...𝑁) → 𝑀 ∈ ℕ0) | |
| 14 | nn0cn 12439 | . . . . . . . . 9 ⊢ (𝑀 ∈ ℕ0 → 𝑀 ∈ ℂ) | |
| 15 | 14 | addridd 11338 | . . . . . . . 8 ⊢ (𝑀 ∈ ℕ0 → (𝑀 + 0) = 𝑀) |
| 16 | 13, 15 | syl 17 | . . . . . . 7 ⊢ (𝑀 ∈ (0...𝑁) → (𝑀 + 0) = 𝑀) |
| 17 | 16 | 3ad2ant3 1141 | . . . . . 6 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝑀 + 0) = 𝑀) |
| 18 | 17 | adantr 481 | . . . . 5 ⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → (𝑀 + 0) = 𝑀) |
| 19 | 18 | opeq1d 4811 | . . . 4 ⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → 〈(𝑀 + 0), (𝑀 + 𝐿)〉 = 〈𝑀, (𝑀 + 𝐿)〉) |
| 20 | 19 | oveq2d 7373 | . . 3 ⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → (𝑊 substr 〈(𝑀 + 0), (𝑀 + 𝐿)〉) = (𝑊 substr 〈𝑀, (𝑀 + 𝐿)〉)) |
| 21 | 4, 12, 20 | 3eqtrd 2778 | . 2 ⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = (𝑊 substr 〈𝑀, (𝑀 + 𝐿)〉)) |
| 22 | 21 | ex 413 | 1 ⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝐿 ∈ (0...(𝑁 − 𝑀)) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = (𝑊 substr 〈𝑀, (𝑀 + 𝐿)〉))) |
| Colors of variables: wff setvar class |
| Syntax hints: → wi 4 ∧ wa 396 ∧ w3a 1092 = wceq 1547 ∈ wcel 2119 Vcvv 3431 〈cop 4562 ‘cfv 6486 (class class class)co 7357 0cc0 11030 + caddc 11033 − cmin 11369 ℕ0cn0 12429 ...cfz 13453 ♯chash 14284 Word cword 14467 substr csubstr 14595 prefix cpfx 14625 |
| This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1802 ax-4 1816 ax-5 1917 ax-6 1974 ax-7 2015 ax-8 2121 ax-9 2129 ax-10 2152 ax-11 2168 ax-12 2189 ax-ext 2711 ax-rep 5200 ax-sep 5219 ax-nul 5229 ax-pow 5295 ax-pr 5363 ax-un 7679 ax-cnex 11086 ax-resscn 11087 ax-1cn 11088 ax-icn 11089 ax-addcl 11090 ax-addrcl 11091 ax-mulcl 11092 ax-mulrcl 11093 ax-mulcom 11094 ax-addass 11095 ax-mulass 11096 ax-distr 11097 ax-i2m1 11098 ax-1ne0 11099 ax-1rid 11100 ax-rnegex 11101 ax-rrecex 11102 ax-cnre 11103 ax-pre-lttri 11104 ax-pre-lttrn 11105 ax-pre-ltadd 11106 ax-pre-mulgt0 11107 |
| This theorem depends on definitions: df-bi 208 df-an 397 df-or 854 df-3or 1093 df-3an 1094 df-tru 1550 df-fal 1560 df-ex 1787 df-nf 1791 df-sb 2074 df-mo 2543 df-eu 2573 df-clab 2718 df-cleq 2731 df-clel 2814 df-nfc 2888 df-ne 2935 df-nel 3039 df-ral 3054 df-rex 3064 df-reu 3345 df-rab 3392 df-v 3433 df-sbc 3724 df-csb 3832 df-dif 3886 df-un 3888 df-in 3890 df-ss 3900 df-pss 3903 df-nul 4263 df-if 4456 df-pw 4532 df-sn 4557 df-pr 4559 df-op 4563 df-uni 4840 df-int 4879 df-iun 4924 df-br 5074 df-opab 5136 df-mpt 5155 df-tr 5181 df-id 5514 df-eprel 5519 df-po 5527 df-so 5528 df-fr 5572 df-we 5574 df-xp 5625 df-rel 5626 df-cnv 5627 df-co 5628 df-dm 5629 df-rn 5630 df-res 5631 df-ima 5632 df-pred 6253 df-ord 6314 df-on 6315 df-lim 6316 df-suc 6317 df-iota 6442 df-fun 6488 df-fn 6489 df-f 6490 df-f1 6491 df-fo 6492 df-f1o 6493 df-fv 6494 df-riota 7314 df-ov 7360 df-oprab 7361 df-mpo 7362 df-om 7808 df-1st 7932 df-2nd 7933 df-frecs 8222 df-wrecs 8253 df-recs 8302 df-rdg 8340 df-1o 8396 df-er 8634 df-en 8885 df-dom 8886 df-sdom 8887 df-fin 8888 df-card 9855 df-pnf 11173 df-mnf 11174 df-xr 11175 df-ltxr 11176 df-le 11177 df-sub 11371 df-neg 11372 df-nn 12167 df-n0 12430 df-z 12517 df-uz 12781 df-fz 13454 df-fzo 13601 df-hash 14285 df-word 14468 df-substr 14596 df-pfx 14626 |
| This theorem is referenced by: pfxpfx 14662 |
| Copyright terms: Public domain | W3C validator |