| Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
||
| Mirrors > Home > MPE Home > Th. List > swrdcl | Structured version Visualization version GIF version | ||
| Description: Closure of the subword extractor. (Contributed by Stefan O'Rear, 16-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.) |
| Ref | Expression |
|---|---|
| swrdcl | ⊢ (𝑆 ∈ Word 𝐴 → (𝑆 substr 〈𝐹, 𝐿〉) ∈ Word 𝐴) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | eleq1 2848 | . 2 ⊢ ((𝑆 substr 〈𝐹, 𝐿〉) = ∅ → ((𝑆 substr 〈𝐹, 𝐿〉) ∈ Word 𝐴 ↔ ∅ ∈ Word 𝐴)) | |
| 2 | n0 4299 | . . . 4 ⊢ ((𝑆 substr 〈𝐹, 𝐿〉) ≠ ∅ ↔ ∃𝑥 𝑥 ∈ (𝑆 substr 〈𝐹, 𝐿〉)) | |
| 3 | df-substr 14793 | . . . . . . 7 ⊢ substr = (𝑠 ∈ V, 𝑏 ∈ (ℤ × ℤ) ↦ if(((1st ‘𝑏)..^(2nd ‘𝑏)) ⊆ dom 𝑠, (𝑥 ∈ (0..^((2nd ‘𝑏) − (1st ‘𝑏))) ↦ (𝑠‘(𝑥 + (1st ‘𝑏)))), ∅)) | |
| 4 | 3 | elmpocl2 7664 | . . . . . 6 ⊢ (𝑥 ∈ (𝑆 substr 〈𝐹, 𝐿〉) → 〈𝐹, 𝐿〉 ∈ (ℤ × ℤ)) |
| 5 | opelxp 5686 | . . . . . 6 ⊢ (〈𝐹, 𝐿〉 ∈ (ℤ × ℤ) ↔ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) | |
| 6 | 4, 5 | sylib 221 | . . . . 5 ⊢ (𝑥 ∈ (𝑆 substr 〈𝐹, 𝐿〉) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) |
| 7 | 6 | exlimiv 1962 | . . . 4 ⊢ (∃𝑥 𝑥 ∈ (𝑆 substr 〈𝐹, 𝐿〉) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) |
| 8 | 2, 7 | sylbi 220 | . . 3 ⊢ ((𝑆 substr 〈𝐹, 𝐿〉) ≠ ∅ → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) |
| 9 | swrdval 14795 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr 〈𝐹, 𝐿〉) = if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅)) | |
| 10 | wrdf 14666 | . . . . . . . . . . 11 ⊢ (𝑆 ∈ Word 𝐴 → 𝑆:(0..^(♯‘𝑆))⟶𝐴) | |
| 11 | 10 | 3ad2ant1 1151 | . . . . . . . . . 10 ⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝑆:(0..^(♯‘𝑆))⟶𝐴) |
| 12 | 11 | ad2antrr 739 | . . . . . . . . 9 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → 𝑆:(0..^(♯‘𝑆))⟶𝐴) |
| 13 | simplr 781 | . . . . . . . . . . 11 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝐹..^𝐿) ⊆ dom 𝑆) | |
| 14 | simpr 490 | . . . . . . . . . . . 12 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → 𝑥 ∈ (0..^(𝐿 − 𝐹))) | |
| 15 | simpll3 1233 | . . . . . . . . . . . 12 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → 𝐿 ∈ ℤ) | |
| 16 | simpll2 1232 | . . . . . . . . . . . 12 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → 𝐹 ∈ ℤ) | |
| 17 | fzoaddel2 13858 | . . . . . . . . . . . 12 ⊢ ((𝑥 ∈ (0..^(𝐿 − 𝐹)) ∧ 𝐿 ∈ ℤ ∧ 𝐹 ∈ ℤ) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿)) | |
| 18 | 14, 15, 16, 17 | syl3anc 1398 | . . . . . . . . . . 11 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿)) |
| 19 | 13, 18 | sseldd 3909 | . . . . . . . . . 10 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑥 + 𝐹) ∈ dom 𝑆) |
| 20 | 12 | fdmd 6720 | . . . . . . . . . 10 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → dom 𝑆 = (0..^(♯‘𝑆))) |
| 21 | 19, 20 | eleqtrd 2862 | . . . . . . . . 9 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑥 + 𝐹) ∈ (0..^(♯‘𝑆))) |
| 22 | 12, 21 | ffvelcdmd 7085 | . . . . . . . 8 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑆‘(𝑥 + 𝐹)) ∈ 𝐴) |
| 23 | 22 | fmpttd 7115 | . . . . . . 7 ⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿 − 𝐹))⟶𝐴) |
| 24 | iswrdi 14665 | . . . . . . 7 ⊢ ((𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿 − 𝐹))⟶𝐴 → (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴) | |
| 25 | 23, 24 | syl 18 | . . . . . 6 ⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴) |
| 26 | wrd0 14687 | . . . . . . 7 ⊢ ∅ ∈ Word 𝐴 | |
| 27 | 26 | a1i 11 | . . . . . 6 ⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ ¬ (𝐹..^𝐿) ⊆ dom 𝑆) → ∅ ∈ Word 𝐴) |
| 28 | 25, 27 | ifclda 4517 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅) ∈ Word 𝐴) |
| 29 | 9, 28 | eqeltrd 2860 | . . . 4 ⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr 〈𝐹, 𝐿〉) ∈ Word 𝐴) |
| 30 | 29 | 3expb 1138 | . . 3 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑆 substr 〈𝐹, 𝐿〉) ∈ Word 𝐴) |
| 31 | 8, 30 | sylan2 605 | . 2 ⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑆 substr 〈𝐹, 𝐿〉) ≠ ∅) → (𝑆 substr 〈𝐹, 𝐿〉) ∈ Word 𝐴) |
| 32 | 26 | a1i 11 | . 2 ⊢ (𝑆 ∈ Word 𝐴 → ∅ ∈ Word 𝐴) |
| 33 | 1, 31, 32 | pm2.61ne 3040 | 1 ⊢ (𝑆 ∈ Word 𝐴 → (𝑆 substr 〈𝐹, 𝐿〉) ∈ Word 𝐴) |
| Colors of variables: wff setvar class |
| This proof depends on syntax axioms: ¬ wn 3 → wi 4 ∧ wa 401 ∧ w3a 1103 ∃wex 1811 ∈ wcel 2144 ≠ wne 2955 Vcvv 3450 ⊆ wss 3895 ∅c0 4278 ifcif 4481 〈cop 4834 ↦ cmpt 5185 × cxp 5648 dom cdm 5650 ⟶wf 6534 ‘cfv 6538 (class class class)co 7420 1st c1st 7999 2nd c2nd 8000 0cc0 11203 + caddc 11206 − cmin 11544 ℤcz 12696 ..^cfzo 13791 ♯chash 14477 Word cword 14661 substr csubstr 14792 |
| This proof depends on axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1827 ax-4 1841 ax-5 1942 ax-6 1999 ax-7 2040 ax-8 2146 ax-9 2154 ax-10 2177 ax-11 2193 ax-12 2212 ax-ext 2732 ax-rep 5231 ax-sep 5248 ax-nul 5259 ax-pow 5326 ax-pr 5390 ax-un 7751 ax-cnex 11259 ax-resscn 11260 ax-1cn 11261 ax-icn 11262 ax-addcl 11263 ax-addrcl 11264 ax-mulcl 11265 ax-mulrcl 11266 ax-mulcom 11267 ax-addass 11268 ax-mulass 11269 ax-distr 11270 ax-i2m1 11271 ax-1ne0 11272 ax-1rid 11273 ax-rnegex 11274 ax-rrecex 11275 ax-cnre 11276 ax-pre-lttri 11277 ax-pre-lttrn 11278 ax-pre-ltadd 11279 ax-pre-mulgt0 11280 |
| This proof depends on definitions: df-bi 210 df-an 402 df-or 862 df-3or 1104 df-3an 1105 df-tru 1572 df-fal 1582 df-ex 1812 df-nf 1816 df-sb 2099 df-mo 2564 df-eu 2594 df-clab 2739 df-cleq 2752 df-clel 2835 df-nfc 2909 df-ne 2956 df-nel 3062 df-ral 3077 df-rex 3087 df-reu 3366 df-rab 3413 df-v 3452 df-sbc 3739 df-csb 3847 df-ss 3896 df-pss 4014 df-dif 4047 df-in 4091 df-un 4151 df-nul 4279 df-if 4482 df-pw 4558 df-sn 4585 df-pr 4587 df-op 4835 df-uni 4867 df-int 4907 df-iun 4952 df-br 5103 df-opab 5167 df-mpt 5186 df-tr 5212 df-id 5545 df-eprel 5550 df-po 5558 df-so 5559 df-fr 5603 df-we 5605 df-xp 5656 df-rel 5657 df-cnv 5658 df-co 5659 df-dm 5660 df-rn 5661 df-res 5662 df-ima 5663 df-pred 6304 df-ord 6365 df-on 6366 df-lim 6367 df-suc 6368 df-iota 6494 df-fun 6540 df-fn 6541 df-f 6542 df-f1 6543 df-fo 6544 df-f1o 6545 df-fv 6546 df-riota 7377 df-ov 7423 df-oprab 7424 df-mpo 7425 df-om 7878 df-1st 8001 df-2nd 8002 df-frecs 8302 df-wrecs 8333 df-recs 8382 df-rdg 8421 df-1o 8479 df-er 8720 df-en 8977 df-dom 8978 df-sdom 8979 df-fin 8980 df-card 10023 df-pnf 11348 df-mnf 11349 df-xr 11350 df-ltxr 11351 df-le 11352 df-sub 11546 df-neg 11547 df-nn 12339 df-n0 12610 df-z 12697 df-uz 12969 df-fz 13643 df-fzo 13792 df-hash 14478 df-word 14662 df-substr 14793 |
| This theorem is used by: swrdf 14802 swrdspsleq 14819 swrds1 14820 ccatswrd 14822 swrdccat2 14823 pfxcl 14831 ccatpfx 14854 swrdswrd 14858 lenrevpfxcctswrd 14865 pfxccatin12 14886 swrdccat 14888 swrdccat3blem 14892 splcl 14905 spllen 14907 splfv1 14908 splfv2a 14909 splval2 14910 revpfxsfxrev 14921 cshwcl 14953 cshwlen 14954 cshwidxmod 14958 gsumspl 19045 psgnunilem2 19714 efgredleme 19962 efgredlemc 19964 efgcpbllemb 19974 frgpuplem 19991 wrdsplex 33549 splfv3 33565 gsumwrd2dccatlem 33684 gsumwrd2dccat 33685 cycpmco2f1 33731 cycpmco2rn 33732 cycpmco2lem2 33734 cycpmco2lem3 33735 cycpmco2lem4 33736 cycpmco2lem5 33737 cycpmco2lem6 33738 cycpmco2 33740 elrgspnlem2 33850 |
| Copyright terms: Public domain | W3C validator |