Step |
Hyp |
Ref |
Expression |
1 |
|
ccats1pfxeq |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → ( 𝑊 = ( 𝑈 prefix ( ♯ ‘ 𝑊 ) ) → 𝑈 = ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) ) ) |
2 |
|
simp1 |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → 𝑊 ∈ Word 𝑉 ) |
3 |
|
lencl |
⊢ ( 𝑊 ∈ Word 𝑉 → ( ♯ ‘ 𝑊 ) ∈ ℕ0 ) |
4 |
|
nn0p1nn |
⊢ ( ( ♯ ‘ 𝑊 ) ∈ ℕ0 → ( ( ♯ ‘ 𝑊 ) + 1 ) ∈ ℕ ) |
5 |
3 4
|
syl |
⊢ ( 𝑊 ∈ Word 𝑉 → ( ( ♯ ‘ 𝑊 ) + 1 ) ∈ ℕ ) |
6 |
5
|
3ad2ant1 |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → ( ( ♯ ‘ 𝑊 ) + 1 ) ∈ ℕ ) |
7 |
|
3simpc |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → ( 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) ) |
8 |
|
lswlgt0cl |
⊢ ( ( ( ( ♯ ‘ 𝑊 ) + 1 ) ∈ ℕ ∧ ( 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) ) → ( lastS ‘ 𝑈 ) ∈ 𝑉 ) |
9 |
6 7 8
|
syl2anc |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → ( lastS ‘ 𝑈 ) ∈ 𝑉 ) |
10 |
9
|
s1cld |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → 〈“ ( lastS ‘ 𝑈 ) ”〉 ∈ Word 𝑉 ) |
11 |
|
eqidd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → ( ♯ ‘ 𝑊 ) = ( ♯ ‘ 𝑊 ) ) |
12 |
|
pfxccatid |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 〈“ ( lastS ‘ 𝑈 ) ”〉 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑊 ) = ( ♯ ‘ 𝑊 ) ) → ( ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) prefix ( ♯ ‘ 𝑊 ) ) = 𝑊 ) |
13 |
12
|
eqcomd |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 〈“ ( lastS ‘ 𝑈 ) ”〉 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑊 ) = ( ♯ ‘ 𝑊 ) ) → 𝑊 = ( ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) prefix ( ♯ ‘ 𝑊 ) ) ) |
14 |
2 10 11 13
|
syl3anc |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → 𝑊 = ( ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) prefix ( ♯ ‘ 𝑊 ) ) ) |
15 |
|
oveq1 |
⊢ ( 𝑈 = ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) → ( 𝑈 prefix ( ♯ ‘ 𝑊 ) ) = ( ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) prefix ( ♯ ‘ 𝑊 ) ) ) |
16 |
15
|
eqcomd |
⊢ ( 𝑈 = ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) → ( ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) prefix ( ♯ ‘ 𝑊 ) ) = ( 𝑈 prefix ( ♯ ‘ 𝑊 ) ) ) |
17 |
14 16
|
sylan9eq |
⊢ ( ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) ∧ 𝑈 = ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) ) → 𝑊 = ( 𝑈 prefix ( ♯ ‘ 𝑊 ) ) ) |
18 |
17
|
ex |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → ( 𝑈 = ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) → 𝑊 = ( 𝑈 prefix ( ♯ ‘ 𝑊 ) ) ) ) |
19 |
1 18
|
impbid |
⊢ ( ( 𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ ( ♯ ‘ 𝑈 ) = ( ( ♯ ‘ 𝑊 ) + 1 ) ) → ( 𝑊 = ( 𝑈 prefix ( ♯ ‘ 𝑊 ) ) ↔ 𝑈 = ( 𝑊 ++ 〈“ ( lastS ‘ 𝑈 ) ”〉 ) ) ) |