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

Theorem swrdwrdsymb 14447
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 14431 . . . . 5 ((𝑆 ∈ Word 𝐴𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))
213expb 1119 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))
3 wrdf 14294 . . . . . . . . . . 11 (𝑆 ∈ Word 𝐴𝑆:(0..^(♯‘𝑆))⟶𝐴)
43ffund 6641 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴 → Fun 𝑆)
54adantr 481 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → Fun 𝑆)
65adantr 481 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → Fun 𝑆)
7 wrddm 14296 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴 → dom 𝑆 = (0..^(♯‘𝑆)))
8 elfzodifsumelfzo 13526 . . . . . . . . . . . . . 14 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
98imp 407 . . . . . . . . . . . . 13 (((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆)))
109adantl 482 . . . . . . . . . . . 12 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆)))
11 eleq2 2826 . . . . . . . . . . . . 13 (dom 𝑆 = (0..^(♯‘𝑆)) → ((𝑥 + 𝑀) ∈ dom 𝑆 ↔ (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
1211adantr 481 . . . . . . . . . . . 12 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → ((𝑥 + 𝑀) ∈ dom 𝑆 ↔ (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
1310, 12mpbird 256 . . . . . . . . . . 11 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → (𝑥 + 𝑀) ∈ dom 𝑆)
1413exp32 421 . . . . . . . . . 10 (dom 𝑆 = (0..^(♯‘𝑆)) → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ dom 𝑆)))
157, 14syl 17 . . . . . . . . 9 (𝑆 ∈ Word 𝐴 → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ dom 𝑆)))
1615imp31 418 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ dom 𝑆)
17 simpr 485 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑥 ∈ (0..^(𝑁𝑀)))
18 elfzelz 13329 . . . . . . . . . . . 12 (𝑁 ∈ (0...(♯‘𝑆)) → 𝑁 ∈ ℤ)
1918adantl 482 . . . . . . . . . . 11 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → 𝑁 ∈ ℤ)
2019adantl 482 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → 𝑁 ∈ ℤ)
2120adantr 481 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑁 ∈ ℤ)
22 elfzelz 13329 . . . . . . . . . . 11 (𝑀 ∈ (0...𝑁) → 𝑀 ∈ ℤ)
2322ad2antrl 725 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → 𝑀 ∈ ℤ)
2423adantr 481 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑀 ∈ ℤ)
25 fzoaddel2 13516 . . . . . . . . 9 ((𝑥 ∈ (0..^(𝑁𝑀)) ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ) → (𝑥 + 𝑀) ∈ (𝑀..^𝑁))
2617, 21, 24, 25syl3anc 1370 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ (𝑀..^𝑁))
27 funfvima 7145 . . . . . . . . 9 ((Fun 𝑆 ∧ (𝑥 + 𝑀) ∈ dom 𝑆) → ((𝑥 + 𝑀) ∈ (𝑀..^𝑁) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁))))
2827imp 407 . . . . . . . 8 (((Fun 𝑆 ∧ (𝑥 + 𝑀) ∈ dom 𝑆) ∧ (𝑥 + 𝑀) ∈ (𝑀..^𝑁)) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁)))
296, 16, 26, 28syl21anc 835 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁)))
3029fmpttd 7028 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁)))
31 fvex 6824 . . . . . . . . . . . 12 (𝑆‘(𝑥 + 𝑀)) ∈ V
32 eqid 2737 . . . . . . . . . . . 12 (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))
3331, 32fnmpti 6613 . . . . . . . . . . 11 (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀))
34 hashfn 14162 . . . . . . . . . . 11 ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀)) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (♯‘(0..^(𝑁𝑀))))
3533, 34mp1i 13 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (♯‘(0..^(𝑁𝑀))))
36 fznn0sub 13361 . . . . . . . . . . 11 (𝑀 ∈ (0...𝑁) → (𝑁𝑀) ∈ ℕ0)
37 hashfzo0 14217 . . . . . . . . . . 11 ((𝑁𝑀) ∈ ℕ0 → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
3836, 37syl 17 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
3935, 38eqtrd 2777 . . . . . . . . 9 (𝑀 ∈ (0...𝑁) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (𝑁𝑀))
4039oveq2d 7331 . . . . . . . 8 (𝑀 ∈ (0...𝑁) → (0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))) = (0..^(𝑁𝑀)))
4140feq2d 6623 . . . . . . 7 (𝑀 ∈ (0...𝑁) → ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁))))
4241ad2antrl 725 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁))))
4330, 42mpbird 256 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)))
44 iswrdb 14295 . . . . 5 ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) ∈ Word (𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)))
4543, 44sylibr 233 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) ∈ Word (𝑆 “ (𝑀..^𝑁)))
462, 45eqeltrd 2838 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
4746expcom 414 . 2 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 ∈ Word 𝐴 → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁))))
48 swrdnd0 14442 . . 3 (𝑆 ∈ Word 𝐴 → (¬ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = ∅))
49 wrd0 14314 . . . 4 ∅ ∈ Word (𝑆 “ (𝑀..^𝑁))
50 eleq1 2825 . . . 4 ((𝑆 substr ⟨𝑀, 𝑁⟩) = ∅ → ((𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)) ↔ ∅ ∈ Word (𝑆 “ (𝑀..^𝑁))))
5149, 50mpbiri 257 . . 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 205  wa 396   = wceq 1540  wcel 2105  c0 4267  cop 4577  cmpt 5170  dom cdm 5607  cima 5610  Fun wfun 6459   Fn wfn 6460  wf 6461  cfv 6465  (class class class)co 7315  0cc0 10944   + caddc 10947  cmin 11278  0cn0 12306  cz 12392  ...cfz 13312  ..^cfzo 13455  chash 14117  Word cword 14289   substr csubstr 14425
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 1912  ax-6 1970  ax-7 2010  ax-8 2107  ax-9 2115  ax-10 2136  ax-11 2153  ax-12 2170  ax-ext 2708  ax-rep 5224  ax-sep 5238  ax-nul 5245  ax-pow 5303  ax-pr 5367  ax-un 7628  ax-cnex 11000  ax-resscn 11001  ax-1cn 11002  ax-icn 11003  ax-addcl 11004  ax-addrcl 11005  ax-mulcl 11006  ax-mulrcl 11007  ax-mulcom 11008  ax-addass 11009  ax-mulass 11010  ax-distr 11011  ax-i2m1 11012  ax-1ne0 11013  ax-1rid 11014  ax-rnegex 11015  ax-rrecex 11016  ax-cnre 11017  ax-pre-lttri 11018  ax-pre-lttrn 11019  ax-pre-ltadd 11020  ax-pre-mulgt0 11021
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 845  df-3or 1087  df-3an 1088  df-tru 1543  df-fal 1553  df-ex 1781  df-nf 1785  df-sb 2067  df-mo 2539  df-eu 2568  df-clab 2715  df-cleq 2729  df-clel 2815  df-nfc 2887  df-ne 2942  df-nel 3048  df-ral 3063  df-rex 3072  df-reu 3351  df-rab 3405  df-v 3443  df-sbc 3727  df-csb 3843  df-dif 3900  df-un 3902  df-in 3904  df-ss 3914  df-pss 3916  df-nul 4268  df-if 4472  df-pw 4547  df-sn 4572  df-pr 4574  df-op 4578  df-uni 4851  df-int 4893  df-iun 4939  df-br 5088  df-opab 5150  df-mpt 5171  df-tr 5205  df-id 5507  df-eprel 5513  df-po 5521  df-so 5522  df-fr 5562  df-we 5564  df-xp 5613  df-rel 5614  df-cnv 5615  df-co 5616  df-dm 5617  df-rn 5618  df-res 5619  df-ima 5620  df-pred 6224  df-ord 6291  df-on 6292  df-lim 6293  df-suc 6294  df-iota 6417  df-fun 6467  df-fn 6468  df-f 6469  df-f1 6470  df-fo 6471  df-f1o 6472  df-fv 6473  df-riota 7272  df-ov 7318  df-oprab 7319  df-mpo 7320  df-om 7758  df-1st 7876  df-2nd 7877  df-frecs 8144  df-wrecs 8175  df-recs 8249  df-rdg 8288  df-1o 8344  df-er 8546  df-en 8782  df-dom 8783  df-sdom 8784  df-fin 8785  df-card 9768  df-pnf 11084  df-mnf 11085  df-xr 11086  df-ltxr 11087  df-le 11088  df-sub 11280  df-neg 11281  df-nn 12047  df-n0 12307  df-z 12393  df-uz 12656  df-fz 13313  df-fzo 13456  df-hash 14118  df-word 14290  df-substr 14426
This theorem is referenced by:  pfxwrdsymb  14474
  Copyright terms: Public domain W3C validator