Proof of Theorem iwrdsplit
| Step | Hyp | Ref
| Expression |
| 1 | | iwrdsplit.s |
. . . 4
⊢ (𝜑 → 𝑆 ∈ V) |
| 2 | | iwrdsplit.f |
. . . 4
⊢ (𝜑 → 𝐹:ℕ0⟶𝑆) |
| 3 | | iwrdsplit.n |
. . . . 5
⊢ (𝜑 → 𝑁 ∈
ℕ0) |
| 4 | | 1nn0 12542 |
. . . . . 6
⊢ 1 ∈
ℕ0 |
| 5 | 4 | a1i 11 |
. . . . 5
⊢ (𝜑 → 1 ∈
ℕ0) |
| 6 | 3, 5 | nn0addcld 12591 |
. . . 4
⊢ (𝜑 → (𝑁 + 1) ∈
ℕ0) |
| 7 | 1, 2, 6 | subiwrd 34387 |
. . 3
⊢ (𝜑 → (𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆) |
| 8 | | 1re 11261 |
. . . . . 6
⊢ 1 ∈
ℝ |
| 9 | | nn0addge2 12573 |
. . . . . 6
⊢ ((1
∈ ℝ ∧ 𝑁
∈ ℕ0) → 1 ≤ (𝑁 + 1)) |
| 10 | 8, 3, 9 | sylancr 587 |
. . . . 5
⊢ (𝜑 → 1 ≤ (𝑁 + 1)) |
| 11 | 1, 2, 6 | subiwrdlen 34388 |
. . . . 5
⊢ (𝜑 → (♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) = (𝑁 + 1)) |
| 12 | 10, 11 | breqtrrd 5171 |
. . . 4
⊢ (𝜑 → 1 ≤
(♯‘(𝐹 ↾
(0..^(𝑁 +
1))))) |
| 13 | | wrdlenge1n0 14588 |
. . . . 5
⊢ ((𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆 → ((𝐹 ↾ (0..^(𝑁 + 1))) ≠ ∅ ↔ 1 ≤
(♯‘(𝐹 ↾
(0..^(𝑁 +
1)))))) |
| 14 | 7, 13 | syl 17 |
. . . 4
⊢ (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) ≠ ∅ ↔ 1 ≤
(♯‘(𝐹 ↾
(0..^(𝑁 +
1)))))) |
| 15 | 12, 14 | mpbird 257 |
. . 3
⊢ (𝜑 → (𝐹 ↾ (0..^(𝑁 + 1))) ≠ ∅) |
| 16 | | pfxlswccat 14751 |
. . 3
⊢ (((𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆 ∧ (𝐹 ↾ (0..^(𝑁 + 1))) ≠ ∅) → (((𝐹 ↾ (0..^(𝑁 + 1))) prefix ((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)) ++
〈“(lastS‘(𝐹 ↾ (0..^(𝑁 + 1))))”〉) = (𝐹 ↾ (0..^(𝑁 + 1)))) |
| 17 | 7, 15, 16 | syl2anc 584 |
. 2
⊢ (𝜑 → (((𝐹 ↾ (0..^(𝑁 + 1))) prefix ((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)) ++
〈“(lastS‘(𝐹 ↾ (0..^(𝑁 + 1))))”〉) = (𝐹 ↾ (0..^(𝑁 + 1)))) |
| 18 | 3 | nn0cnd 12589 |
. . . . . 6
⊢ (𝜑 → 𝑁 ∈ ℂ) |
| 19 | | 1cnd 11256 |
. . . . . 6
⊢ (𝜑 → 1 ∈
ℂ) |
| 20 | 18, 19, 11 | mvrraddd 11675 |
. . . . 5
⊢ (𝜑 → ((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1) = 𝑁) |
| 21 | 20 | oveq2d 7447 |
. . . 4
⊢ (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) prefix ((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)) = ((𝐹 ↾ (0..^(𝑁 + 1))) prefix 𝑁)) |
| 22 | | nn0fz0 13665 |
. . . . . . . 8
⊢ (𝑁 ∈ ℕ0
↔ 𝑁 ∈ (0...𝑁)) |
| 23 | 3, 22 | sylib 218 |
. . . . . . 7
⊢ (𝜑 → 𝑁 ∈ (0...𝑁)) |
| 24 | | elfz0add 13666 |
. . . . . . . 8
⊢ ((𝑁 ∈ ℕ0
∧ 1 ∈ ℕ0) → (𝑁 ∈ (0...𝑁) → 𝑁 ∈ (0...(𝑁 + 1)))) |
| 25 | 24 | imp 406 |
. . . . . . 7
⊢ (((𝑁 ∈ ℕ0
∧ 1 ∈ ℕ0) ∧ 𝑁 ∈ (0...𝑁)) → 𝑁 ∈ (0...(𝑁 + 1))) |
| 26 | 3, 5, 23, 25 | syl21anc 838 |
. . . . . 6
⊢ (𝜑 → 𝑁 ∈ (0...(𝑁 + 1))) |
| 27 | 11 | oveq2d 7447 |
. . . . . 6
⊢ (𝜑 → (0...(♯‘(𝐹 ↾ (0..^(𝑁 + 1))))) = (0...(𝑁 + 1))) |
| 28 | 26, 27 | eleqtrrd 2844 |
. . . . 5
⊢ (𝜑 → 𝑁 ∈ (0...(♯‘(𝐹 ↾ (0..^(𝑁 + 1)))))) |
| 29 | | pfxres 14717 |
. . . . 5
⊢ (((𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆 ∧ 𝑁 ∈ (0...(♯‘(𝐹 ↾ (0..^(𝑁 + 1)))))) → ((𝐹 ↾ (0..^(𝑁 + 1))) prefix 𝑁) = ((𝐹 ↾ (0..^(𝑁 + 1))) ↾ (0..^𝑁))) |
| 30 | 7, 28, 29 | syl2anc 584 |
. . . 4
⊢ (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) prefix 𝑁) = ((𝐹 ↾ (0..^(𝑁 + 1))) ↾ (0..^𝑁))) |
| 31 | | fzossfzop1 13782 |
. . . . 5
⊢ (𝑁 ∈ ℕ0
→ (0..^𝑁) ⊆
(0..^(𝑁 +
1))) |
| 32 | | resabs1 6024 |
. . . . 5
⊢
((0..^𝑁) ⊆
(0..^(𝑁 + 1)) →
((𝐹 ↾ (0..^(𝑁 + 1))) ↾ (0..^𝑁)) = (𝐹 ↾ (0..^𝑁))) |
| 33 | 3, 31, 32 | 3syl 18 |
. . . 4
⊢ (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) ↾ (0..^𝑁)) = (𝐹 ↾ (0..^𝑁))) |
| 34 | 21, 30, 33 | 3eqtrd 2781 |
. . 3
⊢ (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) prefix ((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)) = (𝐹 ↾ (0..^𝑁))) |
| 35 | | lsw 14602 |
. . . . . 6
⊢ ((𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆 → (lastS‘(𝐹 ↾ (0..^(𝑁 + 1)))) = ((𝐹 ↾ (0..^(𝑁 + 1)))‘((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1))) |
| 36 | 7, 35 | syl 17 |
. . . . 5
⊢ (𝜑 → (lastS‘(𝐹 ↾ (0..^(𝑁 + 1)))) = ((𝐹 ↾ (0..^(𝑁 + 1)))‘((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1))) |
| 37 | 20 | fveq2d 6910 |
. . . . 5
⊢ (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1)))‘((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)) = ((𝐹 ↾ (0..^(𝑁 + 1)))‘𝑁)) |
| 38 | | fzonn0p1 13781 |
. . . . . 6
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈ (0..^(𝑁 + 1))) |
| 39 | | fvres 6925 |
. . . . . 6
⊢ (𝑁 ∈ (0..^(𝑁 + 1)) → ((𝐹 ↾ (0..^(𝑁 + 1)))‘𝑁) = (𝐹‘𝑁)) |
| 40 | 3, 38, 39 | 3syl 18 |
. . . . 5
⊢ (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1)))‘𝑁) = (𝐹‘𝑁)) |
| 41 | 36, 37, 40 | 3eqtrd 2781 |
. . . 4
⊢ (𝜑 → (lastS‘(𝐹 ↾ (0..^(𝑁 + 1)))) = (𝐹‘𝑁)) |
| 42 | 41 | s1eqd 14639 |
. . 3
⊢ (𝜑 →
〈“(lastS‘(𝐹 ↾ (0..^(𝑁 + 1))))”〉 = 〈“(𝐹‘𝑁)”〉) |
| 43 | 34, 42 | oveq12d 7449 |
. 2
⊢ (𝜑 → (((𝐹 ↾ (0..^(𝑁 + 1))) prefix ((♯‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)) ++
〈“(lastS‘(𝐹 ↾ (0..^(𝑁 + 1))))”〉) = ((𝐹 ↾ (0..^𝑁)) ++ 〈“(𝐹‘𝑁)”〉)) |
| 44 | 17, 43 | eqtr3d 2779 |
1
⊢ (𝜑 → (𝐹 ↾ (0..^(𝑁 + 1))) = ((𝐹 ↾ (0..^𝑁)) ++ 〈“(𝐹‘𝑁)”〉)) |