| Step | Hyp | Ref | Expression | 
|---|
| 1 |  | simpr 484 | . . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑖 ∈ (0..^(𝑁 − 𝑀))) → 𝑖 ∈ (0..^(𝑁 − 𝑀))) | 
| 2 |  | simpl3 1193 | . . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑖 ∈ (0..^(𝑁 − 𝑀))) → 𝑁 ∈ (0...(♯‘𝑊))) | 
| 3 | 2 | elfzelzd 13566 | . . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑖 ∈ (0..^(𝑁 − 𝑀))) → 𝑁 ∈ ℤ) | 
| 4 |  | simpl2 1192 | . . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑖 ∈ (0..^(𝑁 − 𝑀))) → 𝑀 ∈ (0...𝑁)) | 
| 5 | 4 | elfzelzd 13566 | . . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑖 ∈ (0..^(𝑁 − 𝑀))) → 𝑀 ∈ ℤ) | 
| 6 |  | fzoaddel2 13760 | . . . . . 6
⊢ ((𝑖 ∈ (0..^(𝑁 − 𝑀)) ∧ 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ) → (𝑖 + 𝑀) ∈ (𝑀..^𝑁)) | 
| 7 | 1, 3, 5, 6 | syl3anc 1372 | . . . . 5
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑖 ∈ (0..^(𝑁 − 𝑀))) → (𝑖 + 𝑀) ∈ (𝑀..^𝑁)) | 
| 8 |  | simpr 484 | . . . . . . . 8
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑗 ∈ (𝑀..^𝑁)) | 
| 9 |  | simpl2 1192 | . . . . . . . . . . . 12
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑀 ∈ (0...𝑁)) | 
| 10 | 9 | elfzelzd 13566 | . . . . . . . . . . 11
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑀 ∈ ℤ) | 
| 11 | 10 | zcnd 12725 | . . . . . . . . . 10
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑀 ∈ ℂ) | 
| 12 |  | simpl3 1193 | . . . . . . . . . . . 12
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑁 ∈ (0...(♯‘𝑊))) | 
| 13 | 12 | elfzelzd 13566 | . . . . . . . . . . 11
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑁 ∈ ℤ) | 
| 14 | 13 | zcnd 12725 | . . . . . . . . . 10
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑁 ∈ ℂ) | 
| 15 | 11, 14 | pncan3d 11624 | . . . . . . . . 9
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → (𝑀 + (𝑁 − 𝑀)) = 𝑁) | 
| 16 | 15 | oveq2d 7448 | . . . . . . . 8
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → (𝑀..^(𝑀 + (𝑁 − 𝑀))) = (𝑀..^𝑁)) | 
| 17 | 8, 16 | eleqtrrd 2843 | . . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑗 ∈ (𝑀..^(𝑀 + (𝑁 − 𝑀)))) | 
| 18 | 13, 10 | zsubcld 12729 | . . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → (𝑁 − 𝑀) ∈ ℤ) | 
| 19 |  | fzosubel3 13766 | . . . . . . 7
⊢ ((𝑗 ∈ (𝑀..^(𝑀 + (𝑁 − 𝑀))) ∧ (𝑁 − 𝑀) ∈ ℤ) → (𝑗 − 𝑀) ∈ (0..^(𝑁 − 𝑀))) | 
| 20 | 17, 18, 19 | syl2anc 584 | . . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → (𝑗 − 𝑀) ∈ (0..^(𝑁 − 𝑀))) | 
| 21 |  | simpr 484 | . . . . . . . 8
⊢ ((((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) ∧ 𝑖 = (𝑗 − 𝑀)) → 𝑖 = (𝑗 − 𝑀)) | 
| 22 | 21 | oveq1d 7447 | . . . . . . 7
⊢ ((((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) ∧ 𝑖 = (𝑗 − 𝑀)) → (𝑖 + 𝑀) = ((𝑗 − 𝑀) + 𝑀)) | 
| 23 | 22 | eqeq2d 2747 | . . . . . 6
⊢ ((((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) ∧ 𝑖 = (𝑗 − 𝑀)) → (𝑗 = (𝑖 + 𝑀) ↔ 𝑗 = ((𝑗 − 𝑀) + 𝑀))) | 
| 24 |  | fzossz 13720 | . . . . . . . . . 10
⊢ (𝑀..^𝑁) ⊆ ℤ | 
| 25 | 24, 8 | sselid 3980 | . . . . . . . . 9
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑗 ∈ ℤ) | 
| 26 | 25 | zcnd 12725 | . . . . . . . 8
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑗 ∈ ℂ) | 
| 27 | 26, 11 | npcand 11625 | . . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → ((𝑗 − 𝑀) + 𝑀) = 𝑗) | 
| 28 | 27 | eqcomd 2742 | . . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → 𝑗 = ((𝑗 − 𝑀) + 𝑀)) | 
| 29 | 20, 23, 28 | rspcedvd 3623 | . . . . 5
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 ∈ (𝑀..^𝑁)) → ∃𝑖 ∈ (0..^(𝑁 − 𝑀))𝑗 = (𝑖 + 𝑀)) | 
| 30 |  | eqcom 2743 | . . . . . 6
⊢ (𝑦 = (𝑊‘𝑗) ↔ (𝑊‘𝑗) = 𝑦) | 
| 31 |  | simpr 484 | . . . . . . . 8
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 = (𝑖 + 𝑀)) → 𝑗 = (𝑖 + 𝑀)) | 
| 32 | 31 | fveq2d 6909 | . . . . . . 7
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 = (𝑖 + 𝑀)) → (𝑊‘𝑗) = (𝑊‘(𝑖 + 𝑀))) | 
| 33 | 32 | eqeq2d 2747 | . . . . . 6
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 = (𝑖 + 𝑀)) → (𝑦 = (𝑊‘𝑗) ↔ 𝑦 = (𝑊‘(𝑖 + 𝑀)))) | 
| 34 | 30, 33 | bitr3id 285 | . . . . 5
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) ∧ 𝑗 = (𝑖 + 𝑀)) → ((𝑊‘𝑗) = 𝑦 ↔ 𝑦 = (𝑊‘(𝑖 + 𝑀)))) | 
| 35 | 7, 29, 34 | rexxfrd 5408 | . . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (∃𝑗 ∈ (𝑀..^𝑁)(𝑊‘𝑗) = 𝑦 ↔ ∃𝑖 ∈ (0..^(𝑁 − 𝑀))𝑦 = (𝑊‘(𝑖 + 𝑀)))) | 
| 36 |  | eqid 2736 | . . . . 5
⊢ (𝑖 ∈ (0..^(𝑁 − 𝑀)) ↦ (𝑊‘(𝑖 + 𝑀))) = (𝑖 ∈ (0..^(𝑁 − 𝑀)) ↦ (𝑊‘(𝑖 + 𝑀))) | 
| 37 |  | fvex 6918 | . . . . 5
⊢ (𝑊‘(𝑖 + 𝑀)) ∈ V | 
| 38 | 36, 37 | elrnmpti 5972 | . . . 4
⊢ (𝑦 ∈ ran (𝑖 ∈ (0..^(𝑁 − 𝑀)) ↦ (𝑊‘(𝑖 + 𝑀))) ↔ ∃𝑖 ∈ (0..^(𝑁 − 𝑀))𝑦 = (𝑊‘(𝑖 + 𝑀))) | 
| 39 | 35, 38 | bitr4di 289 | . . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (∃𝑗 ∈ (𝑀..^𝑁)(𝑊‘𝑗) = 𝑦 ↔ 𝑦 ∈ ran (𝑖 ∈ (0..^(𝑁 − 𝑀)) ↦ (𝑊‘(𝑖 + 𝑀))))) | 
| 40 |  | wrdf 14558 | . . . . . 6
⊢ (𝑊 ∈ Word 𝑉 → 𝑊:(0..^(♯‘𝑊))⟶𝑉) | 
| 41 | 40 | 3ad2ant1 1133 | . . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → 𝑊:(0..^(♯‘𝑊))⟶𝑉) | 
| 42 | 41 | ffnd 6736 | . . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → 𝑊 Fn (0..^(♯‘𝑊))) | 
| 43 |  | elfzuz 13561 | . . . . . . 7
⊢ (𝑀 ∈ (0...𝑁) → 𝑀 ∈
(ℤ≥‘0)) | 
| 44 | 43 | 3ad2ant2 1134 | . . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → 𝑀 ∈
(ℤ≥‘0)) | 
| 45 |  | fzoss1 13727 | . . . . . 6
⊢ (𝑀 ∈
(ℤ≥‘0) → (𝑀..^𝑁) ⊆ (0..^𝑁)) | 
| 46 | 44, 45 | syl 17 | . . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (𝑀..^𝑁) ⊆ (0..^𝑁)) | 
| 47 |  | elfzuz3 13562 | . . . . . . 7
⊢ (𝑁 ∈
(0...(♯‘𝑊))
→ (♯‘𝑊)
∈ (ℤ≥‘𝑁)) | 
| 48 | 47 | 3ad2ant3 1135 | . . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (♯‘𝑊) ∈
(ℤ≥‘𝑁)) | 
| 49 |  | fzoss2 13728 | . . . . . 6
⊢
((♯‘𝑊)
∈ (ℤ≥‘𝑁) → (0..^𝑁) ⊆ (0..^(♯‘𝑊))) | 
| 50 | 48, 49 | syl 17 | . . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (0..^𝑁) ⊆
(0..^(♯‘𝑊))) | 
| 51 | 46, 50 | sstrd 3993 | . . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (𝑀..^𝑁) ⊆ (0..^(♯‘𝑊))) | 
| 52 | 42, 51 | fvelimabd 6981 | . . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (𝑦 ∈ (𝑊 “ (𝑀..^𝑁)) ↔ ∃𝑗 ∈ (𝑀..^𝑁)(𝑊‘𝑗) = 𝑦)) | 
| 53 |  | swrdval2 14685 | . . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (𝑊 substr 〈𝑀, 𝑁〉) = (𝑖 ∈ (0..^(𝑁 − 𝑀)) ↦ (𝑊‘(𝑖 + 𝑀)))) | 
| 54 | 53 | rneqd 5948 | . . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → ran (𝑊 substr 〈𝑀, 𝑁〉) = ran (𝑖 ∈ (0..^(𝑁 − 𝑀)) ↦ (𝑊‘(𝑖 + 𝑀)))) | 
| 55 | 54 | eleq2d 2826 | . . 3
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (𝑦 ∈ ran (𝑊 substr 〈𝑀, 𝑁〉) ↔ 𝑦 ∈ ran (𝑖 ∈ (0..^(𝑁 − 𝑀)) ↦ (𝑊‘(𝑖 + 𝑀))))) | 
| 56 | 39, 52, 55 | 3bitr4rd 312 | . 2
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (𝑦 ∈ ran (𝑊 substr 〈𝑀, 𝑁〉) ↔ 𝑦 ∈ (𝑊 “ (𝑀..^𝑁)))) | 
| 57 | 56 | eqrdv 2734 | 1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → ran (𝑊 substr 〈𝑀, 𝑁〉) = (𝑊 “ (𝑀..^𝑁))) |