Proof of Theorem ccatopth2
| Step | Hyp | Ref
| Expression |
| 1 | | fveq2 6191 |
. . . 4
⊢ ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (#‘(𝐴 ++ 𝐵)) = (#‘(𝐶 ++ 𝐷))) |
| 2 | | ccatlen 13360 |
. . . . . . . 8
⊢ ((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) → (#‘(𝐴 ++ 𝐵)) = ((#‘𝐴) + (#‘𝐵))) |
| 3 | 2 | 3ad2ant1 1082 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘(𝐴 ++ 𝐵)) = ((#‘𝐴) + (#‘𝐵))) |
| 4 | | simp3 1063 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐵) = (#‘𝐷)) |
| 5 | 4 | oveq2d 6666 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((#‘𝐴) + (#‘𝐵)) = ((#‘𝐴) + (#‘𝐷))) |
| 6 | 3, 5 | eqtrd 2656 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘(𝐴 ++ 𝐵)) = ((#‘𝐴) + (#‘𝐷))) |
| 7 | | ccatlen 13360 |
. . . . . . 7
⊢ ((𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) → (#‘(𝐶 ++ 𝐷)) = ((#‘𝐶) + (#‘𝐷))) |
| 8 | 7 | 3ad2ant2 1083 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘(𝐶 ++ 𝐷)) = ((#‘𝐶) + (#‘𝐷))) |
| 9 | 6, 8 | eqeq12d 2637 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((#‘(𝐴 ++ 𝐵)) = (#‘(𝐶 ++ 𝐷)) ↔ ((#‘𝐴) + (#‘𝐷)) = ((#‘𝐶) + (#‘𝐷)))) |
| 10 | | simp1l 1085 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → 𝐴 ∈ Word 𝑋) |
| 11 | | lencl 13324 |
. . . . . . . 8
⊢ (𝐴 ∈ Word 𝑋 → (#‘𝐴) ∈
ℕ0) |
| 12 | 10, 11 | syl 17 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐴) ∈
ℕ0) |
| 13 | 12 | nn0cnd 11353 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐴) ∈ ℂ) |
| 14 | | simp2l 1087 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → 𝐶 ∈ Word 𝑋) |
| 15 | | lencl 13324 |
. . . . . . . 8
⊢ (𝐶 ∈ Word 𝑋 → (#‘𝐶) ∈
ℕ0) |
| 16 | 14, 15 | syl 17 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐶) ∈
ℕ0) |
| 17 | 16 | nn0cnd 11353 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐶) ∈ ℂ) |
| 18 | | simp2r 1088 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → 𝐷 ∈ Word 𝑋) |
| 19 | | lencl 13324 |
. . . . . . . 8
⊢ (𝐷 ∈ Word 𝑋 → (#‘𝐷) ∈
ℕ0) |
| 20 | 18, 19 | syl 17 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐷) ∈
ℕ0) |
| 21 | 20 | nn0cnd 11353 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐷) ∈ ℂ) |
| 22 | 13, 17, 21 | addcan2d 10240 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (((#‘𝐴) + (#‘𝐷)) = ((#‘𝐶) + (#‘𝐷)) ↔ (#‘𝐴) = (#‘𝐶))) |
| 23 | 9, 22 | bitrd 268 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((#‘(𝐴 ++ 𝐵)) = (#‘(𝐶 ++ 𝐷)) ↔ (#‘𝐴) = (#‘𝐶))) |
| 24 | 1, 23 | syl5ib 234 |
. . 3
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (#‘𝐴) = (#‘𝐶))) |
| 25 | | ccatopth 13470 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐴) = (#‘𝐶)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) ↔ (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))) |
| 26 | 25 | biimpd 219 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐴) = (#‘𝐶)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))) |
| 27 | 26 | 3expia 1267 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋)) → ((#‘𝐴) = (#‘𝐶) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))) |
| 28 | 27 | com23 86 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → ((#‘𝐴) = (#‘𝐶) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))) |
| 29 | 28 | 3adant3 1081 |
. . 3
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → ((#‘𝐴) = (#‘𝐶) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))) |
| 30 | 24, 29 | mpdd 43 |
. 2
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))) |
| 31 | | oveq12 6659 |
. 2
⊢ ((𝐴 = 𝐶 ∧ 𝐵 = 𝐷) → (𝐴 ++ 𝐵) = (𝐶 ++ 𝐷)) |
| 32 | 30, 31 | impbid1 215 |
1
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) ↔ (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))) |