Proof of Theorem ccats1swrdeq
| Step | Hyp | Ref
| Expression |
| 1 | | oveq1 6657 |
. . . 4
⊢ (𝑊 = (𝑈 substr 〈0, (#‘𝑊)〉) → (𝑊 ++ 〈“( lastS ‘𝑈)”〉) = ((𝑈 substr 〈0, (#‘𝑊)〉) ++ 〈“( lastS
‘𝑈)”〉)) |
| 2 | 1 | adantl 482 |
. . 3
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) ∧ 𝑊 = (𝑈 substr 〈0, (#‘𝑊)〉)) → (𝑊 ++ 〈“( lastS ‘𝑈)”〉) = ((𝑈 substr 〈0, (#‘𝑊)〉) ++ 〈“( lastS
‘𝑈)”〉)) |
| 3 | | oveq1 6657 |
. . . . . . . . . 10
⊢
((#‘𝑈) =
((#‘𝑊) + 1) →
((#‘𝑈) − 1) =
(((#‘𝑊) + 1) −
1)) |
| 4 | 3 | 3ad2ant3 1084 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → ((#‘𝑈) − 1) = (((#‘𝑊) + 1) − 1)) |
| 5 | | lencl 13324 |
. . . . . . . . . . 11
⊢ (𝑊 ∈ Word 𝑉 → (#‘𝑊) ∈
ℕ0) |
| 6 | | nn0cn 11302 |
. . . . . . . . . . 11
⊢
((#‘𝑊) ∈
ℕ0 → (#‘𝑊) ∈ ℂ) |
| 7 | | pncan1 10454 |
. . . . . . . . . . 11
⊢
((#‘𝑊) ∈
ℂ → (((#‘𝑊) + 1) − 1) = (#‘𝑊)) |
| 8 | 5, 6, 7 | 3syl 18 |
. . . . . . . . . 10
⊢ (𝑊 ∈ Word 𝑉 → (((#‘𝑊) + 1) − 1) = (#‘𝑊)) |
| 9 | 8 | 3ad2ant1 1082 |
. . . . . . . . 9
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → (((#‘𝑊) + 1) − 1) = (#‘𝑊)) |
| 10 | 4, 9 | eqtr2d 2657 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → (#‘𝑊) = ((#‘𝑈) − 1)) |
| 11 | 10 | opeq2d 4409 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → 〈0, (#‘𝑊)〉 = 〈0,
((#‘𝑈) −
1)〉) |
| 12 | 11 | oveq2d 6666 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → (𝑈 substr 〈0, (#‘𝑊)〉) = (𝑈 substr 〈0, ((#‘𝑈) − 1)〉)) |
| 13 | 12 | oveq1d 6665 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → ((𝑈 substr 〈0, (#‘𝑊)〉) ++ 〈“( lastS
‘𝑈)”〉) =
((𝑈 substr 〈0,
((#‘𝑈) −
1)〉) ++ 〈“( lastS ‘𝑈)”〉)) |
| 14 | | simp2 1062 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → 𝑈 ∈ Word 𝑉) |
| 15 | | nn0p1gt0 11322 |
. . . . . . . . . 10
⊢
((#‘𝑊) ∈
ℕ0 → 0 < ((#‘𝑊) + 1)) |
| 16 | 5, 15 | syl 17 |
. . . . . . . . 9
⊢ (𝑊 ∈ Word 𝑉 → 0 < ((#‘𝑊) + 1)) |
| 17 | 16 | 3ad2ant1 1082 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → 0 < ((#‘𝑊) + 1)) |
| 18 | | breq2 4657 |
. . . . . . . . 9
⊢
((#‘𝑈) =
((#‘𝑊) + 1) → (0
< (#‘𝑈) ↔ 0
< ((#‘𝑊) +
1))) |
| 19 | 18 | 3ad2ant3 1084 |
. . . . . . . 8
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → (0 < (#‘𝑈) ↔ 0 < ((#‘𝑊) + 1))) |
| 20 | 17, 19 | mpbird 247 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → 0 < (#‘𝑈)) |
| 21 | | hashneq0 13155 |
. . . . . . . 8
⊢ (𝑈 ∈ Word 𝑉 → (0 < (#‘𝑈) ↔ 𝑈 ≠ ∅)) |
| 22 | 21 | 3ad2ant2 1083 |
. . . . . . 7
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → (0 < (#‘𝑈) ↔ 𝑈 ≠ ∅)) |
| 23 | 20, 22 | mpbid 222 |
. . . . . 6
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → 𝑈 ≠ ∅) |
| 24 | | swrdccatwrd 13468 |
. . . . . 6
⊢ ((𝑈 ∈ Word 𝑉 ∧ 𝑈 ≠ ∅) → ((𝑈 substr 〈0, ((#‘𝑈) − 1)〉) ++ 〈“( lastS
‘𝑈)”〉) =
𝑈) |
| 25 | 14, 23, 24 | syl2anc 693 |
. . . . 5
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → ((𝑈 substr 〈0, ((#‘𝑈) − 1)〉) ++ 〈“( lastS
‘𝑈)”〉) =
𝑈) |
| 26 | 13, 25 | eqtrd 2656 |
. . . 4
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → ((𝑈 substr 〈0, (#‘𝑊)〉) ++ 〈“( lastS
‘𝑈)”〉) =
𝑈) |
| 27 | 26 | adantr 481 |
. . 3
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) ∧ 𝑊 = (𝑈 substr 〈0, (#‘𝑊)〉)) → ((𝑈 substr 〈0, (#‘𝑊)〉) ++ 〈“( lastS
‘𝑈)”〉) =
𝑈) |
| 28 | 2, 27 | eqtr2d 2657 |
. 2
⊢ (((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) ∧ 𝑊 = (𝑈 substr 〈0, (#‘𝑊)〉)) → 𝑈 = (𝑊 ++ 〈“( lastS ‘𝑈)”〉)) |
| 29 | 28 | ex 450 |
1
⊢ ((𝑊 ∈ Word 𝑉 ∧ 𝑈 ∈ Word 𝑉 ∧ (#‘𝑈) = ((#‘𝑊) + 1)) → (𝑊 = (𝑈 substr 〈0, (#‘𝑊)〉) → 𝑈 = (𝑊 ++ 〈“( lastS ‘𝑈)”〉))) |