| 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 2854 | . 2 ⊢ ((𝑆 substr 〈𝐹, 𝐿〉) = ∅ → ((𝑆 substr 〈𝐹, 𝐿〉) ∈ Word 𝐴 ↔ ∅ ∈ Word 𝐴)) | |
| 2 | n0 4310 | . . . 4 ⊢ ((𝑆 substr 〈𝐹, 𝐿〉) ≠ ∅ ↔ ∃𝑥 𝑥 ∈ (𝑆 substr 〈𝐹, 𝐿〉)) | |
| 3 | df-substr 14701 | . . . . . . 7 ⊢ substr = (𝑠 ∈ V, 𝑏 ∈ (ℤ × ℤ) ↦ if(((1st ‘𝑏)..^(2nd ‘𝑏)) ⊆ dom 𝑠, (𝑥 ∈ (0..^((2nd ‘𝑏) − (1st ‘𝑏))) ↦ (𝑠‘(𝑥 + (1st ‘𝑏)))), ∅)) | |
| 4 | 3 | elmpocl2 7666 | . . . . . 6 ⊢ (𝑥 ∈ (𝑆 substr 〈𝐹, 𝐿〉) → 〈𝐹, 𝐿〉 ∈ (ℤ × ℤ)) |
| 5 | opelxp 5702 | . . . . . 6 ⊢ (〈𝐹, 𝐿〉 ∈ (ℤ × ℤ) ↔ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) | |
| 6 | 4, 5 | sylib 221 | . . . . 5 ⊢ (𝑥 ∈ (𝑆 substr 〈𝐹, 𝐿〉) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) |
| 7 | 6 | exlimiv 1963 | . . . 4 ⊢ (∃𝑥 𝑥 ∈ (𝑆 substr 〈𝐹, 𝐿〉) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) |
| 8 | 2, 7 | sylbi 220 | . . 3 ⊢ ((𝑆 substr 〈𝐹, 𝐿〉) ≠ ∅ → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) |
| 9 | swrdval 14703 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr 〈𝐹, 𝐿〉) = if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅)) | |
| 10 | wrdf 14575 | . . . . . . . . . . 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 13768 | . . . . . . . . . . . 12 ⊢ ((𝑥 ∈ (0..^(𝐿 − 𝐹)) ∧ 𝐿 ∈ ℤ ∧ 𝐹 ∈ ℤ) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿)) | |
| 18 | 14, 15, 16, 17 | syl3anc 1398 | . . . . . . . . . . 11 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿)) |
| 19 | 13, 18 | sseldd 3941 | . . . . . . . . . 10 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑥 + 𝐹) ∈ dom 𝑆) |
| 20 | 12 | fdmd 6723 | . . . . . . . . . 10 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → dom 𝑆 = (0..^(♯‘𝑆))) |
| 21 | 19, 20 | eleqtrd 2868 | . . . . . . . . 9 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑥 + 𝐹) ∈ (0..^(♯‘𝑆))) |
| 22 | 12, 21 | ffvelcdmd 7087 | . . . . . . . 8 ⊢ ((((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑆‘(𝑥 + 𝐹)) ∈ 𝐴) |
| 23 | 22 | fmpttd 7117 | . . . . . . 7 ⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿 − 𝐹))⟶𝐴) |
| 24 | iswrdi 14574 | . . . . . . 7 ⊢ ((𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿 − 𝐹))⟶𝐴 → (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴) | |
| 25 | 23, 24 | syl 18 | . . . . . 6 ⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴) |
| 26 | wrd0 14596 | . . . . . . 7 ⊢ ∅ ∈ Word 𝐴 | |
| 27 | 26 | a1i 11 | . . . . . 6 ⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ ¬ (𝐹..^𝐿) ⊆ dom 𝑆) → ∅ ∈ Word 𝐴) |
| 28 | 25, 27 | ifclda 4528 | . . . . 5 ⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅) ∈ Word 𝐴) |
| 29 | 9, 28 | eqeltrd 2866 | . . . 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 3046 | 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 1812 ∈ wcel 2146 ≠ wne 2961 Vcvv 3458 ⊆ wss 3908 ∅c0 4289 ifcif 4492 〈cop 4600 ↦ cmpt 5197 × cxp 5664 dom cdm 5666 ⟶wf 6539 ‘cfv 6543 (class class class)co 7423 1st c1st 7993 2nd c2nd 7994 0cc0 11118 + caddc 11121 − cmin 11459 ℤcz 12609 ..^cfzo 13701 ♯chash 14386 Word cword 14570 substr csubstr 14700 |
| This proof depends on axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1828 ax-4 1842 ax-5 1943 ax-6 2000 ax-7 2041 ax-8 2148 ax-9 2156 ax-10 2179 ax-11 2195 ax-12 2216 ax-ext 2738 ax-rep 5243 ax-sep 5262 ax-nul 5274 ax-pow 5341 ax-pr 5409 ax-un 7745 ax-cnex 11174 ax-resscn 11175 ax-1cn 11176 ax-icn 11177 ax-addcl 11178 ax-addrcl 11179 ax-mulcl 11180 ax-mulrcl 11181 ax-mulcom 11182 ax-addass 11183 ax-mulass 11184 ax-distr 11185 ax-i2m1 11186 ax-1ne0 11187 ax-1rid 11188 ax-rnegex 11189 ax-rrecex 11190 ax-cnre 11191 ax-pre-lttri 11192 ax-pre-lttrn 11193 ax-pre-ltadd 11194 ax-pre-mulgt0 11195 |
| This proof depends on definitions: df-bi 210 df-an 402 df-or 862 df-3or 1104 df-3an 1105 df-tru 1573 df-fal 1583 df-ex 1813 df-nf 1817 df-sb 2100 df-mo 2570 df-eu 2600 df-clab 2745 df-cleq 2758 df-clel 2841 df-nfc 2915 df-ne 2962 df-nel 3068 df-ral 3083 df-rex 3093 df-reu 3373 df-rab 3420 df-v 3460 df-sbc 3748 df-csb 3857 df-dif 3911 df-un 3913 df-in 3915 df-ss 3925 df-pss 3928 df-nul 4290 df-if 4493 df-pw 4569 df-sn 4595 df-pr 4597 df-op 4601 df-uni 4878 df-int 4918 df-iun 4963 df-br 5115 df-opab 5179 df-mpt 5198 df-tr 5224 df-id 5561 df-eprel 5566 df-po 5574 df-so 5575 df-fr 5619 df-we 5621 df-xp 5672 df-rel 5673 df-cnv 5674 df-co 5675 df-dm 5676 df-rn 5677 df-res 5678 df-ima 5679 df-pred 6309 df-ord 6370 df-on 6371 df-lim 6372 df-suc 6373 df-iota 6499 df-fun 6545 df-fn 6546 df-f 6547 df-f1 6548 df-fo 6549 df-f1o 6550 df-fv 6551 df-riota 7380 df-ov 7426 df-oprab 7427 df-mpo 7428 df-om 7872 df-1st 7995 df-2nd 7996 df-frecs 8287 df-wrecs 8318 df-recs 8367 df-rdg 8406 df-1o 8462 df-er 8703 df-en 8953 df-dom 8954 df-sdom 8955 df-fin 8956 df-card 9944 df-pnf 11263 df-mnf 11264 df-xr 11265 df-ltxr 11266 df-le 11267 df-sub 11461 df-neg 11462 df-nn 12252 df-n0 12523 df-z 12610 df-uz 12881 df-fz 13554 df-fzo 13702 df-hash 14387 df-word 14571 df-substr 14701 |
| This theorem is used by: swrdf 14710 swrdspsleq 14727 swrds1 14728 ccatswrd 14730 swrdccat2 14731 pfxcl 14739 ccatpfx 14762 swrdswrd 14766 lenrevpfxcctswrd 14773 pfxccatin12 14794 swrdccat 14796 swrdccat3blem 14800 splcl 14813 spllen 14815 splfv1 14816 splfv2a 14817 splval2 14818 revpfxsfxrev 14829 cshwcl 14861 cshwlen 14862 cshwidxmod 14866 gsumspl 18934 psgnunilem2 19596 efgredleme 19844 efgredlemc 19846 efgcpbllemb 19856 frgpuplem 19873 wrdsplex 33293 splfv3 33309 gsumwrd2dccatlem 33428 gsumwrd2dccat 33429 cycpmco2f1 33475 cycpmco2rn 33476 cycpmco2lem2 33478 cycpmco2lem3 33479 cycpmco2lem4 33480 cycpmco2lem5 33481 cycpmco2lem6 33482 cycpmco2 33484 elrgspnlem2 33594 |
| Copyright terms: Public domain | W3C validator |