| Step |
Hyp |
Ref |
Expression |
| 1 |
|
simpl |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → 𝑊 ∈ Word 𝐴 ) |
| 2 |
|
wrdfin |
⊢ ( 𝑊 ∈ Word 𝐴 → 𝑊 ∈ Fin ) |
| 3 |
|
1elfz0hash |
⊢ ( ( 𝑊 ∈ Fin ∧ 𝑊 ≠ ∅ ) → 1 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) |
| 4 |
2 3
|
sylan |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → 1 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) |
| 5 |
|
lennncl |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → ( ♯ ‘ 𝑊 ) ∈ ℕ ) |
| 6 |
5
|
nnnn0d |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → ( ♯ ‘ 𝑊 ) ∈ ℕ0 ) |
| 7 |
|
eluzfz2 |
⊢ ( ( ♯ ‘ 𝑊 ) ∈ ( ℤ≥ ‘ 0 ) → ( ♯ ‘ 𝑊 ) ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) |
| 8 |
|
nn0uz |
⊢ ℕ0 = ( ℤ≥ ‘ 0 ) |
| 9 |
7 8
|
eleq2s |
⊢ ( ( ♯ ‘ 𝑊 ) ∈ ℕ0 → ( ♯ ‘ 𝑊 ) ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) |
| 10 |
6 9
|
syl |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → ( ♯ ‘ 𝑊 ) ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) |
| 11 |
|
ccatpfx |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 1 ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ∧ ( ♯ ‘ 𝑊 ) ∈ ( 0 ... ( ♯ ‘ 𝑊 ) ) ) → ( ( 𝑊 prefix 1 ) ++ ( 𝑊 substr 〈 1 , ( ♯ ‘ 𝑊 ) 〉 ) ) = ( 𝑊 prefix ( ♯ ‘ 𝑊 ) ) ) |
| 12 |
1 4 10 11
|
syl3anc |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → ( ( 𝑊 prefix 1 ) ++ ( 𝑊 substr 〈 1 , ( ♯ ‘ 𝑊 ) 〉 ) ) = ( 𝑊 prefix ( ♯ ‘ 𝑊 ) ) ) |
| 13 |
|
pfx1 |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → ( 𝑊 prefix 1 ) = 〈“ ( 𝑊 ‘ 0 ) ”〉 ) |
| 14 |
13
|
oveq1d |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → ( ( 𝑊 prefix 1 ) ++ ( 𝑊 substr 〈 1 , ( ♯ ‘ 𝑊 ) 〉 ) ) = ( 〈“ ( 𝑊 ‘ 0 ) ”〉 ++ ( 𝑊 substr 〈 1 , ( ♯ ‘ 𝑊 ) 〉 ) ) ) |
| 15 |
|
pfxid |
⊢ ( 𝑊 ∈ Word 𝐴 → ( 𝑊 prefix ( ♯ ‘ 𝑊 ) ) = 𝑊 ) |
| 16 |
15
|
adantr |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → ( 𝑊 prefix ( ♯ ‘ 𝑊 ) ) = 𝑊 ) |
| 17 |
12 14 16
|
3eqtr3rd |
⊢ ( ( 𝑊 ∈ Word 𝐴 ∧ 𝑊 ≠ ∅ ) → 𝑊 = ( 〈“ ( 𝑊 ‘ 0 ) ”〉 ++ ( 𝑊 substr 〈 1 , ( ♯ ‘ 𝑊 ) 〉 ) ) ) |