![]() |
Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
|
Mirrors > Home > MPE Home > Th. List > swrdccatin12d | Structured version Visualization version GIF version |
Description: The subword of a concatenation of two words within both of the concatenated words. (Contributed by AV, 31-May-2018.) (Revised by Mario Carneiro/AV, 21-Oct-2018.) |
Ref | Expression |
---|---|
swrdccatind.l | ⊢ (𝜑 → (♯‘𝐴) = 𝐿) |
swrdccatind.w | ⊢ (𝜑 → (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) |
swrdccatin12d.1 | ⊢ (𝜑 → 𝑀 ∈ (0...𝐿)) |
swrdccatin12d.2 | ⊢ (𝜑 → 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) |
Ref | Expression |
---|---|
swrdccatin12d | ⊢ (𝜑 → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 substr 〈0, (𝑁 − 𝐿)〉))) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | swrdccatind.l | . 2 ⊢ (𝜑 → (♯‘𝐴) = 𝐿) | |
2 | swrdccatind.w | . . . . . 6 ⊢ (𝜑 → (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) | |
3 | 2 | adantl 473 | . . . . 5 ⊢ (((♯‘𝐴) = 𝐿 ∧ 𝜑) → (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) |
4 | swrdccatin12d.1 | . . . . . . . 8 ⊢ (𝜑 → 𝑀 ∈ (0...𝐿)) | |
5 | swrdccatin12d.2 | . . . . . . . 8 ⊢ (𝜑 → 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) | |
6 | 4, 5 | jca 555 | . . . . . . 7 ⊢ (𝜑 → (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) |
7 | 6 | adantl 473 | . . . . . 6 ⊢ (((♯‘𝐴) = 𝐿 ∧ 𝜑) → (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) |
8 | oveq2 6822 | . . . . . . . . 9 ⊢ ((♯‘𝐴) = 𝐿 → (0...(♯‘𝐴)) = (0...𝐿)) | |
9 | 8 | eleq2d 2825 | . . . . . . . 8 ⊢ ((♯‘𝐴) = 𝐿 → (𝑀 ∈ (0...(♯‘𝐴)) ↔ 𝑀 ∈ (0...𝐿))) |
10 | id 22 | . . . . . . . . . 10 ⊢ ((♯‘𝐴) = 𝐿 → (♯‘𝐴) = 𝐿) | |
11 | oveq1 6821 | . . . . . . . . . 10 ⊢ ((♯‘𝐴) = 𝐿 → ((♯‘𝐴) + (♯‘𝐵)) = (𝐿 + (♯‘𝐵))) | |
12 | 10, 11 | oveq12d 6832 | . . . . . . . . 9 ⊢ ((♯‘𝐴) = 𝐿 → ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))) = (𝐿...(𝐿 + (♯‘𝐵)))) |
13 | 12 | eleq2d 2825 | . . . . . . . 8 ⊢ ((♯‘𝐴) = 𝐿 → (𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))) ↔ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) |
14 | 9, 13 | anbi12d 749 | . . . . . . 7 ⊢ ((♯‘𝐴) = 𝐿 → ((𝑀 ∈ (0...(♯‘𝐴)) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))) ↔ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))))) |
15 | 14 | adantr 472 | . . . . . 6 ⊢ (((♯‘𝐴) = 𝐿 ∧ 𝜑) → ((𝑀 ∈ (0...(♯‘𝐴)) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))) ↔ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))))) |
16 | 7, 15 | mpbird 247 | . . . . 5 ⊢ (((♯‘𝐴) = 𝐿 ∧ 𝜑) → (𝑀 ∈ (0...(♯‘𝐴)) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))))) |
17 | eqid 2760 | . . . . . 6 ⊢ (♯‘𝐴) = (♯‘𝐴) | |
18 | 17 | swrdccatin12 13711 | . . . . 5 ⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((𝑀 ∈ (0...(♯‘𝐴)) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, (♯‘𝐴)〉) ++ (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉)))) |
19 | 3, 16, 18 | sylc 65 | . . . 4 ⊢ (((♯‘𝐴) = 𝐿 ∧ 𝜑) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, (♯‘𝐴)〉) ++ (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉))) |
20 | 19 | ex 449 | . . 3 ⊢ ((♯‘𝐴) = 𝐿 → (𝜑 → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, (♯‘𝐴)〉) ++ (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉)))) |
21 | opeq2 4554 | . . . . . 6 ⊢ ((♯‘𝐴) = 𝐿 → 〈𝑀, (♯‘𝐴)〉 = 〈𝑀, 𝐿〉) | |
22 | 21 | oveq2d 6830 | . . . . 5 ⊢ ((♯‘𝐴) = 𝐿 → (𝐴 substr 〈𝑀, (♯‘𝐴)〉) = (𝐴 substr 〈𝑀, 𝐿〉)) |
23 | oveq2 6822 | . . . . . . 7 ⊢ ((♯‘𝐴) = 𝐿 → (𝑁 − (♯‘𝐴)) = (𝑁 − 𝐿)) | |
24 | 23 | opeq2d 4560 | . . . . . 6 ⊢ ((♯‘𝐴) = 𝐿 → 〈0, (𝑁 − (♯‘𝐴))〉 = 〈0, (𝑁 − 𝐿)〉) |
25 | 24 | oveq2d 6830 | . . . . 5 ⊢ ((♯‘𝐴) = 𝐿 → (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉) = (𝐵 substr 〈0, (𝑁 − 𝐿)〉)) |
26 | 22, 25 | oveq12d 6832 | . . . 4 ⊢ ((♯‘𝐴) = 𝐿 → ((𝐴 substr 〈𝑀, (♯‘𝐴)〉) ++ (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉)) = ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 substr 〈0, (𝑁 − 𝐿)〉))) |
27 | 26 | eqeq2d 2770 | . . 3 ⊢ ((♯‘𝐴) = 𝐿 → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, (♯‘𝐴)〉) ++ (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉)) ↔ ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 substr 〈0, (𝑁 − 𝐿)〉)))) |
28 | 20, 27 | sylibd 229 | . 2 ⊢ ((♯‘𝐴) = 𝐿 → (𝜑 → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 substr 〈0, (𝑁 − 𝐿)〉)))) |
29 | 1, 28 | mpcom 38 | 1 ⊢ (𝜑 → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 substr 〈0, (𝑁 − 𝐿)〉))) |
Colors of variables: wff setvar class |
Syntax hints: → wi 4 ↔ wb 196 ∧ wa 383 = wceq 1632 ∈ wcel 2139 〈cop 4327 ‘cfv 6049 (class class class)co 6814 0cc0 10148 + caddc 10151 − cmin 10478 ...cfz 12539 ♯chash 13331 Word cword 13497 ++ cconcat 13499 substr csubstr 13501 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1871 ax-4 1886 ax-5 1988 ax-6 2054 ax-7 2090 ax-8 2141 ax-9 2148 ax-10 2168 ax-11 2183 ax-12 2196 ax-13 2391 ax-ext 2740 ax-rep 4923 ax-sep 4933 ax-nul 4941 ax-pow 4992 ax-pr 5055 ax-un 7115 ax-cnex 10204 ax-resscn 10205 ax-1cn 10206 ax-icn 10207 ax-addcl 10208 ax-addrcl 10209 ax-mulcl 10210 ax-mulrcl 10211 ax-mulcom 10212 ax-addass 10213 ax-mulass 10214 ax-distr 10215 ax-i2m1 10216 ax-1ne0 10217 ax-1rid 10218 ax-rnegex 10219 ax-rrecex 10220 ax-cnre 10221 ax-pre-lttri 10222 ax-pre-lttrn 10223 ax-pre-ltadd 10224 ax-pre-mulgt0 10225 |
This theorem depends on definitions: df-bi 197 df-or 384 df-an 385 df-3or 1073 df-3an 1074 df-tru 1635 df-ex 1854 df-nf 1859 df-sb 2047 df-eu 2611 df-mo 2612 df-clab 2747 df-cleq 2753 df-clel 2756 df-nfc 2891 df-ne 2933 df-nel 3036 df-ral 3055 df-rex 3056 df-reu 3057 df-rab 3059 df-v 3342 df-sbc 3577 df-csb 3675 df-dif 3718 df-un 3720 df-in 3722 df-ss 3729 df-pss 3731 df-nul 4059 df-if 4231 df-pw 4304 df-sn 4322 df-pr 4324 df-tp 4326 df-op 4328 df-uni 4589 df-int 4628 df-iun 4674 df-br 4805 df-opab 4865 df-mpt 4882 df-tr 4905 df-id 5174 df-eprel 5179 df-po 5187 df-so 5188 df-fr 5225 df-we 5227 df-xp 5272 df-rel 5273 df-cnv 5274 df-co 5275 df-dm 5276 df-rn 5277 df-res 5278 df-ima 5279 df-pred 5841 df-ord 5887 df-on 5888 df-lim 5889 df-suc 5890 df-iota 6012 df-fun 6051 df-fn 6052 df-f 6053 df-f1 6054 df-fo 6055 df-f1o 6056 df-fv 6057 df-riota 6775 df-ov 6817 df-oprab 6818 df-mpt2 6819 df-om 7232 df-1st 7334 df-2nd 7335 df-wrecs 7577 df-recs 7638 df-rdg 7676 df-1o 7730 df-oadd 7734 df-er 7913 df-en 8124 df-dom 8125 df-sdom 8126 df-fin 8127 df-card 8975 df-pnf 10288 df-mnf 10289 df-xr 10290 df-ltxr 10291 df-le 10292 df-sub 10480 df-neg 10481 df-nn 11233 df-n0 11505 df-z 11590 df-uz 11900 df-fz 12540 df-fzo 12680 df-hash 13332 df-word 13505 df-concat 13507 df-substr 13509 |
This theorem is referenced by: (None) |
Copyright terms: Public domain | W3C validator |