ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  swrdwrdsymbg GIF version

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

Proof of Theorem swrdwrdsymbg
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 swrdval2 11368 . . . 4 ((𝑆 ∈ Word 𝐴𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))
213expb 1231 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑀, 𝑁⟩) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))
3 wrdf 11255 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴𝑆:(0..^(♯‘𝑆))⟶𝐴)
43ffund 5517 . . . . . . . . 9 (𝑆 ∈ Word 𝐴 → Fun 𝑆)
54adantr 276 . . . . . . . 8 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → Fun 𝑆)
65adantr 276 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → Fun 𝑆)
7 wrddm 11257 . . . . . . . . 9 (𝑆 ∈ Word 𝐴 → dom 𝑆 = (0..^(♯‘𝑆)))
8 elfzodifsumelfzo 10568 . . . . . . . . . . . . 13 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
98imp 124 . . . . . . . . . . . 12 (((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆)))
109adantl 277 . . . . . . . . . . 11 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆)))
11 eleq2 2298 . . . . . . . . . . . 12 (dom 𝑆 = (0..^(♯‘𝑆)) → ((𝑥 + 𝑀) ∈ dom 𝑆 ↔ (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
1211adantr 276 . . . . . . . . . . 11 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → ((𝑥 + 𝑀) ∈ dom 𝑆 ↔ (𝑥 + 𝑀) ∈ (0..^(♯‘𝑆))))
1310, 12mpbird 167 . . . . . . . . . 10 ((dom 𝑆 = (0..^(♯‘𝑆)) ∧ ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝑁𝑀)))) → (𝑥 + 𝑀) ∈ dom 𝑆)
1413exp32 365 . . . . . . . . 9 (dom 𝑆 = (0..^(♯‘𝑆)) → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ dom 𝑆)))
157, 14syl 14 . . . . . . . 8 (𝑆 ∈ Word 𝐴 → ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝑁𝑀)) → (𝑥 + 𝑀) ∈ dom 𝑆)))
1615imp31 256 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ dom 𝑆)
17 simpr 110 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑥 ∈ (0..^(𝑁𝑀)))
18 elfzelz 10378 . . . . . . . . . . 11 (𝑁 ∈ (0...(♯‘𝑆)) → 𝑁 ∈ ℤ)
1918adantl 277 . . . . . . . . . 10 ((𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → 𝑁 ∈ ℤ)
2019adantl 277 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → 𝑁 ∈ ℤ)
2120adantr 276 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑁 ∈ ℤ)
22 elfzelz 10378 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → 𝑀 ∈ ℤ)
2322ad2antrl 490 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → 𝑀 ∈ ℤ)
2423adantr 276 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑀 ∈ ℤ)
25 fzoaddel2 10557 . . . . . . . 8 ((𝑥 ∈ (0..^(𝑁𝑀)) ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ) → (𝑥 + 𝑀) ∈ (𝑀..^𝑁))
2617, 21, 24, 25syl3anc 1274 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ (𝑀..^𝑁))
27 funfvima 5923 . . . . . . . 8 ((Fun 𝑆 ∧ (𝑥 + 𝑀) ∈ dom 𝑆) → ((𝑥 + 𝑀) ∈ (𝑀..^𝑁) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁))))
2827imp 124 . . . . . . 7 (((Fun 𝑆 ∧ (𝑥 + 𝑀) ∈ dom 𝑆) ∧ (𝑥 + 𝑀) ∈ (𝑀..^𝑁)) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁)))
296, 16, 26, 28syl21anc 1273 . . . . . 6 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑆‘(𝑥 + 𝑀)) ∈ (𝑆 “ (𝑀..^𝑁)))
3029fmpttd 5837 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁)))
31 simpll 527 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑆 ∈ Word 𝐴)
32 elfzoelz 10503 . . . . . . . . . . . . . 14 (𝑥 ∈ (0..^(𝑁𝑀)) → 𝑥 ∈ ℤ)
3332adantl 277 . . . . . . . . . . . . 13 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → 𝑥 ∈ ℤ)
3433, 24zaddcld 9722 . . . . . . . . . . . 12 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑥 + 𝑀) ∈ ℤ)
35 fvexg 5694 . . . . . . . . . . . 12 ((𝑆 ∈ Word 𝐴 ∧ (𝑥 + 𝑀) ∈ ℤ) → (𝑆‘(𝑥 + 𝑀)) ∈ V)
3631, 34, 35syl2anc 411 . . . . . . . . . . 11 (((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) ∧ 𝑥 ∈ (0..^(𝑁𝑀))) → (𝑆‘(𝑥 + 𝑀)) ∈ V)
3736ralrimiva 2617 . . . . . . . . . 10 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → ∀𝑥 ∈ (0..^(𝑁𝑀))(𝑆‘(𝑥 + 𝑀)) ∈ V)
38 eqid 2234 . . . . . . . . . . 11 (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) = (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))
3938fnmpt 5490 . . . . . . . . . 10 (∀𝑥 ∈ (0..^(𝑁𝑀))(𝑆‘(𝑥 + 𝑀)) ∈ V → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀)))
4037, 39syl 14 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀)))
41 0z 9605 . . . . . . . . . . 11 0 ∈ ℤ
42 elfzel2 10376 . . . . . . . . . . . 12 (𝑀 ∈ (0...𝑁) → 𝑁 ∈ ℤ)
4342, 22zsubcld 9723 . . . . . . . . . . 11 (𝑀 ∈ (0...𝑁) → (𝑁𝑀) ∈ ℤ)
44 fzofig 10818 . . . . . . . . . . 11 ((0 ∈ ℤ ∧ (𝑁𝑀) ∈ ℤ) → (0..^(𝑁𝑀)) ∈ Fin)
4541, 43, 44sylancr 414 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → (0..^(𝑁𝑀)) ∈ Fin)
4645ad2antrl 490 . . . . . . . . 9 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (0..^(𝑁𝑀)) ∈ Fin)
47 fihashfn 11189 . . . . . . . . 9 (((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) Fn (0..^(𝑁𝑀)) ∧ (0..^(𝑁𝑀)) ∈ Fin) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (♯‘(0..^(𝑁𝑀))))
4840, 46, 47syl2anc 411 . . . . . . . 8 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (♯‘(0..^(𝑁𝑀))))
49 fznn0sub 10412 . . . . . . . . . 10 (𝑀 ∈ (0...𝑁) → (𝑁𝑀) ∈ ℕ0)
50 hashfzo0 11213 . . . . . . . . . 10 ((𝑁𝑀) ∈ ℕ0 → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
5149, 50syl 14 . . . . . . . . 9 (𝑀 ∈ (0...𝑁) → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
5251ad2antrl 490 . . . . . . . 8 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (♯‘(0..^(𝑁𝑀))) = (𝑁𝑀))
5348, 52eqtrd 2267 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) = (𝑁𝑀))
5453oveq2d 6074 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))))) = (0..^(𝑁𝑀)))
5554feq2d 5501 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → ((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)) ↔ (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(𝑁𝑀))⟶(𝑆 “ (𝑀..^𝑁))))
5630, 55mpbird 167 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)))
5749ad2antrl 490 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑁𝑀) ∈ ℕ0)
5853, 57eqeltrd 2311 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) ∈ ℕ0)
59 iswrdinn0 11254 . . . 4 (((𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))):(0..^(♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))))⟶(𝑆 “ (𝑀..^𝑁)) ∧ (♯‘(𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀)))) ∈ ℕ0) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) ∈ Word (𝑆 “ (𝑀..^𝑁)))
6056, 58, 59syl2anc 411 . . 3 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑥 ∈ (0..^(𝑁𝑀)) ↦ (𝑆‘(𝑥 + 𝑀))) ∈ Word (𝑆 “ (𝑀..^𝑁)))
612, 60eqeltrd 2311 . 2 ((𝑆 ∈ Word 𝐴 ∧ (𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆)))) → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
62613impb 1226 1 ((𝑆 ∈ Word 𝐴𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
Colors of variables: wff set class
Syntax hints:  wi 4  wa 104  wb 105  w3a 1005   = wceq 1398  wcel 2205  wral 2522  Vcvv 2815  cop 3697  cmpt 4176  dom cdm 4754  cima 4757  Fun wfun 5351   Fn wfn 5352  wf 5353  cfv 5357  (class class class)co 6058  Fincfn 6988  0cc0 8143   + caddc 8146  cmin 8460  0cn0 9513  cz 9594  ...cfz 10361  ..^cfzo 10498  chash 11163  Word cword 11249   substr csubstr 11362
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 619  ax-in2 620  ax-io 717  ax-5 1496  ax-7 1497  ax-gen 1498  ax-ie1 1542  ax-ie2 1543  ax-8 1553  ax-10 1554  ax-11 1555  ax-i12 1556  ax-bndl 1558  ax-4 1559  ax-17 1575  ax-i9 1579  ax-ial 1583  ax-i5r 1584  ax-13 2207  ax-14 2208  ax-ext 2216  ax-coll 4230  ax-sep 4233  ax-nul 4241  ax-pow 4292  ax-pr 4327  ax-un 4559  ax-setind 4664  ax-iinf 4715  ax-cnex 8234  ax-resscn 8235  ax-1cn 8236  ax-1re 8237  ax-icn 8238  ax-addcl 8239  ax-addrcl 8240  ax-mulcl 8241  ax-addcom 8243  ax-addass 8245  ax-distr 8247  ax-i2m1 8248  ax-0lt1 8249  ax-0id 8251  ax-rnegex 8252  ax-cnre 8254  ax-pre-ltirr 8255  ax-pre-ltwlin 8256  ax-pre-lttrn 8257  ax-pre-apti 8258  ax-pre-ltadd 8259
This theorem depends on definitions:  df-bi 117  df-dc 843  df-3or 1006  df-3an 1007  df-tru 1401  df-fal 1404  df-nf 1510  df-sb 1812  df-eu 2085  df-mo 2086  df-clab 2221  df-cleq 2227  df-clel 2230  df-nfc 2375  df-ne 2415  df-nel 2510  df-ral 2527  df-rex 2528  df-reu 2529  df-rab 2531  df-v 2817  df-sbc 3046  df-csb 3142  df-dif 3216  df-un 3218  df-in 3220  df-ss 3227  df-nul 3513  df-if 3625  df-pw 3676  df-sn 3700  df-pr 3701  df-op 3703  df-uni 3920  df-int 3955  df-iun 3998  df-br 4115  df-opab 4177  df-mpt 4178  df-tr 4214  df-id 4419  df-iord 4492  df-on 4494  df-ilim 4495  df-suc 4497  df-iom 4718  df-xp 4760  df-rel 4761  df-cnv 4762  df-co 4763  df-dm 4764  df-rn 4765  df-res 4766  df-ima 4767  df-iota 5317  df-fun 5359  df-fn 5360  df-f 5361  df-f1 5362  df-fo 5363  df-f1o 5364  df-fv 5365  df-riota 6011  df-ov 6061  df-oprab 6062  df-mpo 6063  df-1st 6347  df-2nd 6348  df-recs 6549  df-frec 6635  df-1o 6660  df-er 6780  df-en 6989  df-dom 6990  df-fin 6991  df-pnf 8326  df-mnf 8327  df-xr 8328  df-ltxr 8329  df-le 8330  df-sub 8462  df-neg 8463  df-inn 9255  df-n0 9514  df-z 9595  df-uz 9872  df-fz 10362  df-fzo 10499  df-ihash 11164  df-word 11250  df-substr 11363
This theorem is referenced by:  pfxwrdsymbg  11407
  Copyright terms: Public domain W3C validator