Proof of Theorem ccatopth2
Step | Hyp | Ref
| Expression |
1 | | fveq2 6103 |
. . . 4
⊢ ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (#‘(𝐴 ++ 𝐵)) = (#‘(𝐶 ++ 𝐷))) |
2 | | ccatlen 13213 |
. . . . . . . 8
⊢ ((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) → (#‘(𝐴 ++ 𝐵)) = ((#‘𝐴) + (#‘𝐵))) |
3 | 2 | 3ad2ant1 1075 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘(𝐴 ++ 𝐵)) = ((#‘𝐴) + (#‘𝐵))) |
4 | | simp3 1056 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐵) = (#‘𝐷)) |
5 | 4 | oveq2d 6565 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((#‘𝐴) + (#‘𝐵)) = ((#‘𝐴) + (#‘𝐷))) |
6 | 3, 5 | eqtrd 2644 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘(𝐴 ++ 𝐵)) = ((#‘𝐴) + (#‘𝐷))) |
7 | | ccatlen 13213 |
. . . . . . 7
⊢ ((𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) → (#‘(𝐶 ++ 𝐷)) = ((#‘𝐶) + (#‘𝐷))) |
8 | 7 | 3ad2ant2 1076 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘(𝐶 ++ 𝐷)) = ((#‘𝐶) + (#‘𝐷))) |
9 | 6, 8 | eqeq12d 2625 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((#‘(𝐴 ++ 𝐵)) = (#‘(𝐶 ++ 𝐷)) ↔ ((#‘𝐴) + (#‘𝐷)) = ((#‘𝐶) + (#‘𝐷)))) |
10 | | simp1l 1078 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → 𝐴 ∈ Word 𝑋) |
11 | | lencl 13179 |
. . . . . . . 8
⊢ (𝐴 ∈ Word 𝑋 → (#‘𝐴) ∈
ℕ0) |
12 | 10, 11 | syl 17 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐴) ∈
ℕ0) |
13 | 12 | nn0cnd 11230 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐴) ∈ ℂ) |
14 | | simp2l 1080 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → 𝐶 ∈ Word 𝑋) |
15 | | lencl 13179 |
. . . . . . . 8
⊢ (𝐶 ∈ Word 𝑋 → (#‘𝐶) ∈
ℕ0) |
16 | 14, 15 | syl 17 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐶) ∈
ℕ0) |
17 | 16 | nn0cnd 11230 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐶) ∈ ℂ) |
18 | | simp2r 1081 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → 𝐷 ∈ Word 𝑋) |
19 | | lencl 13179 |
. . . . . . . 8
⊢ (𝐷 ∈ Word 𝑋 → (#‘𝐷) ∈
ℕ0) |
20 | 18, 19 | syl 17 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐷) ∈
ℕ0) |
21 | 20 | nn0cnd 11230 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (#‘𝐷) ∈ ℂ) |
22 | 13, 17, 21 | addcan2d 10119 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → (((#‘𝐴) + (#‘𝐷)) = ((#‘𝐶) + (#‘𝐷)) ↔ (#‘𝐴) = (#‘𝐶))) |
23 | 9, 22 | bitrd 267 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((#‘(𝐴 ++ 𝐵)) = (#‘(𝐶 ++ 𝐷)) ↔ (#‘𝐴) = (#‘𝐶))) |
24 | 1, 23 | syl5ib 233 |
. . 3
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (#‘𝐴) = (#‘𝐶))) |
25 | | ccatopth 13322 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐴) = (#‘𝐶)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) ↔ (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))) |
26 | 25 | biimpd 218 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐴) = (#‘𝐶)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))) |
27 | 26 | 3expia 1259 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋)) → ((#‘𝐴) = (#‘𝐶) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))) |
28 | 27 | com23 84 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → ((#‘𝐴) = (#‘𝐶) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))) |
29 | 28 | 3adant3 1074 |
. . 3
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → ((#‘𝐴) = (#‘𝐶) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))) |
30 | 24, 29 | mpdd 42 |
. 2
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))) |
31 | | oveq12 6558 |
. 2
⊢ ((𝐴 = 𝐶 ∧ 𝐵 = 𝐷) → (𝐴 ++ 𝐵) = (𝐶 ++ 𝐷)) |
32 | 30, 31 | impbid1 214 |
1
⊢ (((𝐴 ∈ Word 𝑋 ∧ 𝐵 ∈ Word 𝑋) ∧ (𝐶 ∈ Word 𝑋 ∧ 𝐷 ∈ Word 𝑋) ∧ (#‘𝐵) = (#‘𝐷)) → ((𝐴 ++ 𝐵) = (𝐶 ++ 𝐷) ↔ (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))) |