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

Theorem swrdwrdsymb 14017
Description: A subword is a word over the symbols it consists of. (Contributed by AV, 2-Dec-2022.)
Assertion
Ref Expression
swrdwrdsymb (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))

Proof of Theorem swrdwrdsymb
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 swrdval2 14001 . . . . 5 ((𝑆 ∈ Word 𝐴𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))
213expb 1115 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))
3 wrdf 13863 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐴𝑆:(0..^(♯‘𝑆))⟶𝐴)
43ffund 6511 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴 → Fun 𝑆)
54adantr 483 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → Fun 𝑆)
65adantr 483 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → Fun 𝑆)
7 wrddm 13865 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴 → dom 𝑆 = (0..^(♯‘𝑆)))
8 elfzodifsumelfzo 13100 . . . . . . . . . . . . . 14 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
98imp 409 . . . . . . . . . . . . 13 (((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆)))
109adantl 484 . . . . . . . . . . . 12 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆)))
11 eleq2 2900 . . . . . . . . . . . . 13 (dom 𝑆 = (0..^(♯‘𝑆)) → ((𝑥 + 𝑀) ∈ dom 𝑆 ↔ (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
1211adantr 483 . . . . . . . . . . . 12 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → ((𝑥 + 𝑀) ∈ dom 𝑆 ↔ (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
1310, 12mpbird 259 . . . . . . . . . . 11 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → (𝑥 + 𝑀) ∈ dom 𝑆)
1413exp32 423 . . . . . . . . . 10 (dom 𝑆 = (0..^(♯‘𝑆)) → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ dom 𝑆)))
157, 14syl 17 . . . . . . . . 9 (𝑆 ∈ Word 𝐴 → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ dom 𝑆)))
1615imp31 420 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ dom 𝑆)
17 simpr 487 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑥 ∈ (0..^(𝑁𝑀)))
18 elfzelz 12905 . . . . . . . . . . . 12 (𝑁 ∈ (0...(♯‘𝑆)) → 𝑁 ∈ ℤ)
1918adantl 484 . . . . . . . . . . 11 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → 𝑁 ∈ ℤ)
2019adantl 484 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → 𝑁 ∈ ℤ)
2120adantr 483 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑁 ∈ ℤ)
22 elfzelz 12905 . . . . . . . . . . 11 (𝑀 ∈ (0...𝑁) → 𝑀 ∈ ℤ)
2322ad2antrl 726 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → 𝑀 ∈ ℤ)
2423adantr 483 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑀 ∈ ℤ)
25 fzoaddel2 13090 . . . . . . . . 9 ((𝑥 ∈ (0..^(𝑁𝑀)) ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ) → (𝑥 + 𝑀) ∈ (𝑀..^𝑁))
2617, 21, 24, 25syl3anc 1366 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ (𝑀..^𝑁))
27 funfvima 6985 . . . . . . . . 9 ((Fun 𝑆 ∧ (𝑥 + 𝑀) ∈ dom 𝑆) → ((𝑥 + 𝑀) ∈ (𝑀..^𝑁) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁))))
2827imp 409 . . . . . . . 8 (((Fun 𝑆 ∧ (𝑥 + 𝑀) ∈ dom 𝑆) ∧ (𝑥 + 𝑀) ∈ (𝑀..^𝑁)) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁)))
296, 16, 26, 28syl21anc 835 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁)))
3029fmpttd 6872 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁)))
31 fvex 6676 . . . . . . . . . . . 12 (𝑆‘(𝑥 + 𝑀)) ∈ V
32 eqid 2820 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))
3331, 32fnmpti 6484 . . . . . . . . . . 11 (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀))
34 hashfn 13733 . . . . . . . . . . 11 ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀)) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (♯‘(0..^(𝑁𝑀))))
3533, 34mp1i 13 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (♯‘(0..^(𝑁𝑀))))
36 fznn0sub 12936 . . . . . . . . . . 11 (𝑀 ∈ (0...𝑁) → (𝑁𝑀) ∈ ℕ0)
37 hashfzo0 13788 . . . . . . . . . . 11 ((𝑁𝑀) ∈ ℕ0 → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
3836, 37syl 17 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
3935, 38eqtrd 2855 . . . . . . . . 9 (𝑀 ∈ (0...𝑁) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (𝑁𝑀))
4039oveq2d 7165 . . . . . . . 8 (𝑀 ∈ (0...𝑁) → (0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))) = (0..^(𝑁𝑀)))
4140feq2d 6493 . . . . . . 7 (𝑀 ∈ (0...𝑁) → ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁))))
4241ad2antrl 726 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁))))
4330, 42mpbird 259 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)))
44 iswrdb 13864 . . . . 5 ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) ∈ Word (𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)))
4543, 44sylibr 236 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) ∈ Word (𝑆 “ (𝑀..^𝑁)))
462, 45eqeltrd 2912 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
4746expcom 416 . 2 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁))))
48 swrdnd0 14012 . . 3 (𝑆 ∈ Word 𝐴 → (¬ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = ∅))
49 wrd0 13883 . . . 4 ∅ ∈ Word (𝑆 “ (𝑀..^𝑁))
50 eleq1 2899 . . . 4 ((𝑆 substr ⟨𝑀, 𝑁⟩) = ∅ → ((𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)) ↔ ∅ ∈ Word (𝑆 “ (𝑀..^𝑁))))
5149, 50mpbiri 260 . . 3 ((𝑆 substr ⟨𝑀, 𝑁⟩) = ∅ → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
5248, 51syl6com 37 . 2 (¬ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁))))
5347, 52pm2.61i 184 1 (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 208  wa 398   = wceq 1536  wcel 2113  c0 4284  cop 4566  cmpt 5139  dom cdm 5548  cima 5551  Fun wfun 6342   Fn wfn 6343  wf 6344  cfv 6348  (class class class)co 7149  0cc0 10530   + caddc 10533  cmin 10863  0cn0 11891  cz 11975  ...cfz 12889  ..^cfzo 13030  chash 13687  Word cword 13858   substr csubstr 13995
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1795  ax-4 1809  ax-5 1910  ax-6 1969  ax-7 2014  ax-8 2115  ax-9 2123  ax-10 2144  ax-11 2160  ax-12 2176  ax-ext 2792  ax-rep 5183  ax-sep 5196  ax-nul 5203  ax-pow 5259  ax-pr 5323  ax-un 7454  ax-cnex 10586  ax-resscn 10587  ax-1cn 10588  ax-icn 10589  ax-addcl 10590  ax-addrcl 10591  ax-mulcl 10592  ax-mulrcl 10593  ax-mulcom 10594  ax-addass 10595  ax-mulass 10596  ax-distr 10597  ax-i2m1 10598  ax-1ne0 10599  ax-1rid 10600  ax-rnegex 10601  ax-rrecex 10602  ax-cnre 10603  ax-pre-lttri 10604  ax-pre-lttrn 10605  ax-pre-ltadd 10606  ax-pre-mulgt0 10607
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3or 1083  df-3an 1084  df-tru 1539  df-ex 1780  df-nf 1784  df-sb 2069  df-mo 2621  df-eu 2653  df-clab 2799  df-cleq 2813  df-clel 2892  df-nfc 2962  df-ne 3016  df-nel 3123  df-ral 3142  df-rex 3143  df-reu 3144  df-rab 3146  df-v 3493  df-sbc 3769  df-csb 3877  df-dif 3932  df-un 3934  df-in 3936  df-ss 3945  df-pss 3947  df-nul 4285  df-if 4461  df-pw 4534  df-sn 4561  df-pr 4563  df-tp 4565  df-op 4567  df-uni 4832  df-int 4870  df-iun 4914  df-br 5060  df-opab 5122  df-mpt 5140  df-tr 5166  df-id 5453  df-eprel 5458  df-po 5467  df-so 5468  df-fr 5507  df-we 5509  df-xp 5554  df-rel 5555  df-cnv 5556  df-co 5557  df-dm 5558  df-rn 5559  df-res 5560  df-ima 5561  df-pred 6141  df-ord 6187  df-on 6188  df-lim 6189  df-suc 6190  df-iota 6307  df-fun 6350  df-fn 6351  df-f 6352  df-f1 6353  df-fo 6354  df-f1o 6355  df-fv 6356  df-riota 7107  df-ov 7152  df-oprab 7153  df-mpo 7154  df-om 7574  df-1st 7682  df-2nd 7683  df-wrecs 7940  df-recs 8001  df-rdg 8039  df-1o 8095  df-oadd 8099  df-er 8282  df-en 8503  df-dom 8504  df-sdom 8505  df-fin 8506  df-card 9361  df-pnf 10670  df-mnf 10671  df-xr 10672  df-ltxr 10673  df-le 10674  df-sub 10865  df-neg 10866  df-nn 11632  df-n0 11892  df-z 11976  df-uz 12238  df-fz 12890  df-fzo 13031  df-hash 13688  df-word 13859  df-substr 13996
This theorem is referenced by:  pfxwrdsymb  14044
  Copyright terms: Public domain W3C validator