Proof of Theorem swrdccatidOLD
Step | Hyp | Ref
| Expression |
1 | | 3simpa 1179 |
. . 3
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) |
2 | | lencl 13550 |
. . . . 5
⊢ (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ∈
ℕ0) |
3 | | lencl 13550 |
. . . . . 6
⊢ (𝐵 ∈ Word 𝑉 → (♯‘𝐵) ∈
ℕ0) |
4 | | simplr 786 |
. . . . . . . . 9
⊢
((((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) ∧ 𝑁 = (♯‘𝐴)) → (♯‘𝐴) ∈
ℕ0) |
5 | | eleq1 2865 |
. . . . . . . . . 10
⊢ (𝑁 = (♯‘𝐴) → (𝑁 ∈ ℕ0 ↔
(♯‘𝐴) ∈
ℕ0)) |
6 | 5 | adantl 474 |
. . . . . . . . 9
⊢
((((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) ∧ 𝑁 = (♯‘𝐴)) → (𝑁 ∈ ℕ0 ↔
(♯‘𝐴) ∈
ℕ0)) |
7 | 4, 6 | mpbird 249 |
. . . . . . . 8
⊢
((((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) ∧ 𝑁 = (♯‘𝐴)) → 𝑁 ∈
ℕ0) |
8 | | nn0addcl 11614 |
. . . . . . . . . 10
⊢
(((♯‘𝐴)
∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) →
((♯‘𝐴) +
(♯‘𝐵)) ∈
ℕ0) |
9 | 8 | ancoms 451 |
. . . . . . . . 9
⊢
(((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) →
((♯‘𝐴) +
(♯‘𝐵)) ∈
ℕ0) |
10 | 9 | adantr 473 |
. . . . . . . 8
⊢
((((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) ∧ 𝑁 = (♯‘𝐴)) → ((♯‘𝐴) + (♯‘𝐵)) ∈
ℕ0) |
11 | | nn0re 11587 |
. . . . . . . . . . . . 13
⊢
((♯‘𝐴)
∈ ℕ0 → (♯‘𝐴) ∈ ℝ) |
12 | 11 | anim1i 609 |
. . . . . . . . . . . 12
⊢
(((♯‘𝐴)
∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) →
((♯‘𝐴) ∈
ℝ ∧ (♯‘𝐵) ∈
ℕ0)) |
13 | 12 | ancoms 451 |
. . . . . . . . . . 11
⊢
(((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) →
((♯‘𝐴) ∈
ℝ ∧ (♯‘𝐵) ∈
ℕ0)) |
14 | | nn0addge1 11625 |
. . . . . . . . . . 11
⊢
(((♯‘𝐴)
∈ ℝ ∧ (♯‘𝐵) ∈ ℕ0) →
(♯‘𝐴) ≤
((♯‘𝐴) +
(♯‘𝐵))) |
15 | 13, 14 | syl 17 |
. . . . . . . . . 10
⊢
(((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) →
(♯‘𝐴) ≤
((♯‘𝐴) +
(♯‘𝐵))) |
16 | 15 | adantr 473 |
. . . . . . . . 9
⊢
((((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) ∧ 𝑁 = (♯‘𝐴)) → (♯‘𝐴) ≤ ((♯‘𝐴) + (♯‘𝐵))) |
17 | | breq1 4845 |
. . . . . . . . . 10
⊢ (𝑁 = (♯‘𝐴) → (𝑁 ≤ ((♯‘𝐴) + (♯‘𝐵)) ↔ (♯‘𝐴) ≤ ((♯‘𝐴) + (♯‘𝐵)))) |
18 | 17 | adantl 474 |
. . . . . . . . 9
⊢
((((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) ∧ 𝑁 = (♯‘𝐴)) → (𝑁 ≤ ((♯‘𝐴) + (♯‘𝐵)) ↔ (♯‘𝐴) ≤ ((♯‘𝐴) + (♯‘𝐵)))) |
19 | 16, 18 | mpbird 249 |
. . . . . . . 8
⊢
((((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) ∧ 𝑁 = (♯‘𝐴)) → 𝑁 ≤ ((♯‘𝐴) + (♯‘𝐵))) |
20 | | elfz2nn0 12682 |
. . . . . . . 8
⊢ (𝑁 ∈
(0...((♯‘𝐴) +
(♯‘𝐵))) ↔
(𝑁 ∈
ℕ0 ∧ ((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0 ∧ 𝑁 ≤ ((♯‘𝐴) + (♯‘𝐵)))) |
21 | 7, 10, 19, 20 | syl3anbrc 1444 |
. . . . . . 7
⊢
((((♯‘𝐵)
∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ0) ∧ 𝑁 = (♯‘𝐴)) → 𝑁 ∈ (0...((♯‘𝐴) + (♯‘𝐵)))) |
22 | 21 | exp31 411 |
. . . . . 6
⊢
((♯‘𝐵)
∈ ℕ0 → ((♯‘𝐴) ∈ ℕ0 → (𝑁 = (♯‘𝐴) → 𝑁 ∈ (0...((♯‘𝐴) + (♯‘𝐵)))))) |
23 | 3, 22 | syl 17 |
. . . . 5
⊢ (𝐵 ∈ Word 𝑉 → ((♯‘𝐴) ∈ ℕ0 → (𝑁 = (♯‘𝐴) → 𝑁 ∈ (0...((♯‘𝐴) + (♯‘𝐵)))))) |
24 | 2, 23 | syl5com 31 |
. . . 4
⊢ (𝐴 ∈ Word 𝑉 → (𝐵 ∈ Word 𝑉 → (𝑁 = (♯‘𝐴) → 𝑁 ∈ (0...((♯‘𝐴) + (♯‘𝐵)))))) |
25 | 24 | 3imp 1138 |
. . 3
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → 𝑁 ∈ (0...((♯‘𝐴) + (♯‘𝐵)))) |
26 | | eqid 2798 |
. . . 4
⊢
(♯‘𝐴) =
(♯‘𝐴) |
27 | 26 | swrdccat3aOLD 13801 |
. . 3
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝑁 ∈ (0...((♯‘𝐴) + (♯‘𝐵))) → ((𝐴 ++ 𝐵) substr 〈0, 𝑁〉) = if(𝑁 ≤ (♯‘𝐴), (𝐴 substr 〈0, 𝑁〉), (𝐴 ++ (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉))))) |
28 | 1, 25, 27 | sylc 65 |
. 2
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → ((𝐴 ++ 𝐵) substr 〈0, 𝑁〉) = if(𝑁 ≤ (♯‘𝐴), (𝐴 substr 〈0, 𝑁〉), (𝐴 ++ (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉)))) |
29 | 2, 11 | syl 17 |
. . . . . 6
⊢ (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ∈ ℝ) |
30 | 29 | leidd 10885 |
. . . . 5
⊢ (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ≤ (♯‘𝐴)) |
31 | 30 | 3ad2ant1 1164 |
. . . 4
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → (♯‘𝐴) ≤ (♯‘𝐴)) |
32 | | breq1 4845 |
. . . . 5
⊢ (𝑁 = (♯‘𝐴) → (𝑁 ≤ (♯‘𝐴) ↔ (♯‘𝐴) ≤ (♯‘𝐴))) |
33 | 32 | 3ad2ant3 1166 |
. . . 4
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → (𝑁 ≤ (♯‘𝐴) ↔ (♯‘𝐴) ≤ (♯‘𝐴))) |
34 | 31, 33 | mpbird 249 |
. . 3
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → 𝑁 ≤ (♯‘𝐴)) |
35 | 34 | iftrued 4284 |
. 2
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → if(𝑁 ≤ (♯‘𝐴), (𝐴 substr 〈0, 𝑁〉), (𝐴 ++ (𝐵 substr 〈0, (𝑁 − (♯‘𝐴))〉))) = (𝐴 substr 〈0, 𝑁〉)) |
36 | | swrdidOLD 13676 |
. . . 4
⊢ (𝐴 ∈ Word 𝑉 → (𝐴 substr 〈0, (♯‘𝐴)〉) = 𝐴) |
37 | 36 | 3ad2ant1 1164 |
. . 3
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → (𝐴 substr 〈0, (♯‘𝐴)〉) = 𝐴) |
38 | | opeq2 4593 |
. . . . . 6
⊢ (𝑁 = (♯‘𝐴) → 〈0, 𝑁〉 = 〈0,
(♯‘𝐴)〉) |
39 | 38 | oveq2d 6893 |
. . . . 5
⊢ (𝑁 = (♯‘𝐴) → (𝐴 substr 〈0, 𝑁〉) = (𝐴 substr 〈0, (♯‘𝐴)〉)) |
40 | 39 | eqeq1d 2800 |
. . . 4
⊢ (𝑁 = (♯‘𝐴) → ((𝐴 substr 〈0, 𝑁〉) = 𝐴 ↔ (𝐴 substr 〈0, (♯‘𝐴)〉) = 𝐴)) |
41 | 40 | 3ad2ant3 1166 |
. . 3
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → ((𝐴 substr 〈0, 𝑁〉) = 𝐴 ↔ (𝐴 substr 〈0, (♯‘𝐴)〉) = 𝐴)) |
42 | 37, 41 | mpbird 249 |
. 2
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → (𝐴 substr 〈0, 𝑁〉) = 𝐴) |
43 | 28, 35, 42 | 3eqtrd 2836 |
1
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉 ∧ 𝑁 = (♯‘𝐴)) → ((𝐴 ++ 𝐵) substr 〈0, 𝑁〉) = 𝐴) |