Proof of Theorem ccats1pfxeq
| Step | Hyp | Ref | Expression | 
|---|
| 1 |  | oveq1 7438 | . . . 4
⊢ (𝑊 = (𝑈 prefix (♯‘𝑊)) → (𝑊 ++ 〈“(lastS‘𝑈)”〉) = ((𝑈 prefix (♯‘𝑊)) ++
〈“(lastS‘𝑈)”〉)) | 
| 2 | 1 | adantl 481 | . . 3
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) ∧ 𝑊 = (𝑈 prefix (♯‘𝑊))) → (𝑊 ++ 〈“(lastS‘𝑈)”〉) = ((𝑈 prefix (♯‘𝑊)) ++
〈“(lastS‘𝑈)”〉)) | 
| 3 |  | lencl 14571 | . . . . . . . . . . . 12
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈
ℕ0) | 
| 4 | 3 | nn0cnd 12589 | . . . . . . . . . . 11
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℂ) | 
| 5 |  | pncan1 11687 | . . . . . . . . . . 11
⊢
((♯‘𝑊)
∈ ℂ → (((♯‘𝑊) + 1) − 1) = (♯‘𝑊)) | 
| 6 | 4, 5 | syl 17 | . . . . . . . . . 10
⊢ (𝑊 ∈ Word 𝑉 → (((♯‘𝑊) + 1) − 1) = (♯‘𝑊)) | 
| 7 | 6 | eqcomd 2743 | . . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → (♯‘𝑊) = (((♯‘𝑊) + 1) − 1)) | 
| 8 | 7 | 3ad2ant1 1134 | . . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → (♯‘𝑊) = (((♯‘𝑊) + 1) −
1)) | 
| 9 |  | oveq1 7438 | . . . . . . . . . 10
⊢
((♯‘𝑈) =
((♯‘𝑊) + 1)
→ ((♯‘𝑈)
− 1) = (((♯‘𝑊) + 1) − 1)) | 
| 10 | 9 | eqcomd 2743 | . . . . . . . . 9
⊢
((♯‘𝑈) =
((♯‘𝑊) + 1)
→ (((♯‘𝑊)
+ 1) − 1) = ((♯‘𝑈) − 1)) | 
| 11 | 10 | 3ad2ant3 1136 | . . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → (((♯‘𝑊) + 1) − 1) =
((♯‘𝑈) −
1)) | 
| 12 | 8, 11 | eqtrd 2777 | . . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → (♯‘𝑊) = ((♯‘𝑈) − 1)) | 
| 13 | 12 | oveq2d 7447 | . . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → (𝑈 prefix (♯‘𝑊)) = (𝑈 prefix ((♯‘𝑈) − 1))) | 
| 14 | 13 | oveq1d 7446 | . . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → ((𝑈 prefix (♯‘𝑊)) ++ 〈“(lastS‘𝑈)”〉) = ((𝑈 prefix ((♯‘𝑈) − 1)) ++
〈“(lastS‘𝑈)”〉)) | 
| 15 |  | simp2 1138 | . . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → 𝑈 ∈ Word 𝑉) | 
| 16 |  | nn0p1gt0 12555 | . . . . . . . . . 10
⊢
((♯‘𝑊)
∈ ℕ0 → 0 < ((♯‘𝑊) + 1)) | 
| 17 | 3, 16 | syl 17 | . . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → 0 < ((♯‘𝑊) + 1)) | 
| 18 | 17 | 3ad2ant1 1134 | . . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → 0 < ((♯‘𝑊) + 1)) | 
| 19 |  | breq2 5147 | . . . . . . . . 9
⊢
((♯‘𝑈) =
((♯‘𝑊) + 1)
→ (0 < (♯‘𝑈) ↔ 0 < ((♯‘𝑊) + 1))) | 
| 20 | 19 | 3ad2ant3 1136 | . . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → (0 < (♯‘𝑈) ↔ 0 <
((♯‘𝑊) +
1))) | 
| 21 | 18, 20 | mpbird 257 | . . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → 0 < (♯‘𝑈)) | 
| 22 |  | hashneq0 14403 | . . . . . . . 8
⊢ (𝑈 ∈ Word 𝑉 → (0 < (♯‘𝑈) ↔ 𝑈 ≠ ∅)) | 
| 23 | 22 | 3ad2ant2 1135 | . . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → (0 < (♯‘𝑈) ↔ 𝑈 ≠ ∅)) | 
| 24 | 21, 23 | mpbid 232 | . . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → 𝑈 ≠ ∅) | 
| 25 |  | pfxlswccat 14751 | . . . . . 6
⊢ ((𝑈 ∈ Word 𝑉 ∧ 𝑈 ≠ ∅) → ((𝑈 prefix ((♯‘𝑈) − 1)) ++
〈“(lastS‘𝑈)”〉) = 𝑈) | 
| 26 | 15, 24, 25 | syl2anc 584 | . . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → ((𝑈 prefix ((♯‘𝑈) − 1)) ++
〈“(lastS‘𝑈)”〉) = 𝑈) | 
| 27 | 14, 26 | eqtrd 2777 | . . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → ((𝑈 prefix (♯‘𝑊)) ++ 〈“(lastS‘𝑈)”〉) = 𝑈) | 
| 28 | 27 | adantr 480 | . . 3
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) ∧ 𝑊 = (𝑈 prefix (♯‘𝑊))) → ((𝑈 prefix (♯‘𝑊)) ++ 〈“(lastS‘𝑈)”〉) = 𝑈) | 
| 29 | 2, 28 | eqtr2d 2778 | . 2
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) ∧ 𝑊 = (𝑈 prefix (♯‘𝑊))) → 𝑈 = (𝑊 ++ 〈“(lastS‘𝑈)”〉)) | 
| 30 | 29 | ex 412 | 1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (♯‘𝑈) = ((♯‘𝑊) + 1)) → (𝑊 = (𝑈 prefix (♯‘𝑊)) → 𝑈 = (𝑊 ++ 〈“(lastS‘𝑈)”〉))) |