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

Theorem swrdwrdsymb 14700
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 14684 . . . . 5 ((𝑆 ∈ Word 𝐴𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))
213expb 1121 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))
3 wrdf 14557 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐴𝑆:(0..^(♯‘𝑆))⟶𝐴)
43ffund 6740 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴 → Fun 𝑆)
54adantr 480 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → Fun 𝑆)
65adantr 480 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → Fun 𝑆)
7 wrddm 14559 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴 → dom 𝑆 = (0..^(♯‘𝑆)))
8 elfzodifsumelfzo 13770 . . . . . . . . . . . . . 14 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
98imp 406 . . . . . . . . . . . . 13 (((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆)))
109adantl 481 . . . . . . . . . . . 12 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆)))
11 eleq2 2830 . . . . . . . . . . . . 13 (dom 𝑆 = (0..^(♯‘𝑆)) → ((𝑥 + 𝑀) ∈ dom 𝑆 ↔ (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
1211adantr 480 . . . . . . . . . . . 12 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → ((𝑥 + 𝑀) ∈ dom 𝑆 ↔ (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
1310, 12mpbird 257 . . . . . . . . . . 11 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → (𝑥 + 𝑀) ∈ dom 𝑆)
1413exp32 420 . . . . . . . . . 10 (dom 𝑆 = (0..^(♯‘𝑆)) → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ dom 𝑆)))
157, 14syl 17 . . . . . . . . 9 (𝑆 ∈ Word 𝐴 → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ dom 𝑆)))
1615imp31 417 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ dom 𝑆)
17 simpr 484 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑥 ∈ (0..^(𝑁𝑀)))
18 elfzelz 13564 . . . . . . . . . . . 12 (𝑁 ∈ (0...(♯‘𝑆)) → 𝑁 ∈ ℤ)
1918adantl 481 . . . . . . . . . . 11 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → 𝑁 ∈ ℤ)
2019adantl 481 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → 𝑁 ∈ ℤ)
2120adantr 480 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑁 ∈ ℤ)
22 elfzelz 13564 . . . . . . . . . . 11 (𝑀 ∈ (0...𝑁) → 𝑀 ∈ ℤ)
2322ad2antrl 728 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → 𝑀 ∈ ℤ)
2423adantr 480 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑀 ∈ ℤ)
25 fzoaddel2 13759 . . . . . . . . 9 ((𝑥 ∈ (0..^(𝑁𝑀)) ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ) → (𝑥 + 𝑀) ∈ (𝑀..^𝑁))
2617, 21, 24, 25syl3anc 1373 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ (𝑀..^𝑁))
27 funfvima 7250 . . . . . . . . 9 ((Fun 𝑆 ∧ (𝑥 + 𝑀) ∈ dom 𝑆) → ((𝑥 + 𝑀) ∈ (𝑀..^𝑁) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁))))
2827imp 406 . . . . . . . 8 (((Fun 𝑆 ∧ (𝑥 + 𝑀) ∈ dom 𝑆) ∧ (𝑥 + 𝑀) ∈ (𝑀..^𝑁)) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁)))
296, 16, 26, 28syl21anc 838 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁)))
3029fmpttd 7135 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁)))
31 fvex 6919 . . . . . . . . . . . 12 (𝑆‘(𝑥 + 𝑀)) ∈ V
32 eqid 2737 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))
3331, 32fnmpti 6711 . . . . . . . . . . 11 (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀))
34 hashfn 14414 . . . . . . . . . . 11 ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀)) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (♯‘(0..^(𝑁𝑀))))
3533, 34mp1i 13 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (♯‘(0..^(𝑁𝑀))))
36 fznn0sub 13596 . . . . . . . . . . 11 (𝑀 ∈ (0...𝑁) → (𝑁𝑀) ∈ ℕ0)
37 hashfzo0 14469 . . . . . . . . . . 11 ((𝑁𝑀) ∈ ℕ0 → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
3836, 37syl 17 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
3935, 38eqtrd 2777 . . . . . . . . 9 (𝑀 ∈ (0...𝑁) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (𝑁𝑀))
4039oveq2d 7447 . . . . . . . 8 (𝑀 ∈ (0...𝑁) → (0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))) = (0..^(𝑁𝑀)))
4140feq2d 6722 . . . . . . 7 (𝑀 ∈ (0...𝑁) → ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁))))
4241ad2antrl 728 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁))))
4330, 42mpbird 257 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)))
44 iswrdb 14558 . . . . 5 ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) ∈ Word (𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)))
4543, 44sylibr 234 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) ∈ Word (𝑆 “ (𝑀..^𝑁)))
462, 45eqeltrd 2841 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
4746expcom 413 . 2 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁))))
48 swrdnd0 14695 . . 3 (𝑆 ∈ Word 𝐴 → (¬ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = ∅))
49 wrd0 14577 . . . 4 ∅ ∈ Word (𝑆 “ (𝑀..^𝑁))
50 eleq1 2829 . . . 4 ((𝑆 substr ⟨𝑀, 𝑁⟩) = ∅ → ((𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)) ↔ ∅ ∈ Word (𝑆 “ (𝑀..^𝑁))))
5149, 50mpbiri 258 . . 3 ((𝑆 substr ⟨𝑀, 𝑁⟩) = ∅ → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
5248, 51syl6com 37 . 2 (¬ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁))))
5347, 52pm2.61i 182 1 (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395   = wceq 1540  wcel 2108  c0 4333  cop 4632  cmpt 5225  dom cdm 5685  cima 5688  Fun wfun 6555   Fn wfn 6556  wf 6557  cfv 6561  (class class class)co 7431  0cc0 11155   + caddc 11158  cmin 11492  0cn0 12526  cz 12613  ...cfz 13547  ..^cfzo 13694  chash 14369  Word cword 14552   substr csubstr 14678
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 1967  ax-7 2007  ax-8 2110  ax-9 2118  ax-10 2141  ax-11 2157  ax-12 2177  ax-ext 2708  ax-rep 5279  ax-sep 5296  ax-nul 5306  ax-pow 5365  ax-pr 5432  ax-un 7755  ax-cnex 11211  ax-resscn 11212  ax-1cn 11213  ax-icn 11214  ax-addcl 11215  ax-addrcl 11216  ax-mulcl 11217  ax-mulrcl 11218  ax-mulcom 11219  ax-addass 11220  ax-mulass 11221  ax-distr 11222  ax-i2m1 11223  ax-1ne0 11224  ax-1rid 11225  ax-rnegex 11226  ax-rrecex 11227  ax-cnre 11228  ax-pre-lttri 11229  ax-pre-lttrn 11230  ax-pre-ltadd 11231  ax-pre-mulgt0 11232
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3or 1088  df-3an 1089  df-tru 1543  df-fal 1553  df-ex 1780  df-nf 1784  df-sb 2065  df-mo 2540  df-eu 2569  df-clab 2715  df-cleq 2729  df-clel 2816  df-nfc 2892  df-ne 2941  df-nel 3047  df-ral 3062  df-rex 3071  df-reu 3381  df-rab 3437  df-v 3482  df-sbc 3789  df-csb 3900  df-dif 3954  df-un 3956  df-in 3958  df-ss 3968  df-pss 3971  df-nul 4334  df-if 4526  df-pw 4602  df-sn 4627  df-pr 4629  df-op 4633  df-uni 4908  df-int 4947  df-iun 4993  df-br 5144  df-opab 5206  df-mpt 5226  df-tr 5260  df-id 5578  df-eprel 5584  df-po 5592  df-so 5593  df-fr 5637  df-we 5639  df-xp 5691  df-rel 5692  df-cnv 5693  df-co 5694  df-dm 5695  df-rn 5696  df-res 5697  df-ima 5698  df-pred 6321  df-ord 6387  df-on 6388  df-lim 6389  df-suc 6390  df-iota 6514  df-fun 6563  df-fn 6564  df-f 6565  df-f1 6566  df-fo 6567  df-f1o 6568  df-fv 6569  df-riota 7388  df-ov 7434  df-oprab 7435  df-mpo 7436  df-om 7888  df-1st 8014  df-2nd 8015  df-frecs 8306  df-wrecs 8337  df-recs 8411  df-rdg 8450  df-1o 8506  df-er 8745  df-en 8986  df-dom 8987  df-sdom 8988  df-fin 8989  df-card 9979  df-pnf 11297  df-mnf 11298  df-xr 11299  df-ltxr 11300  df-le 11301  df-sub 11494  df-neg 11495  df-nn 12267  df-n0 12527  df-z 12614  df-uz 12879  df-fz 13548  df-fzo 13695  df-hash 14370  df-word 14553  df-substr 14679
This theorem is referenced by:  pfxwrdsymb  14727
  Copyright terms: Public domain W3C validator