Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
||
Mirrors > Home > MPE Home > Th. List > splid | Structured version Visualization version GIF version |
Description: Splicing a subword for the same subword makes no difference. (Contributed by Stefan O'Rear, 20-Aug-2015.) (Proof shortened by AV, 14-Oct-2022.) |
Ref | Expression |
---|---|
splid | ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → (𝑆 splice 〈𝑋, 𝑌, (𝑆 substr 〈𝑋, 𝑌〉)〉) = 𝑆) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | ovex 7301 | . . 3 ⊢ (𝑆 substr 〈𝑋, 𝑌〉) ∈ V | |
2 | splval 14445 | . . 3 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)) ∧ (𝑆 substr 〈𝑋, 𝑌〉) ∈ V)) → (𝑆 splice 〈𝑋, 𝑌, (𝑆 substr 〈𝑋, 𝑌〉)〉) = (((𝑆 prefix 𝑋) ++ (𝑆 substr 〈𝑋, 𝑌〉)) ++ (𝑆 substr 〈𝑌, (♯‘𝑆)〉))) | |
3 | 1, 2 | mp3anr3 1458 | . 2 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → (𝑆 splice 〈𝑋, 𝑌, (𝑆 substr 〈𝑋, 𝑌〉)〉) = (((𝑆 prefix 𝑋) ++ (𝑆 substr 〈𝑋, 𝑌〉)) ++ (𝑆 substr 〈𝑌, (♯‘𝑆)〉))) |
4 | ccatpfx 14395 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆))) → ((𝑆 prefix 𝑋) ++ (𝑆 substr 〈𝑋, 𝑌〉)) = (𝑆 prefix 𝑌)) | |
5 | 4 | 3expb 1118 | . . . 4 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → ((𝑆 prefix 𝑋) ++ (𝑆 substr 〈𝑋, 𝑌〉)) = (𝑆 prefix 𝑌)) |
6 | 5 | oveq1d 7283 | . . 3 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → (((𝑆 prefix 𝑋) ++ (𝑆 substr 〈𝑋, 𝑌〉)) ++ (𝑆 substr 〈𝑌, (♯‘𝑆)〉)) = ((𝑆 prefix 𝑌) ++ (𝑆 substr 〈𝑌, (♯‘𝑆)〉))) |
7 | simpl 482 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → 𝑆 ∈ Word 𝐴) | |
8 | simprr 769 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → 𝑌 ∈ (0...(♯‘𝑆))) | |
9 | elfzuz2 13243 | . . . . . . 7 ⊢ (𝑌 ∈ (0...(♯‘𝑆)) → (♯‘𝑆) ∈ (ℤ≥‘0)) | |
10 | 9 | ad2antll 725 | . . . . . 6 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → (♯‘𝑆) ∈ (ℤ≥‘0)) |
11 | eluzfz2 13246 | . . . . . 6 ⊢ ((♯‘𝑆) ∈ (ℤ≥‘0) → (♯‘𝑆) ∈ (0...(♯‘𝑆))) | |
12 | 10, 11 | syl 17 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → (♯‘𝑆) ∈ (0...(♯‘𝑆))) |
13 | ccatpfx 14395 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝑌 ∈ (0...(♯‘𝑆)) ∧ (♯‘𝑆) ∈ (0...(♯‘𝑆))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr 〈𝑌, (♯‘𝑆)〉)) = (𝑆 prefix (♯‘𝑆))) | |
14 | 7, 8, 12, 13 | syl3anc 1369 | . . . 4 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr 〈𝑌, (♯‘𝑆)〉)) = (𝑆 prefix (♯‘𝑆))) |
15 | pfxid 14378 | . . . . 5 ⊢ (𝑆 ∈ Word 𝐴 → (𝑆 prefix (♯‘𝑆)) = 𝑆) | |
16 | 15 | adantr 480 | . . . 4 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → (𝑆 prefix (♯‘𝑆)) = 𝑆) |
17 | 14, 16 | eqtrd 2779 | . . 3 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → ((𝑆 prefix 𝑌) ++ (𝑆 substr 〈𝑌, (♯‘𝑆)〉)) = 𝑆) |
18 | 6, 17 | eqtrd 2779 | . 2 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → (((𝑆 prefix 𝑋) ++ (𝑆 substr 〈𝑋, 𝑌〉)) ++ (𝑆 substr 〈𝑌, (♯‘𝑆)〉)) = 𝑆) |
19 | 3, 18 | eqtrd 2779 | 1 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...(♯‘𝑆)))) → (𝑆 splice 〈𝑋, 𝑌, (𝑆 substr 〈𝑋, 𝑌〉)〉) = 𝑆) |
Colors of variables: wff setvar class |
Syntax hints: → wi 4 ∧ wa 395 = wceq 1541 ∈ wcel 2109 Vcvv 3430 〈cop 4572 〈cotp 4574 ‘cfv 6430 (class class class)co 7268 0cc0 10855 ℤ≥cuz 12564 ...cfz 13221 ♯chash 14025 Word cword 14198 ++ cconcat 14254 substr csubstr 14334 prefix cpfx 14364 splice csplice 14443 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1801 ax-4 1815 ax-5 1916 ax-6 1974 ax-7 2014 ax-8 2111 ax-9 2119 ax-10 2140 ax-11 2157 ax-12 2174 ax-ext 2710 ax-rep 5213 ax-sep 5226 ax-nul 5233 ax-pow 5291 ax-pr 5355 ax-un 7579 ax-cnex 10911 ax-resscn 10912 ax-1cn 10913 ax-icn 10914 ax-addcl 10915 ax-addrcl 10916 ax-mulcl 10917 ax-mulrcl 10918 ax-mulcom 10919 ax-addass 10920 ax-mulass 10921 ax-distr 10922 ax-i2m1 10923 ax-1ne0 10924 ax-1rid 10925 ax-rnegex 10926 ax-rrecex 10927 ax-cnre 10928 ax-pre-lttri 10929 ax-pre-lttrn 10930 ax-pre-ltadd 10931 ax-pre-mulgt0 10932 |
This theorem depends on definitions: df-bi 206 df-an 396 df-or 844 df-3or 1086 df-3an 1087 df-tru 1544 df-fal 1554 df-ex 1786 df-nf 1790 df-sb 2071 df-mo 2541 df-eu 2570 df-clab 2717 df-cleq 2731 df-clel 2817 df-nfc 2890 df-ne 2945 df-nel 3051 df-ral 3070 df-rex 3071 df-reu 3072 df-rab 3074 df-v 3432 df-sbc 3720 df-csb 3837 df-dif 3894 df-un 3896 df-in 3898 df-ss 3908 df-pss 3910 df-nul 4262 df-if 4465 df-pw 4540 df-sn 4567 df-pr 4569 df-tp 4571 df-op 4573 df-ot 4575 df-uni 4845 df-int 4885 df-iun 4931 df-br 5079 df-opab 5141 df-mpt 5162 df-tr 5196 df-id 5488 df-eprel 5494 df-po 5502 df-so 5503 df-fr 5543 df-we 5545 df-xp 5594 df-rel 5595 df-cnv 5596 df-co 5597 df-dm 5598 df-rn 5599 df-res 5600 df-ima 5601 df-pred 6199 df-ord 6266 df-on 6267 df-lim 6268 df-suc 6269 df-iota 6388 df-fun 6432 df-fn 6433 df-f 6434 df-f1 6435 df-fo 6436 df-f1o 6437 df-fv 6438 df-riota 7225 df-ov 7271 df-oprab 7272 df-mpo 7273 df-om 7701 df-1st 7817 df-2nd 7818 df-frecs 8081 df-wrecs 8112 df-recs 8186 df-rdg 8225 df-1o 8281 df-er 8472 df-en 8708 df-dom 8709 df-sdom 8710 df-fin 8711 df-card 9681 df-pnf 10995 df-mnf 10996 df-xr 10997 df-ltxr 10998 df-le 10999 df-sub 11190 df-neg 11191 df-nn 11957 df-n0 12217 df-z 12303 df-uz 12565 df-fz 13222 df-fzo 13365 df-hash 14026 df-word 14199 df-concat 14255 df-substr 14335 df-pfx 14365 df-splice 14444 |
This theorem is referenced by: psgnunilem2 19084 |
Copyright terms: Public domain | W3C validator |