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

Theorem swrdcl 13271
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 2676 . 2 ((𝑆 substr ⟨𝐹, 𝐿⟩) = ∅ → ((𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴 ↔ ∅ ∈ Word 𝐴))
2 n0 3890 . . . 4 ((𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅ ↔ ∃𝑥 𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩))
3 df-substr 13158 . . . . . . 7 substr = (𝑠 ∈ V, 𝑏 ∈ (ℤ × ℤ) ↦ if(((1st𝑏)..^(2nd𝑏)) ⊆ dom 𝑠, (𝑥 ∈ (0..^((2nd𝑏) − (1st𝑏))) ↦ (𝑠‘(𝑥 + (1st𝑏)))), ∅))
43elmpt2cl2 6776 . . . . . 6 (𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → ⟨𝐹, 𝐿⟩ ∈ (ℤ × ℤ))
5 opelxp 5070 . . . . . 6 (⟨𝐹, 𝐿⟩ ∈ (ℤ × ℤ) ↔ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
64, 5sylib 207 . . . . 5 (𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
76exlimiv 1845 . . . 4 (∃𝑥 𝑥 ∈ (𝑆 substr ⟨𝐹, 𝐿⟩) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
82, 7sylbi 206 . . 3 ((𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅ → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
9 swrdval 13269 . . . . 5 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅))
10 wrdf 13165 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐴𝑆:(0..^(#‘𝑆))⟶𝐴)
11103ad2ant1 1075 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝑆:(0..^(#‘𝑆))⟶𝐴)
1211ad2antrr 758 . . . . . . . . 9 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝑆:(0..^(#‘𝑆))⟶𝐴)
13 simplr 788 . . . . . . . . . . 11 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝐹..^𝐿) ⊆ dom 𝑆)
14 simpr 476 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝑥 ∈ (0..^(𝐿𝐹)))
15 simpll3 1095 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝐿 ∈ ℤ)
16 simpll2 1094 . . . . . . . . . . . 12 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → 𝐹 ∈ ℤ)
17 fzoaddel2 12391 . . . . . . . . . . . 12 ((𝑥 ∈ (0..^(𝐿𝐹)) ∧ 𝐿 ∈ ℤ ∧ 𝐹 ∈ ℤ) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿))
1814, 15, 16, 17syl3anc 1318 . . . . . . . . . . 11 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ (𝐹..^𝐿))
1913, 18sseldd 3569 . . . . . . . . . 10 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ dom 𝑆)
20 fdm 5964 . . . . . . . . . . 11 (𝑆:(0..^(#‘𝑆))⟶𝐴 → dom 𝑆 = (0..^(#‘𝑆)))
2112, 20syl 17 . . . . . . . . . 10 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → dom 𝑆 = (0..^(#‘𝑆)))
2219, 21eleqtrd 2690 . . . . . . . . 9 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑥 + 𝐹) ∈ (0..^(#‘𝑆)))
2312, 22ffvelrnd 6268 . . . . . . . 8 ((((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) ∧ 𝑥 ∈ (0..^(𝐿𝐹))) → (𝑆‘(𝑥 + 𝐹)) ∈ 𝐴)
24 eqid 2610 . . . . . . . 8 (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) = (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹)))
2523, 24fmptd 6292 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿𝐹))⟶𝐴)
26 iswrdi 13164 . . . . . . 7 ((𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))):(0..^(𝐿𝐹))⟶𝐴 → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴)
2725, 26syl 17 . . . . . 6 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (𝐹..^𝐿) ⊆ dom 𝑆) → (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) ∈ Word 𝐴)
28 wrd0 13185 . . . . . . 7 ∅ ∈ Word 𝐴
2928a1i 11 . . . . . 6 (((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ ¬ (𝐹..^𝐿) ⊆ dom 𝑆) → ∅ ∈ Word 𝐴)
3027, 29ifclda 4070 . . . . 5 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅) ∈ Word 𝐴)
319, 30eqeltrd 2688 . . . 4 ((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
32313expb 1258 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
338, 32sylan2 490 . 2 ((𝑆 ∈ Word 𝐴 ∧ (𝑆 substr ⟨𝐹, 𝐿⟩) ≠ ∅) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
3428a1i 11 . 2 (𝑆 ∈ Word 𝐴 → ∅ ∈ Word 𝐴)
351, 33, 34pm2.61ne 2867 1 (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 383  w3a 1031   = wceq 1475  wex 1695  wcel 1977  wne 2780  Vcvv 3173  wss 3540  c0 3874  ifcif 4036  cop 4131  cmpt 4643   × cxp 5036  dom cdm 5038  wf 5800  cfv 5804  (class class class)co 6549  1st c1st 7057  2nd c2nd 7058  0cc0 9815   + caddc 9818  cmin 10145  cz 11254  ..^cfzo 12334  #chash 12979  Word cword 13146   substr csubstr 13150
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1713  ax-4 1728  ax-5 1827  ax-6 1875  ax-7 1922  ax-8 1979  ax-9 1986  ax-10 2006  ax-11 2021  ax-12 2034  ax-13 2234  ax-ext 2590  ax-rep 4699  ax-sep 4709  ax-nul 4717  ax-pow 4769  ax-pr 4833  ax-un 6847  ax-cnex 9871  ax-resscn 9872  ax-1cn 9873  ax-icn 9874  ax-addcl 9875  ax-addrcl 9876  ax-mulcl 9877  ax-mulrcl 9878  ax-mulcom 9879  ax-addass 9880  ax-mulass 9881  ax-distr 9882  ax-i2m1 9883  ax-1ne0 9884  ax-1rid 9885  ax-rnegex 9886  ax-rrecex 9887  ax-cnre 9888  ax-pre-lttri 9889  ax-pre-lttrn 9890  ax-pre-ltadd 9891  ax-pre-mulgt0 9892
This theorem depends on definitions:  df-bi 196  df-or 384  df-an 385  df-3or 1032  df-3an 1033  df-tru 1478  df-ex 1696  df-nf 1701  df-sb 1868  df-eu 2462  df-mo 2463  df-clab 2597  df-cleq 2603  df-clel 2606  df-nfc 2740  df-ne 2782  df-nel 2783  df-ral 2901  df-rex 2902  df-reu 2903  df-rab 2905  df-v 3175  df-sbc 3403  df-csb 3500  df-dif 3543  df-un 3545  df-in 3547  df-ss 3554  df-pss 3556  df-nul 3875  df-if 4037  df-pw 4110  df-sn 4126  df-pr 4128  df-tp 4130  df-op 4132  df-uni 4373  df-int 4411  df-iun 4457  df-br 4584  df-opab 4644  df-mpt 4645  df-tr 4681  df-eprel 4949  df-id 4953  df-po 4959  df-so 4960  df-fr 4997  df-we 4999  df-xp 5044  df-rel 5045  df-cnv 5046  df-co 5047  df-dm 5048  df-rn 5049  df-res 5050  df-ima 5051  df-pred 5597  df-ord 5643  df-on 5644  df-lim 5645  df-suc 5646  df-iota 5768  df-fun 5806  df-fn 5807  df-f 5808  df-f1 5809  df-fo 5810  df-f1o 5811  df-fv 5812  df-riota 6511  df-ov 6552  df-oprab 6553  df-mpt2 6554  df-om 6958  df-1st 7059  df-2nd 7060  df-wrecs 7294  df-recs 7355  df-rdg 7393  df-1o 7447  df-er 7629  df-en 7842  df-dom 7843  df-sdom 7844  df-fin 7845  df-card 8648  df-pnf 9955  df-mnf 9956  df-xr 9957  df-ltxr 9958  df-le 9959  df-sub 10147  df-neg 10148  df-nn 10898  df-n0 11170  df-z 11255  df-uz 11564  df-fz 12198  df-fzo 12335  df-hash 12980  df-word 13154  df-substr 13158
This theorem is referenced by:  swrdf  13277  addlenswrd  13290  swrd0fvlsw  13295  swrdeq  13296  swrdspsleq  13301  swrds1  13303  ccatswrd  13308  swrdccat2  13310  swrdswrd  13312  lenrevcctswrd  13319  wrdind  13328  wrd2ind  13329  swrdccatin12  13342  swrdccat  13344  swrdccat3a  13345  swrdccat3blem  13346  splcl  13354  spllen  13356  splfv1  13357  splfv2a  13358  splval2  13359  cshwcl  13395  cshwlen  13396  cshwidxmod  13400  gsumspl  17204  psgnunilem5  17737  psgnunilem2  17738  efgsres  17974  efgredleme  17979  efgredlemc  17981  efgcpbllemb  17991  frgpuplem  18008  wwlknred  26251  wwlkextwrd  26256  wwlkm1edg  26263  clwlkisclwwlk  26317  clwwlkf  26322  wwlksubclwwlk  26332  clwlkfclwwlk  26371  extwwlkfablem2  26605  wrdsplex  29944  signsvtn0  29973  signstfveq0  29980  pfxcl  40249  ccatpfx  40272  pfxswrd  40276  lenrevpfxcctswrd  40282  pfxccatin12  40288  wwlksm1edg  41078  wwlksnred  41098  wwlksnextwrd  41103  clwlkclwwlk  41211  clwwlksf  41222  wwlksubclwwlks  41232  clwlksfclwwlk  41269  av-extwwlkfablem2  41510
  Copyright terms: Public domain W3C validator