| Step | Hyp | Ref
| Expression |
| 1 | | simpl1 1003 |
. . . . . . 7
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → 𝑆 ∈ Word 𝐴) |
| 2 | | elfzoelz 10269 |
. . . . . . . . 9
⊢ (𝑥 ∈ (0..^(𝐿 − 𝐹)) → 𝑥 ∈ ℤ) |
| 3 | 2 | adantl 277 |
. . . . . . . 8
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → 𝑥 ∈ ℤ) |
| 4 | | elfzelz 10147 |
. . . . . . . . . 10
⊢ (𝐹 ∈ (0...𝐿) → 𝐹 ∈ ℤ) |
| 5 | 4 | 3ad2ant2 1022 |
. . . . . . . . 9
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → 𝐹 ∈ ℤ) |
| 6 | 5 | adantr 276 |
. . . . . . . 8
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → 𝐹 ∈ ℤ) |
| 7 | 3, 6 | zaddcld 9499 |
. . . . . . 7
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑥 + 𝐹) ∈ ℤ) |
| 8 | | fvexg 5595 |
. . . . . . 7
⊢ ((𝑆 ∈ Word 𝐴 ∧ (𝑥 + 𝐹) ∈ ℤ) → (𝑆‘(𝑥 + 𝐹)) ∈ V) |
| 9 | 1, 7, 8 | syl2anc 411 |
. . . . . 6
⊢ (((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) ∧ 𝑥 ∈ (0..^(𝐿 − 𝐹))) → (𝑆‘(𝑥 + 𝐹)) ∈ V) |
| 10 | 9 | ralrimiva 2579 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → ∀𝑥 ∈ (0..^(𝐿 − 𝐹))(𝑆‘(𝑥 + 𝐹)) ∈ V) |
| 11 | | eqid 2205 |
. . . . . 6
⊢ (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) = (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) |
| 12 | 11 | fnmpt 5402 |
. . . . 5
⊢
(∀𝑥 ∈
(0..^(𝐿 − 𝐹))(𝑆‘(𝑥 + 𝐹)) ∈ V → (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) Fn (0..^(𝐿 − 𝐹))) |
| 13 | 10, 12 | syl 14 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) Fn (0..^(𝐿 − 𝐹))) |
| 14 | | swrdval2 11104 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (𝑆 substr 〈𝐹, 𝐿〉) = (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹)))) |
| 15 | 14 | fneq1d 5364 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → ((𝑆 substr 〈𝐹, 𝐿〉) Fn (0..^(𝐿 − 𝐹)) ↔ (𝑥 ∈ (0..^(𝐿 − 𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))) Fn (0..^(𝐿 − 𝐹)))) |
| 16 | 13, 15 | mpbird 167 |
. . 3
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (𝑆 substr 〈𝐹, 𝐿〉) Fn (0..^(𝐿 − 𝐹))) |
| 17 | | 0z 9383 |
. . . 4
⊢ 0 ∈
ℤ |
| 18 | | elfzelz 10147 |
. . . . . 6
⊢ (𝐿 ∈
(0...(♯‘𝑆))
→ 𝐿 ∈
ℤ) |
| 19 | 18 | 3ad2ant3 1023 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → 𝐿 ∈ ℤ) |
| 20 | 19, 5 | zsubcld 9500 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (𝐿 − 𝐹) ∈ ℤ) |
| 21 | | fzofig 10577 |
. . . 4
⊢ ((0
∈ ℤ ∧ (𝐿
− 𝐹) ∈ ℤ)
→ (0..^(𝐿 −
𝐹)) ∈
Fin) |
| 22 | 17, 20, 21 | sylancr 414 |
. . 3
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (0..^(𝐿 − 𝐹)) ∈ Fin) |
| 23 | | fihashfn 10945 |
. . 3
⊢ (((𝑆 substr 〈𝐹, 𝐿〉) Fn (0..^(𝐿 − 𝐹)) ∧ (0..^(𝐿 − 𝐹)) ∈ Fin) → (♯‘(𝑆 substr 〈𝐹, 𝐿〉)) = (♯‘(0..^(𝐿 − 𝐹)))) |
| 24 | 16, 22, 23 | syl2anc 411 |
. 2
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (♯‘(𝑆 substr 〈𝐹, 𝐿〉)) = (♯‘(0..^(𝐿 − 𝐹)))) |
| 25 | | fznn0sub 10179 |
. . . 4
⊢ (𝐹 ∈ (0...𝐿) → (𝐿 − 𝐹) ∈
ℕ0) |
| 26 | 25 | 3ad2ant2 1022 |
. . 3
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (𝐿 − 𝐹) ∈
ℕ0) |
| 27 | | hashfzo0 10968 |
. . 3
⊢ ((𝐿 − 𝐹) ∈ ℕ0 →
(♯‘(0..^(𝐿
− 𝐹))) = (𝐿 − 𝐹)) |
| 28 | 26, 27 | syl 14 |
. 2
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) →
(♯‘(0..^(𝐿
− 𝐹))) = (𝐿 − 𝐹)) |
| 29 | 24, 28 | eqtrd 2238 |
1
⊢ ((𝑆 ∈ Word 𝐴 ∧ 𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (♯‘(𝑆 substr 〈𝐹, 𝐿〉)) = (𝐿 − 𝐹)) |