Proof of Theorem swrdccatin2d
| Step | Hyp | Ref
| Expression |
| 1 | | swrdccatind.l |
. 2
⊢ (𝜑 → (♯‘𝐴) = 𝐿) |
| 2 | | swrdccatind.w |
. . . . . . 7
⊢ (𝜑 → (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) |
| 3 | 2 | adantl 277 |
. . . . . 6
⊢
(((♯‘𝐴)
= 𝐿 ∧ 𝜑) → (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) |
| 4 | | swrdccatin2d.1 |
. . . . . . . . 9
⊢ (𝜑 → 𝑀 ∈ (𝐿...𝑁)) |
| 5 | | swrdccatin2d.2 |
. . . . . . . . 9
⊢ (𝜑 → 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))) |
| 6 | 4, 5 | jca 306 |
. . . . . . . 8
⊢ (𝜑 → (𝑀 ∈ (𝐿...𝑁) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) |
| 7 | 6 | adantl 277 |
. . . . . . 7
⊢
(((♯‘𝐴)
= 𝐿 ∧ 𝜑) → (𝑀 ∈ (𝐿...𝑁) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) |
| 8 | | oveq1 5974 |
. . . . . . . . . 10
⊢
((♯‘𝐴) =
𝐿 →
((♯‘𝐴)...𝑁) = (𝐿...𝑁)) |
| 9 | 8 | eleq2d 2277 |
. . . . . . . . 9
⊢
((♯‘𝐴) =
𝐿 → (𝑀 ∈ ((♯‘𝐴)...𝑁) ↔ 𝑀 ∈ (𝐿...𝑁))) |
| 10 | | id 19 |
. . . . . . . . . . 11
⊢
((♯‘𝐴) =
𝐿 →
(♯‘𝐴) = 𝐿) |
| 11 | | oveq1 5974 |
. . . . . . . . . . 11
⊢
((♯‘𝐴) =
𝐿 →
((♯‘𝐴) +
(♯‘𝐵)) = (𝐿 + (♯‘𝐵))) |
| 12 | 10, 11 | oveq12d 5985 |
. . . . . . . . . 10
⊢
((♯‘𝐴) =
𝐿 →
((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))) = (𝐿...(𝐿 + (♯‘𝐵)))) |
| 13 | 12 | eleq2d 2277 |
. . . . . . . . 9
⊢
((♯‘𝐴) =
𝐿 → (𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))) ↔ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵))))) |
| 14 | 9, 13 | anbi12d 473 |
. . . . . . . 8
⊢
((♯‘𝐴) =
𝐿 → ((𝑀 ∈ ((♯‘𝐴)...𝑁) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))) ↔ (𝑀 ∈ (𝐿...𝑁) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))))) |
| 15 | 14 | adantr 276 |
. . . . . . 7
⊢
(((♯‘𝐴)
= 𝐿 ∧ 𝜑) → ((𝑀 ∈ ((♯‘𝐴)...𝑁) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))) ↔ (𝑀 ∈ (𝐿...𝑁) ∧ 𝑁 ∈ (𝐿...(𝐿 + (♯‘𝐵)))))) |
| 16 | 7, 15 | mpbird 167 |
. . . . . 6
⊢
(((♯‘𝐴)
= 𝐿 ∧ 𝜑) → (𝑀 ∈ ((♯‘𝐴)...𝑁) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))))) |
| 17 | 3, 16 | jca 306 |
. . . . 5
⊢
(((♯‘𝐴)
= 𝐿 ∧ 𝜑) → ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ ((♯‘𝐴)...𝑁) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))))) |
| 18 | 17 | ex 115 |
. . . 4
⊢
((♯‘𝐴) =
𝐿 → (𝜑 → ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ ((♯‘𝐴)...𝑁) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))))))) |
| 19 | | eqid 2207 |
. . . . . 6
⊢
(♯‘𝐴) =
(♯‘𝐴) |
| 20 | 19 | swrdccatin2 11220 |
. . . . 5
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((𝑀 ∈ ((♯‘𝐴)...𝑁) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵)))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐵 substr 〈(𝑀 − (♯‘𝐴)), (𝑁 − (♯‘𝐴))〉))) |
| 21 | 20 | imp 124 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ ((♯‘𝐴)...𝑁) ∧ 𝑁 ∈ ((♯‘𝐴)...((♯‘𝐴) + (♯‘𝐵))))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐵 substr 〈(𝑀 − (♯‘𝐴)), (𝑁 − (♯‘𝐴))〉)) |
| 22 | 18, 21 | syl6 33 |
. . 3
⊢
((♯‘𝐴) =
𝐿 → (𝜑 → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐵 substr 〈(𝑀 − (♯‘𝐴)), (𝑁 − (♯‘𝐴))〉))) |
| 23 | | oveq2 5975 |
. . . . . 6
⊢
((♯‘𝐴) =
𝐿 → (𝑀 − (♯‘𝐴)) = (𝑀 − 𝐿)) |
| 24 | | oveq2 5975 |
. . . . . 6
⊢
((♯‘𝐴) =
𝐿 → (𝑁 − (♯‘𝐴)) = (𝑁 − 𝐿)) |
| 25 | 23, 24 | opeq12d 3841 |
. . . . 5
⊢
((♯‘𝐴) =
𝐿 → 〈(𝑀 − (♯‘𝐴)), (𝑁 − (♯‘𝐴))〉 = 〈(𝑀 − 𝐿), (𝑁 − 𝐿)〉) |
| 26 | 25 | oveq2d 5983 |
. . . 4
⊢
((♯‘𝐴) =
𝐿 → (𝐵 substr 〈(𝑀 − (♯‘𝐴)), (𝑁 − (♯‘𝐴))〉) = (𝐵 substr 〈(𝑀 − 𝐿), (𝑁 − 𝐿)〉)) |
| 27 | 26 | eqeq2d 2219 |
. . 3
⊢
((♯‘𝐴) =
𝐿 → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐵 substr 〈(𝑀 − (♯‘𝐴)), (𝑁 − (♯‘𝐴))〉) ↔ ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐵 substr 〈(𝑀 − 𝐿), (𝑁 − 𝐿)〉))) |
| 28 | 22, 27 | sylibd 149 |
. 2
⊢
((♯‘𝐴) =
𝐿 → (𝜑 → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐵 substr 〈(𝑀 − 𝐿), (𝑁 − 𝐿)〉))) |
| 29 | 1, 28 | mpcom 36 |
1
⊢ (𝜑 → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = (𝐵 substr 〈(𝑀 − 𝐿), (𝑁 − 𝐿)〉)) |