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

Theorem swrdcl 14569
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 2824 . 2 ((𝑆 substr ⟨𝐹, 𝐿⟩) = ∅ → ((𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴 ↔ ∅ ∈ Word 𝐴))
2 n0 4305 . . . 4 ((𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅ ↔ ∃𝑥 𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩))
3 df-substr 14565 . . . . . . 7 substr = (𝑠 ∈ V, 𝑏 ∈ (ℤ × ℤ) ↦ if(((1st𝑏)..^(2nd𝑏)) ⊆ dom 𝑠, (𝑥 ∈ (0..^((2nd𝑏) − (1st𝑏))) ↦ (𝑠‘(𝑥 + (1st𝑏)))), ∅))
43elmpocl2 7601 . . . . . 6 (𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → ⟨𝐹, 𝐿⟩ ∈ (ℤ × ℤ))
5 opelxp 5660 . . . . . 6 (⟨𝐹, 𝐿⟩ ∈ (ℤ × ℤ) ↔ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
64, 5sylib 218 . . . . 5 (𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
76exlimiv 1931 . . . 4 (∃𝑥 𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
82, 7sylbi 217 . . 3 ((𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅ → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
9 swrdval 14567 . . . . 5 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅))
10 wrdf 14441 . . . . . . . . . . 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 13636 . . . . . . . . . . . 12 ((𝑥 ∈ (0..^(𝐿𝐹)) ∧ 𝐿 ∈ ℤ ∧ 𝐹 ∈ ℤ) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿))
1814, 15, 16, 17syl3anc 1373 . . . . . . . . . . 11 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿))
1913, 18sseldd 3934 . . . . . . . . . 10 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ dom 𝑆)
2012fdmd 6672 . . . . . . . . . 10 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → dom 𝑆 = (0..^(♯‘𝑆)))
2119, 20eleqtrd 2838 . . . . . . . . 9 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ (0..^(♯‘𝑆)))
2212, 21ffvelcdmd 7030 . . . . . . . 8 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑆‘(𝑥 + 𝐹)) ∈ 𝐴)
2322fmpttd 7060 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿𝐹))⟶𝐴)
24 iswrdi 14440 . . . . . . 7 ((𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿𝐹))⟶𝐴 → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴)
2523, 24syl 17 . . . . . 6 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴)
26 wrd0 14462 . . . . . . 7 ∅ ∈ Word 𝐴
2726a1i 11 . . . . . 6 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ ¬ (𝐹..^𝐿) ⊆ dom 𝑆) → ∅ ∈ Word 𝐴)
2825, 27ifclda 4515 . . . . 5 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅) ∈ Word 𝐴)
299, 28eqeltrd 2836 . . . 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 3017 1 (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 395  w3a 1086  wex 1780  wcel 2113  wne 2932  Vcvv 3440  wss 3901  c0 4285  ifcif 4479  cop 4586  cmpt 5179   × cxp 5622  dom cdm 5624  wf 6488  cfv 6492  (class class class)co 7358  1st c1st 7931  2nd c2nd 7932  0cc0 11026   + caddc 11029  cmin 11364  cz 12488  ..^cfzo 13570  chash 14253  Word cword 14436   substr csubstr 14564
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 2115  ax-9 2123  ax-10 2146  ax-11 2162  ax-12 2184  ax-ext 2708  ax-rep 5224  ax-sep 5241  ax-nul 5251  ax-pow 5310  ax-pr 5377  ax-un 7680  ax-cnex 11082  ax-resscn 11083  ax-1cn 11084  ax-icn 11085  ax-addcl 11086  ax-addrcl 11087  ax-mulcl 11088  ax-mulrcl 11089  ax-mulcom 11090  ax-addass 11091  ax-mulass 11092  ax-distr 11093  ax-i2m1 11094  ax-1ne0 11095  ax-1rid 11096  ax-rnegex 11097  ax-rrecex 11098  ax-cnre 11099  ax-pre-lttri 11100  ax-pre-lttrn 11101  ax-pre-ltadd 11102  ax-pre-mulgt0 11103
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 2539  df-eu 2569  df-clab 2715  df-cleq 2728  df-clel 2811  df-nfc 2885  df-ne 2933  df-nel 3037  df-ral 3052  df-rex 3061  df-reu 3351  df-rab 3400  df-v 3442  df-sbc 3741  df-csb 3850  df-dif 3904  df-un 3906  df-in 3908  df-ss 3918  df-pss 3921  df-nul 4286  df-if 4480  df-pw 4556  df-sn 4581  df-pr 4583  df-op 4587  df-uni 4864  df-int 4903  df-iun 4948  df-br 5099  df-opab 5161  df-mpt 5180  df-tr 5206  df-id 5519  df-eprel 5524  df-po 5532  df-so 5533  df-fr 5577  df-we 5579  df-xp 5630  df-rel 5631  df-cnv 5632  df-co 5633  df-dm 5634  df-rn 5635  df-res 5636  df-ima 5637  df-pred 6259  df-ord 6320  df-on 6321  df-lim 6322  df-suc 6323  df-iota 6448  df-fun 6494  df-fn 6495  df-f 6496  df-f1 6497  df-fo 6498  df-f1o 6499  df-fv 6500  df-riota 7315  df-ov 7361  df-oprab 7362  df-mpo 7363  df-om 7809  df-1st 7933  df-2nd 7934  df-frecs 8223  df-wrecs 8254  df-recs 8303  df-rdg 8341  df-1o 8397  df-er 8635  df-en 8884  df-dom 8885  df-sdom 8886  df-fin 8887  df-card 9851  df-pnf 11168  df-mnf 11169  df-xr 11170  df-ltxr 11171  df-le 11172  df-sub 11366  df-neg 11367  df-nn 12146  df-n0 12402  df-z 12489  df-uz 12752  df-fz 13424  df-fzo 13571  df-hash 14254  df-word 14437  df-substr 14565
This theorem is referenced by:  swrdf  14574  swrdspsleq  14589  swrds1  14590  ccatswrd  14592  swrdccat2  14593  pfxcl  14601  ccatpfx  14624  swrdswrd  14628  lenrevpfxcctswrd  14635  pfxccatin12  14656  swrdccat  14658  swrdccat3blem  14662  splcl  14675  spllen  14677  splfv1  14678  splfv2a  14679  splval2  14680  cshwcl  14721  cshwlen  14722  cshwidxmod  14726  gsumspl  18769  psgnunilem2  19424  efgredleme  19672  efgredlemc  19674  efgcpbllemb  19684  frgpuplem  19701  wrdsplex  33018  splfv3  33040  gsumwrd2dccatlem  33159  gsumwrd2dccat  33160  cycpmco2f1  33206  cycpmco2rn  33207  cycpmco2lem2  33209  cycpmco2lem3  33210  cycpmco2lem4  33211  cycpmco2lem5  33212  cycpmco2lem6  33213  cycpmco2  33215  elrgspnlem2  33325  revpfxsfxrev  35310
  Copyright terms: Public domain W3C validator