| Step |
Hyp |
Ref |
Expression |
| 1 |
|
swrdcl |
⊢ ( 𝑊 ∈ Word 𝑉 → ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ∈ Word 𝑉 ) |
| 2 |
|
pfxcl |
⊢ ( 𝑊 ∈ Word 𝑉 → ( 𝑊 prefix 𝑀 ) ∈ Word 𝑉 ) |
| 3 |
|
ccatlen |
⊢ ( ( ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ∈ Word 𝑉 ∧ ( 𝑊 prefix 𝑀 ) ∈ Word 𝑉 ) → ( ♯ ‘ ( ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ++ ( 𝑊 prefix 𝑀 ) ) ) = ( ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) + ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) ) ) |
| 4 |
1 2 3
|
syl2anc |
⊢ ( 𝑊 ∈ Word 𝑉 → ( ♯ ‘ ( ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ++ ( 𝑊 prefix 𝑀 ) ) ) = ( ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) + ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) ) ) |
| 5 |
4
|
adantr |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ♯ ‘ ( ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ++ ( 𝑊 prefix 𝑀 ) ) ) = ( ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) + ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) ) ) |
| 6 |
|
swrdrlen |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) = ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ) |
| 7 |
|
fznn0sub |
⊢ ( 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) → ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ∈ ℕ0 ) |
| 8 |
7
|
adantl |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ( ♯ ‘ 𝑊 ) − 𝑀 ) ∈ ℕ0 ) |
| 9 |
6 8
|
eqeltrd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) ∈ ℕ0 ) |
| 10 |
9
|
nn0cnd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) ∈ ℂ ) |
| 11 |
|
pfxlen |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) = 𝑀 ) |
| 12 |
|
elfznn0 |
⊢ ( 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) → 𝑀 ∈ ℕ0 ) |
| 13 |
12
|
adantl |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → 𝑀 ∈ ℕ0 ) |
| 14 |
11 13
|
eqeltrd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) ∈ ℕ0 ) |
| 15 |
14
|
nn0cnd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) ∈ ℂ ) |
| 16 |
10 15
|
addcomd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) + ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) ) = ( ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) + ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) ) ) |
| 17 |
|
addlenpfx |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ( ♯ ‘ ( 𝑊 prefix 𝑀 ) ) + ( ♯ ‘ ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ) ) = ( ♯ ‘ 𝑊 ) ) |
| 18 |
5 16 17
|
3eqtrd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑀 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ♯ ‘ ( ( 𝑊 substr 〈 𝑀 , ( ♯ ‘ 𝑊 ) 〉 ) ++ ( 𝑊 prefix 𝑀 ) ) ) = ( ♯ ‘ 𝑊 ) ) |