MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  swrdcl Structured version   Visualization version   GIF version

Theorem swrdcl 13645
Description: Closure of the subword extractor. (Contributed by Stefan O'Rear, 16-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
Assertion
Ref Expression
swrdcl (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)

Proof of Theorem swrdcl
Dummy variables 𝑠 𝑏 𝑥 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 eleq1 2880 . 2 ((𝑆 substr ⟨𝐹, 𝐿⟩) = ∅ → ((𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴 ↔ ∅ ∈ Word 𝐴))
2 n0 4139 . . . 4 ((𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅ ↔ ∃𝑥 𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩))
3 df-substr 13517 . . . . . . 7 substr = (𝑠 ∈ V, 𝑏 ∈ (ℤ × ℤ) ↦ if(((1st𝑏)..^(2nd𝑏)) ⊆ dom 𝑠, (𝑥 ∈ (0..^((2nd𝑏) − (1st𝑏))) ↦ (𝑠‘(𝑥 + (1st𝑏)))), ∅))
43elmpt2cl2 7111 . . . . . 6 (𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → ⟨𝐹, 𝐿⟩ ∈ (ℤ × ℤ))
5 opelxp 5353 . . . . . 6 (⟨𝐹, 𝐿⟩ ∈ (ℤ × ℤ) ↔ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
64, 5sylib 209 . . . . 5 (𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
76exlimiv 2021 . . . 4 (∃𝑥 𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
82, 7sylbi 208 . . 3 ((𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅ → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
9 swrdval 13643 . . . . 5 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅))
10 wrdf 13524 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐴𝑆:(0..^(♯‘𝑆))⟶𝐴)
11103ad2ant1 1156 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝑆:(0..^(♯‘𝑆))⟶𝐴)
1211ad2antrr 708 . . . . . . . . 9 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝑆:(0..^(♯‘𝑆))⟶𝐴)
13 simplr 776 . . . . . . . . . . 11 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝐹..^𝐿) ⊆ dom 𝑆)
14 simpr 473 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝑥 ∈ (0..^(𝐿𝐹)))
15 simpll3 1266 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝐿 ∈ ℤ)
16 simpll2 1264 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝐹 ∈ ℤ)
17 fzoaddel2 12751 . . . . . . . . . . . 12 ((𝑥 ∈ (0..^(𝐿𝐹)) ∧ 𝐿 ∈ ℤ ∧ 𝐹 ∈ ℤ) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿))
1814, 15, 16, 17syl3anc 1483 . . . . . . . . . . 11 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿))
1913, 18sseldd 3806 . . . . . . . . . 10 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ dom 𝑆)
2012fdmd 6268 . . . . . . . . . 10 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → dom 𝑆 = (0..^(♯‘𝑆)))
2119, 20eleqtrd 2894 . . . . . . . . 9 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ (0..^(♯‘𝑆)))
2212, 21ffvelrnd 6585 . . . . . . . 8 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑆‘(𝑥 + 𝐹)) ∈ 𝐴)
2322fmpttd 6610 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿𝐹))⟶𝐴)
24 iswrdi 13523 . . . . . . 7 ((𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿𝐹))⟶𝐴 → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴)
2523, 24syl 17 . . . . . 6 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴)
26 wrd0 13544 . . . . . . 7 ∅ ∈ Word 𝐴
2726a1i 11 . . . . . 6 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ ¬ (𝐹..^𝐿) ⊆ dom 𝑆) → ∅ ∈ Word 𝐴)
2825, 27ifclda 4320 . . . . 5 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅) ∈ Word 𝐴)
299, 28eqeltrd 2892 . . . 4 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
30293expb 1142 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
318, 30sylan2 582 . 2 ((𝑆 ∈ Word 𝐴 ∧ (𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
3226a1i 11 . 2 (𝑆 ∈ Word 𝐴 → ∅ ∈ Word 𝐴)
331, 31, 32pm2.61ne 3070 1 (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 384  w3a 1100  wex 1859  wcel 2157  wne 2985  Vcvv 3398  wss 3776  c0 4123  ifcif 4286  cop 4383  cmpt 4930   × cxp 5316  dom cdm 5318  wf 6100  cfv 6104  (class class class)co 6877  1st c1st 7399  2nd c2nd 7400  0cc0 10224   + caddc 10227  cmin 10554  cz 11646  ..^cfzo 12692  chash 13340  Word cword 13505   substr csubstr 13509
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1877  ax-4 1894  ax-5 2001  ax-6 2069  ax-7 2105  ax-8 2159  ax-9 2166  ax-10 2186  ax-11 2202  ax-12 2215  ax-13 2422  ax-ext 2791  ax-rep 4971  ax-sep 4982  ax-nul 4990  ax-pow 5042  ax-pr 5103  ax-un 7182  ax-cnex 10280  ax-resscn 10281  ax-1cn 10282  ax-icn 10283  ax-addcl 10284  ax-addrcl 10285  ax-mulcl 10286  ax-mulrcl 10287  ax-mulcom 10288  ax-addass 10289  ax-mulass 10290  ax-distr 10291  ax-i2m1 10292  ax-1ne0 10293  ax-1rid 10294  ax-rnegex 10295  ax-rrecex 10296  ax-cnre 10297  ax-pre-lttri 10298  ax-pre-lttrn 10299  ax-pre-ltadd 10300  ax-pre-mulgt0 10301
This theorem depends on definitions:  df-bi 198  df-an 385  df-or 866  df-3or 1101  df-3an 1102  df-tru 1641  df-ex 1860  df-nf 1864  df-sb 2062  df-mo 2635  df-eu 2638  df-clab 2800  df-cleq 2806  df-clel 2809  df-nfc 2944  df-ne 2986  df-nel 3089  df-ral 3108  df-rex 3109  df-reu 3110  df-rab 3112  df-v 3400  df-sbc 3641  df-csb 3736  df-dif 3779  df-un 3781  df-in 3783  df-ss 3790  df-pss 3792  df-nul 4124  df-if 4287  df-pw 4360  df-sn 4378  df-pr 4380  df-tp 4382  df-op 4384  df-uni 4638  df-int 4677  df-iun 4721  df-br 4852  df-opab 4914  df-mpt 4931  df-tr 4954  df-id 5226  df-eprel 5231  df-po 5239  df-so 5240  df-fr 5277  df-we 5279  df-xp 5324  df-rel 5325  df-cnv 5326  df-co 5327  df-dm 5328  df-rn 5329  df-res 5330  df-ima 5331  df-pred 5900  df-ord 5946  df-on 5947  df-lim 5948  df-suc 5949  df-iota 6067  df-fun 6106  df-fn 6107  df-f 6108  df-f1 6109  df-fo 6110  df-f1o 6111  df-fv 6112  df-riota 6838  df-ov 6880  df-oprab 6881  df-mpt2 6882  df-om 7299  df-1st 7401  df-2nd 7402  df-wrecs 7645  df-recs 7707  df-rdg 7745  df-1o 7799  df-er 7982  df-en 8196  df-dom 8197  df-sdom 8198  df-fin 8199  df-card 9051  df-pnf 10364  df-mnf 10365  df-xr 10366  df-ltxr 10367  df-le 10368  df-sub 10556  df-neg 10557  df-nn 11309  df-n0 11563  df-z 11647  df-uz 11908  df-fz 12553  df-fzo 12693  df-hash 13341  df-word 13513  df-substr 13517
This theorem is referenced by:  swrdf  13652  addlenswrd  13665  swrd0fvlsw  13670  swrdeq  13671  swrdspsleq  13676  swrds1  13678  ccatswrd  13683  swrdccat2  13685  swrdswrd  13687  lenrevcctswrd  13694  wrdind  13703  wrd2ind  13704  swrdccatin12  13718  swrdccat  13720  swrdccat3a  13721  swrdccat3blem  13722  splcl  13730  spllen  13732  splfv1  13733  splfv2a  13734  splval2  13735  cshwcl  13771  cshwlen  13772  cshwidxmod  13776  gsumspl  17589  psgnunilem5  18118  psgnunilem2  18119  efgsres  18355  efgredleme  18360  efgredlemc  18362  efgcpbllemb  18372  frgpuplem  18389  wwlksm1edg  27014  wwlksnred  27035  wwlksnextwrd  27040  clwlkclwwlk  27151  clwwlkinwwlk  27195  clwwlkf  27202  wwlksubclwwlk  27215  clwlksfclwwlkOLD  27242  wrdsplex  30949  signsvtn0  30978  signstfveq0  30985  pfxcl  41962  ccatpfx  41985  pfxswrd  41989  lenrevpfxcctswrd  41995  pfxccatin12  42001
  Copyright terms: Public domain W3C validator