Proof of Theorem pfxswrd
| Step | Hyp | Ref
| Expression |
| 1 | | simp1 1000 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → 𝑊 ∈ Word 𝑉) |
| 2 | | elfzelz 10154 |
. . . . . 6
⊢ (𝑀 ∈ (0...𝑁) → 𝑀 ∈ ℤ) |
| 3 | 2 | 3ad2ant3 1023 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → 𝑀 ∈ ℤ) |
| 4 | | elfzel2 10152 |
. . . . . 6
⊢ (𝑀 ∈ (0...𝑁) → 𝑁 ∈ ℤ) |
| 5 | 4 | 3ad2ant3 1023 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → 𝑁 ∈ ℤ) |
| 6 | | swrdclg 11111 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ℤ ∧ 𝑁 ∈ ℤ) → (𝑊 substr 〈𝑀, 𝑁〉) ∈ Word 𝑉) |
| 7 | 1, 3, 5, 6 | syl3anc 1250 |
. . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝑊 substr 〈𝑀, 𝑁〉) ∈ Word 𝑉) |
| 8 | | elfznn0 10243 |
. . . 4
⊢ (𝐿 ∈ (0...(𝑁 − 𝑀)) → 𝐿 ∈
ℕ0) |
| 9 | | pfxval 11135 |
. . . 4
⊢ (((𝑊 substr 〈𝑀, 𝑁〉) ∈ Word 𝑉 ∧ 𝐿 ∈ ℕ0) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉)) |
| 10 | 7, 8, 9 | syl2an 289 |
. . 3
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉)) |
| 11 | | fznn0sub 10186 |
. . . . . . 7
⊢ (𝑀 ∈ (0...𝑁) → (𝑁 − 𝑀) ∈
ℕ0) |
| 12 | 11 | 3ad2ant3 1023 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝑁 − 𝑀) ∈
ℕ0) |
| 13 | | 0elfz 10247 |
. . . . . 6
⊢ ((𝑁 − 𝑀) ∈ ℕ0 → 0 ∈
(0...(𝑁 − 𝑀))) |
| 14 | 12, 13 | syl 14 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → 0 ∈ (0...(𝑁 − 𝑀))) |
| 15 | 14 | anim1i 340 |
. . . 4
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → (0 ∈ (0...(𝑁 − 𝑀)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀)))) |
| 16 | | swrdswrd 11164 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → ((0 ∈ (0...(𝑁 − 𝑀)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉) = (𝑊 substr 〈(𝑀 + 0), (𝑀 + 𝐿)〉))) |
| 17 | 16 | imp 124 |
. . . 4
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ (0 ∈ (0...(𝑁 − 𝑀)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀)))) → ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉) = (𝑊 substr 〈(𝑀 + 0), (𝑀 + 𝐿)〉)) |
| 18 | 15, 17 | syldan 282 |
. . 3
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → ((𝑊 substr 〈𝑀, 𝑁〉) substr 〈0, 𝐿〉) = (𝑊 substr 〈(𝑀 + 0), (𝑀 + 𝐿)〉)) |
| 19 | | elfznn0 10243 |
. . . . . . . 8
⊢ (𝑀 ∈ (0...𝑁) → 𝑀 ∈
ℕ0) |
| 20 | | nn0cn 9312 |
. . . . . . . . 9
⊢ (𝑀 ∈ ℕ0
→ 𝑀 ∈
ℂ) |
| 21 | 20 | addridd 8228 |
. . . . . . . 8
⊢ (𝑀 ∈ ℕ0
→ (𝑀 + 0) = 𝑀) |
| 22 | 19, 21 | syl 14 |
. . . . . . 7
⊢ (𝑀 ∈ (0...𝑁) → (𝑀 + 0) = 𝑀) |
| 23 | 22 | 3ad2ant3 1023 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝑀 + 0) = 𝑀) |
| 24 | 23 | adantr 276 |
. . . . 5
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → (𝑀 + 0) = 𝑀) |
| 25 | 24 | opeq1d 3827 |
. . . 4
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → 〈(𝑀 + 0), (𝑀 + 𝐿)〉 = 〈𝑀, (𝑀 + 𝐿)〉) |
| 26 | 25 | oveq2d 5967 |
. . 3
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → (𝑊 substr 〈(𝑀 + 0), (𝑀 + 𝐿)〉) = (𝑊 substr 〈𝑀, (𝑀 + 𝐿)〉)) |
| 27 | 10, 18, 26 | 3eqtrd 2243 |
. 2
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) ∧ 𝐿 ∈ (0...(𝑁 − 𝑀))) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = (𝑊 substr 〈𝑀, (𝑀 + 𝐿)〉)) |
| 28 | 27 | ex 115 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑁 ∈ (0...(♯‘𝑊)) ∧ 𝑀 ∈ (0...𝑁)) → (𝐿 ∈ (0...(𝑁 − 𝑀)) → ((𝑊 substr 〈𝑀, 𝑁〉) prefix 𝐿) = (𝑊 substr 〈𝑀, (𝑀 + 𝐿)〉))) |