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

Theorem swrdcl 14553
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 2819 . 2 ((𝑆 substr ⟨𝐹, 𝐿⟩) = ∅ → ((𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴 ↔ ∅ ∈ Word 𝐴))
2 n0 4303 . . . 4 ((𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅ ↔ ∃𝑥 𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩))
3 df-substr 14549 . . . . . . 7 substr = (𝑠 ∈ V, 𝑏 ∈ (ℤ × ℤ) ↦ if(((1st𝑏)..^(2nd𝑏)) ⊆ dom 𝑠, (𝑥 ∈ (0..^((2nd𝑏) − (1st𝑏))) ↦ (𝑠‘(𝑥 + (1st𝑏)))), ∅))
43elmpocl2 7589 . . . . . 6 (𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → ⟨𝐹, 𝐿⟩ ∈ (ℤ × ℤ))
5 opelxp 5652 . . . . . 6 (⟨𝐹, 𝐿⟩ ∈ (ℤ × ℤ) ↔ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
64, 5sylib 218 . . . . 5 (𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
76exlimiv 1931 . . . 4 (∃𝑥 𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
82, 7sylbi 217 . . 3 ((𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅ → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
9 swrdval 14551 . . . . 5 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅))
10 wrdf 14425 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐴𝑆:(0..^(♯‘𝑆))⟶𝐴)
11103ad2ant1 1133 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝑆:(0..^(♯‘𝑆))⟶𝐴)
1211ad2antrr 726 . . . . . . . . 9 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝑆:(0..^(♯‘𝑆))⟶𝐴)
13 simplr 768 . . . . . . . . . . 11 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝐹..^𝐿) ⊆ dom 𝑆)
14 simpr 484 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝑥 ∈ (0..^(𝐿𝐹)))
15 simpll3 1215 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝐿 ∈ ℤ)
16 simpll2 1214 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝐹 ∈ ℤ)
17 fzoaddel2 13620 . . . . . . . . . . . 12 ((𝑥 ∈ (0..^(𝐿𝐹)) ∧ 𝐿 ∈ ℤ ∧ 𝐹 ∈ ℤ) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿))
1814, 15, 16, 17syl3anc 1373 . . . . . . . . . . 11 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿))
1913, 18sseldd 3935 . . . . . . . . . 10 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ dom 𝑆)
2012fdmd 6661 . . . . . . . . . 10 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → dom 𝑆 = (0..^(♯‘𝑆)))
2119, 20eleqtrd 2833 . . . . . . . . 9 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ (0..^(♯‘𝑆)))
2212, 21ffvelcdmd 7018 . . . . . . . 8 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑆‘(𝑥 + 𝐹)) ∈ 𝐴)
2322fmpttd 7048 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿𝐹))⟶𝐴)
24 iswrdi 14424 . . . . . . 7 ((𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿𝐹))⟶𝐴 → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴)
2523, 24syl 17 . . . . . 6 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴)
26 wrd0 14446 . . . . . . 7 ∅ ∈ Word 𝐴
2726a1i 11 . . . . . 6 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ ¬ (𝐹..^𝐿) ⊆ dom 𝑆) → ∅ ∈ Word 𝐴)
2825, 27ifclda 4511 . . . . 5 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅) ∈ Word 𝐴)
299, 28eqeltrd 2831 . . . 4 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
30293expb 1120 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
318, 30sylan2 593 . 2 ((𝑆 ∈ Word 𝐴 ∧ (𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
3226a1i 11 . 2 (𝑆 ∈ Word 𝐴 → ∅ ∈ Word 𝐴)
331, 31, 32pm2.61ne 3013 1 (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 395  w3a 1086  wex 1780  wcel 2111  wne 2928  Vcvv 3436  wss 3902  c0 4283  ifcif 4475  cop 4582  cmpt 5172   × cxp 5614  dom cdm 5616  wf 6477  cfv 6481  (class class class)co 7346  1st c1st 7919  2nd c2nd 7920  0cc0 11006   + caddc 11009  cmin 11344  cz 12468  ..^cfzo 13554  chash 14237  Word cword 14420   substr csubstr 14548
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1968  ax-7 2009  ax-8 2113  ax-9 2121  ax-10 2144  ax-11 2160  ax-12 2180  ax-ext 2703  ax-rep 5217  ax-sep 5234  ax-nul 5244  ax-pow 5303  ax-pr 5370  ax-un 7668  ax-cnex 11062  ax-resscn 11063  ax-1cn 11064  ax-icn 11065  ax-addcl 11066  ax-addrcl 11067  ax-mulcl 11068  ax-mulrcl 11069  ax-mulcom 11070  ax-addass 11071  ax-mulass 11072  ax-distr 11073  ax-i2m1 11074  ax-1ne0 11075  ax-1rid 11076  ax-rnegex 11077  ax-rrecex 11078  ax-cnre 11079  ax-pre-lttri 11080  ax-pre-lttrn 11081  ax-pre-ltadd 11082  ax-pre-mulgt0 11083
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1544  df-fal 1554  df-ex 1781  df-nf 1785  df-sb 2068  df-mo 2535  df-eu 2564  df-clab 2710  df-cleq 2723  df-clel 2806  df-nfc 2881  df-ne 2929  df-nel 3033  df-ral 3048  df-rex 3057  df-reu 3347  df-rab 3396  df-v 3438  df-sbc 3742  df-csb 3851  df-dif 3905  df-un 3907  df-in 3909  df-ss 3919  df-pss 3922  df-nul 4284  df-if 4476  df-pw 4552  df-sn 4577  df-pr 4579  df-op 4583  df-uni 4860  df-int 4898  df-iun 4943  df-br 5092  df-opab 5154  df-mpt 5173  df-tr 5199  df-id 5511  df-eprel 5516  df-po 5524  df-so 5525  df-fr 5569  df-we 5571  df-xp 5622  df-rel 5623  df-cnv 5624  df-co 5625  df-dm 5626  df-rn 5627  df-res 5628  df-ima 5629  df-pred 6248  df-ord 6309  df-on 6310  df-lim 6311  df-suc 6312  df-iota 6437  df-fun 6483  df-fn 6484  df-f 6485  df-f1 6486  df-fo 6487  df-f1o 6488  df-fv 6489  df-riota 7303  df-ov 7349  df-oprab 7350  df-mpo 7351  df-om 7797  df-1st 7921  df-2nd 7922  df-frecs 8211  df-wrecs 8242  df-recs 8291  df-rdg 8329  df-1o 8385  df-er 8622  df-en 8870  df-dom 8871  df-sdom 8872  df-fin 8873  df-card 9832  df-pnf 11148  df-mnf 11149  df-xr 11150  df-ltxr 11151  df-le 11152  df-sub 11346  df-neg 11347  df-nn 12126  df-n0 12382  df-z 12469  df-uz 12733  df-fz 13408  df-fzo 13555  df-hash 14238  df-word 14421  df-substr 14549
This theorem is referenced by:  swrdf  14558  swrdspsleq  14573  swrds1  14574  ccatswrd  14576  swrdccat2  14577  pfxcl  14585  ccatpfx  14608  swrdswrd  14612  lenrevpfxcctswrd  14619  pfxccatin12  14640  swrdccat  14642  swrdccat3blem  14646  splcl  14659  spllen  14661  splfv1  14662  splfv2a  14663  splval2  14664  cshwcl  14705  cshwlen  14706  cshwidxmod  14710  gsumspl  18752  psgnunilem2  19408  efgredleme  19656  efgredlemc  19658  efgcpbllemb  19668  frgpuplem  19685  wrdsplex  32915  splfv3  32937  gsumwrd2dccatlem  33044  gsumwrd2dccat  33045  cycpmco2f1  33091  cycpmco2rn  33092  cycpmco2lem2  33094  cycpmco2lem3  33095  cycpmco2lem4  33096  cycpmco2lem5  33097  cycpmco2lem6  33098  cycpmco2  33100  elrgspnlem2  33208  revpfxsfxrev  35158
  Copyright terms: Public domain W3C validator