Step | Hyp | Ref
| Expression |
1 | | ccatcl 13212 |
. . . . 5
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝐴 ++ 𝐵) ∈ Word 𝑉) |
2 | 1 | adantr 480 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐴 ++ 𝐵) ∈ Word 𝑉) |
3 | | elfz0fzfz0 12313 |
. . . . 5
⊢ ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → 𝑀 ∈ (0...𝑁)) |
4 | 3 | adantl 481 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝑀 ∈ (0...𝑁)) |
5 | | elfzuz2 12217 |
. . . . . . . . 9
⊢ (𝑀 ∈ (0...𝐿) → 𝐿 ∈
(ℤ≥‘0)) |
6 | 5 | adantl 481 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → 𝐿 ∈
(ℤ≥‘0)) |
7 | | fzss1 12251 |
. . . . . . . 8
⊢ (𝐿 ∈
(ℤ≥‘0) → (𝐿...(𝐿 + (#‘𝐵))) ⊆ (0...(𝐿 + (#‘𝐵)))) |
8 | 6, 7 | syl 17 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (𝐿...(𝐿 + (#‘𝐵))) ⊆ (0...(𝐿 + (#‘𝐵)))) |
9 | | ccatlen 13213 |
. . . . . . . . . 10
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (#‘(𝐴 ++ 𝐵)) = ((#‘𝐴) + (#‘𝐵))) |
10 | | pfxccatin12.l |
. . . . . . . . . . . 12
⊢ 𝐿 = (#‘𝐴) |
11 | 10 | eqcomi 2619 |
. . . . . . . . . . 11
⊢
(#‘𝐴) = 𝐿 |
12 | 11 | oveq1i 6559 |
. . . . . . . . . 10
⊢
((#‘𝐴) +
(#‘𝐵)) = (𝐿 + (#‘𝐵)) |
13 | 9, 12 | syl6eq 2660 |
. . . . . . . . 9
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (#‘(𝐴 ++ 𝐵)) = (𝐿 + (#‘𝐵))) |
14 | 13 | adantr 480 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (#‘(𝐴 ++ 𝐵)) = (𝐿 + (#‘𝐵))) |
15 | 14 | oveq2d 6565 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (0...(#‘(𝐴 ++ 𝐵))) = (0...(𝐿 + (#‘𝐵)))) |
16 | 8, 15 | sseqtr4d 3605 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (𝐿...(𝐿 + (#‘𝐵))) ⊆ (0...(#‘(𝐴 ++ 𝐵)))) |
17 | 16 | sseld 3567 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...𝐿)) → (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → 𝑁 ∈ (0...(#‘(𝐴 ++ 𝐵))))) |
18 | 17 | impr 647 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝑁 ∈ (0...(#‘(𝐴 ++ 𝐵)))) |
19 | | swrdvalfn 13278 |
. . . 4
⊢ (((𝐴 ++ 𝐵) ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(#‘(𝐴 ++ 𝐵)))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) Fn (0..^(𝑁 − 𝑀))) |
20 | 2, 4, 18, 19 | syl3anc 1318 |
. . 3
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) Fn (0..^(𝑁 − 𝑀))) |
21 | | swrdcl 13271 |
. . . . . . 7
⊢ (𝐴 ∈ Word 𝑉 → (𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉) |
22 | | pfxcl 40249 |
. . . . . . 7
⊢ (𝐵 ∈ Word 𝑉 → (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉) |
23 | 21, 22 | anim12i 588 |
. . . . . 6
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉)) |
24 | 23 | adantr 480 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉)) |
25 | | ccatvalfn 13218 |
. . . . 5
⊢ (((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉) → ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿))) Fn (0..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿)))))) |
26 | 24, 25 | syl 17 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿))) Fn (0..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿)))))) |
27 | | simpll 786 |
. . . . . . . . 9
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝐴 ∈ Word 𝑉) |
28 | | simprl 790 |
. . . . . . . . 9
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝑀 ∈ (0...𝐿)) |
29 | | lencl 13179 |
. . . . . . . . . . 11
⊢ (𝐴 ∈ Word 𝑉 → (#‘𝐴) ∈
ℕ0) |
30 | | elnn0uz 11601 |
. . . . . . . . . . . . 13
⊢
((#‘𝐴) ∈
ℕ0 ↔ (#‘𝐴) ∈
(ℤ≥‘0)) |
31 | | eluzfz2 12220 |
. . . . . . . . . . . . 13
⊢
((#‘𝐴) ∈
(ℤ≥‘0) → (#‘𝐴) ∈ (0...(#‘𝐴))) |
32 | 30, 31 | sylbi 206 |
. . . . . . . . . . . 12
⊢
((#‘𝐴) ∈
ℕ0 → (#‘𝐴) ∈ (0...(#‘𝐴))) |
33 | 10, 32 | syl5eqel 2692 |
. . . . . . . . . . 11
⊢
((#‘𝐴) ∈
ℕ0 → 𝐿 ∈ (0...(#‘𝐴))) |
34 | 29, 33 | syl 17 |
. . . . . . . . . 10
⊢ (𝐴 ∈ Word 𝑉 → 𝐿 ∈ (0...(#‘𝐴))) |
35 | 34 | ad2antrr 758 |
. . . . . . . . 9
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝐿 ∈ (0...(#‘𝐴))) |
36 | | swrdlen 13275 |
. . . . . . . . 9
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(#‘𝐴))) → (#‘(𝐴 substr 〈𝑀, 𝐿〉)) = (𝐿 − 𝑀)) |
37 | 27, 28, 35, 36 | syl3anc 1318 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (#‘(𝐴 substr 〈𝑀, 𝐿〉)) = (𝐿 − 𝑀)) |
38 | | simplr 788 |
. . . . . . . . 9
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝐵 ∈ Word 𝑉) |
39 | | lencl 13179 |
. . . . . . . . . . . . 13
⊢ (𝐵 ∈ Word 𝑉 → (#‘𝐵) ∈
ℕ0) |
40 | 39 | nn0zd 11356 |
. . . . . . . . . . . 12
⊢ (𝐵 ∈ Word 𝑉 → (#‘𝐵) ∈ ℤ) |
41 | 40 | adantl 481 |
. . . . . . . . . . 11
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (#‘𝐵) ∈ ℤ) |
42 | | simpr 476 |
. . . . . . . . . . 11
⊢ ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) |
43 | 41, 42 | anim12i 588 |
. . . . . . . . . 10
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((#‘𝐵) ∈ ℤ ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) |
44 | | elfzmlbp 12319 |
. . . . . . . . . 10
⊢
(((#‘𝐵) ∈
ℤ ∧ 𝑁 ∈
(𝐿...(𝐿 + (#‘𝐵)))) → (𝑁 − 𝐿) ∈ (0...(#‘𝐵))) |
45 | 43, 44 | syl 17 |
. . . . . . . . 9
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝑁 − 𝐿) ∈ (0...(#‘𝐵))) |
46 | | pfxlen 40254 |
. . . . . . . . 9
⊢ ((𝐵 ∈ Word 𝑉 ∧ (𝑁 − 𝐿) ∈ (0...(#‘𝐵))) → (#‘(𝐵 prefix (𝑁 − 𝐿))) = (𝑁 − 𝐿)) |
47 | 38, 45, 46 | syl2anc 691 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (#‘(𝐵 prefix (𝑁 − 𝐿))) = (𝑁 − 𝐿)) |
48 | 37, 47 | oveq12d 6567 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿)))) = ((𝐿 − 𝑀) + (𝑁 − 𝐿))) |
49 | | elfz2nn0 12300 |
. . . . . . . . . . 11
⊢ (𝑀 ∈ (0...𝐿) ↔ (𝑀 ∈ ℕ0 ∧ 𝐿 ∈ ℕ0
∧ 𝑀 ≤ 𝐿)) |
50 | | elfzelz 12213 |
. . . . . . . . . . . . . 14
⊢ (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → 𝑁 ∈ ℤ) |
51 | | nn0cn 11179 |
. . . . . . . . . . . . . . . . . 18
⊢ (𝐿 ∈ ℕ0
→ 𝐿 ∈
ℂ) |
52 | 51 | adantl 481 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0) → 𝐿 ∈ ℂ) |
53 | 52 | adantl 481 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0)) → 𝐿 ∈ ℂ) |
54 | | nn0cn 11179 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑀 ∈ ℕ0
→ 𝑀 ∈
ℂ) |
55 | 54 | ad2antrl 760 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0)) → 𝑀 ∈ ℂ) |
56 | | zcn 11259 |
. . . . . . . . . . . . . . . . 17
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℂ) |
57 | 56 | adantr 480 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0)) → 𝑁 ∈ ℂ) |
58 | 53, 55, 57 | 3jca 1235 |
. . . . . . . . . . . . . . 15
⊢ ((𝑁 ∈ ℤ ∧ (𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0)) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)) |
59 | 58 | ex 449 |
. . . . . . . . . . . . . 14
⊢ (𝑁 ∈ ℤ → ((𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))) |
60 | 50, 59 | syl 17 |
. . . . . . . . . . . . 13
⊢ (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → ((𝑀 ∈ ℕ0 ∧ 𝐿 ∈ ℕ0)
→ (𝐿 ∈ ℂ
∧ 𝑀 ∈ ℂ
∧ 𝑁 ∈
ℂ))) |
61 | 60 | com12 32 |
. . . . . . . . . . . 12
⊢ ((𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0) → (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))) |
62 | 61 | 3adant3 1074 |
. . . . . . . . . . 11
⊢ ((𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0 ∧ 𝑀
≤ 𝐿) → (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))) |
63 | 49, 62 | sylbi 206 |
. . . . . . . . . 10
⊢ (𝑀 ∈ (0...𝐿) → (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ))) |
64 | 63 | imp 444 |
. . . . . . . . 9
⊢ ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)) |
65 | 64 | adantl 481 |
. . . . . . . 8
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ)) |
66 | | npncan3 10198 |
. . . . . . . 8
⊢ ((𝐿 ∈ ℂ ∧ 𝑀 ∈ ℂ ∧ 𝑁 ∈ ℂ) → ((𝐿 − 𝑀) + (𝑁 − 𝐿)) = (𝑁 − 𝑀)) |
67 | 65, 66 | syl 17 |
. . . . . . 7
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐿 − 𝑀) + (𝑁 − 𝐿)) = (𝑁 − 𝑀)) |
68 | 48, 67 | eqtr2d 2645 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝑁 − 𝑀) = ((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿))))) |
69 | 68 | oveq2d 6565 |
. . . . 5
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (0..^(𝑁 − 𝑀)) = (0..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿)))))) |
70 | 69 | fneq2d 5896 |
. . . 4
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿))) Fn (0..^(𝑁 − 𝑀)) ↔ ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿))) Fn (0..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿))))))) |
71 | 26, 70 | mpbird 246 |
. . 3
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿))) Fn (0..^(𝑁 − 𝑀))) |
72 | | simprl 790 |
. . . . . 6
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))))) |
73 | | simpr 476 |
. . . . . . . 8
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → 𝑘 ∈ (0..^(𝑁 − 𝑀))) |
74 | 73 | anim2i 591 |
. . . . . . 7
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) |
75 | 74 | ancomd 466 |
. . . . . 6
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (𝑘 ∈ (0..^(𝑁 − 𝑀)) ∧ 𝑘 ∈ (0..^(𝐿 − 𝑀)))) |
76 | 10 | swrdccatin12lem3 13341 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝑘 ∈ (0..^(𝑁 − 𝑀)) ∧ 𝑘 ∈ (0..^(𝐿 − 𝑀))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = ((𝐴 substr 〈𝑀, 𝐿〉)‘𝑘))) |
77 | 72, 75, 76 | sylc 63 |
. . . . 5
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = ((𝐴 substr 〈𝑀, 𝐿〉)‘𝑘)) |
78 | 24 | ad2antrl 760 |
. . . . . . 7
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → ((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉)) |
79 | | simpl 472 |
. . . . . . . 8
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → 𝑘 ∈ (0..^(𝐿 − 𝑀))) |
80 | | nn0fz0 12306 |
. . . . . . . . . . . . . . 15
⊢
((#‘𝐴) ∈
ℕ0 ↔ (#‘𝐴) ∈ (0...(#‘𝐴))) |
81 | 29, 80 | sylib 207 |
. . . . . . . . . . . . . 14
⊢ (𝐴 ∈ Word 𝑉 → (#‘𝐴) ∈ (0...(#‘𝐴))) |
82 | 10, 81 | syl5eqel 2692 |
. . . . . . . . . . . . 13
⊢ (𝐴 ∈ Word 𝑉 → 𝐿 ∈ (0...(#‘𝐴))) |
83 | 82 | ad2antrr 758 |
. . . . . . . . . . . 12
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → 𝐿 ∈ (0...(#‘𝐴))) |
84 | 27, 28, 83 | 3jca 1235 |
. . . . . . . . . . 11
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(#‘𝐴)))) |
85 | 84 | ad2antrl 760 |
. . . . . . . . . 10
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (𝐴 ∈ Word 𝑉 ∧ 𝑀 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(#‘𝐴)))) |
86 | 85, 36 | syl 17 |
. . . . . . . . 9
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (#‘(𝐴 substr 〈𝑀, 𝐿〉)) = (𝐿 − 𝑀)) |
87 | 86 | oveq2d 6565 |
. . . . . . . 8
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (0..^(#‘(𝐴 substr 〈𝑀, 𝐿〉))) = (0..^(𝐿 − 𝑀))) |
88 | 79, 87 | eleqtrrd 2691 |
. . . . . . 7
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → 𝑘 ∈ (0..^(#‘(𝐴 substr 〈𝑀, 𝐿〉)))) |
89 | | df-3an 1033 |
. . . . . . 7
⊢ (((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉 ∧ 𝑘 ∈ (0..^(#‘(𝐴 substr 〈𝑀, 𝐿〉)))) ↔ (((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉) ∧ 𝑘 ∈ (0..^(#‘(𝐴 substr 〈𝑀, 𝐿〉))))) |
90 | 78, 88, 89 | sylanbrc 695 |
. . . . . 6
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → ((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉 ∧ 𝑘 ∈ (0..^(#‘(𝐴 substr 〈𝑀, 𝐿〉))))) |
91 | | ccatval1 13214 |
. . . . . 6
⊢ (((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉 ∧ 𝑘 ∈ (0..^(#‘(𝐴 substr 〈𝑀, 𝐿〉)))) → (((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿)))‘𝑘) = ((𝐴 substr 〈𝑀, 𝐿〉)‘𝑘)) |
92 | 90, 91 | syl 17 |
. . . . 5
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿)))‘𝑘) = ((𝐴 substr 〈𝑀, 𝐿〉)‘𝑘)) |
93 | 77, 92 | eqtr4d 2647 |
. . . 4
⊢ ((𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = (((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿)))‘𝑘)) |
94 | | simprl 790 |
. . . . . 6
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))))) |
95 | 73 | anim2i 591 |
. . . . . . 7
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (¬ 𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) |
96 | 95 | ancomd 466 |
. . . . . 6
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (𝑘 ∈ (0..^(𝑁 − 𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿 − 𝑀)))) |
97 | 10 | pfxccatin12lem2 40287 |
. . . . . 6
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝑘 ∈ (0..^(𝑁 − 𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿 − 𝑀))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = ((𝐵 prefix (𝑁 − 𝐿))‘(𝑘 − (#‘(𝐴 substr 〈𝑀, 𝐿〉)))))) |
98 | 94, 96, 97 | sylc 63 |
. . . . 5
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = ((𝐵 prefix (𝑁 − 𝐿))‘(𝑘 − (#‘(𝐴 substr 〈𝑀, 𝐿〉))))) |
99 | 24 | ad2antrl 760 |
. . . . . . 7
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → ((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉)) |
100 | | elfzuz 12209 |
. . . . . . . . . . . . 13
⊢ (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → 𝑁 ∈ (ℤ≥‘𝐿)) |
101 | | eluzelz 11573 |
. . . . . . . . . . . . . 14
⊢ (𝑁 ∈
(ℤ≥‘𝐿) → 𝑁 ∈ ℤ) |
102 | | simpll 786 |
. . . . . . . . . . . . . . . . . . 19
⊢ (((𝐿 ∈ ℕ0
∧ 𝑀 ∈
ℕ0) ∧ 𝑁 ∈ ℤ) → 𝐿 ∈
ℕ0) |
103 | | simplr 788 |
. . . . . . . . . . . . . . . . . . 19
⊢ (((𝐿 ∈ ℕ0
∧ 𝑀 ∈
ℕ0) ∧ 𝑁 ∈ ℤ) → 𝑀 ∈
ℕ0) |
104 | | simpr 476 |
. . . . . . . . . . . . . . . . . . 19
⊢ (((𝐿 ∈ ℕ0
∧ 𝑀 ∈
ℕ0) ∧ 𝑁 ∈ ℤ) → 𝑁 ∈ ℤ) |
105 | 102, 103,
104 | 3jca 1235 |
. . . . . . . . . . . . . . . . . 18
⊢ (((𝐿 ∈ ℕ0
∧ 𝑀 ∈
ℕ0) ∧ 𝑁 ∈ ℤ) → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ)) |
106 | 105 | ex 449 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝐿 ∈ ℕ0
∧ 𝑀 ∈
ℕ0) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ))) |
107 | 106 | ancoms 468 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ))) |
108 | 107 | 3adant3 1074 |
. . . . . . . . . . . . . . 15
⊢ ((𝑀 ∈ ℕ0
∧ 𝐿 ∈
ℕ0 ∧ 𝑀
≤ 𝐿) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0
∧ 𝑀 ∈
ℕ0 ∧ 𝑁
∈ ℤ))) |
109 | 49, 108 | sylbi 206 |
. . . . . . . . . . . . . 14
⊢ (𝑀 ∈ (0...𝐿) → (𝑁 ∈ ℤ → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ))) |
110 | 101, 109 | syl5com 31 |
. . . . . . . . . . . . 13
⊢ (𝑁 ∈
(ℤ≥‘𝐿) → (𝑀 ∈ (0...𝐿) → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ))) |
111 | 100, 110 | syl 17 |
. . . . . . . . . . . 12
⊢ (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → (𝑀 ∈ (0...𝐿) → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ))) |
112 | 111 | impcom 445 |
. . . . . . . . . . 11
⊢ ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ)) |
113 | 112 | adantl 481 |
. . . . . . . . . 10
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ)) |
114 | 113 | ad2antrl 760 |
. . . . . . . . 9
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (𝐿 ∈ ℕ0 ∧ 𝑀 ∈ ℕ0
∧ 𝑁 ∈
ℤ)) |
115 | | swrdccatin12lem1 13335 |
. . . . . . . . 9
⊢ ((𝐿 ∈ ℕ0
∧ 𝑀 ∈
ℕ0 ∧ 𝑁
∈ ℤ) → ((𝑘
∈ (0..^(𝑁 −
𝑀)) ∧ ¬ 𝑘 ∈ (0..^(𝐿 − 𝑀))) → 𝑘 ∈ ((𝐿 − 𝑀)..^((𝐿 − 𝑀) + (𝑁 − 𝐿))))) |
116 | 114, 96, 115 | sylc 63 |
. . . . . . . 8
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → 𝑘 ∈ ((𝐿 − 𝑀)..^((𝐿 − 𝑀) + (𝑁 − 𝐿)))) |
117 | 27, 28, 83, 36 | syl3anc 1318 |
. . . . . . . . . 10
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (#‘(𝐴 substr 〈𝑀, 𝐿〉)) = (𝐿 − 𝑀)) |
118 | | simpr 476 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → 𝐵 ∈ Word 𝑉) |
119 | 118 | adantl 481 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) → 𝐵 ∈ Word 𝑉) |
120 | 41 | adantl 481 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) → (#‘𝐵) ∈ ℤ) |
121 | | simpl 472 |
. . . . . . . . . . . . . . . . 17
⊢ ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) → 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) |
122 | 120, 121,
44 | syl2anc 691 |
. . . . . . . . . . . . . . . 16
⊢ ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) → (𝑁 − 𝐿) ∈ (0...(#‘𝐵))) |
123 | 119, 122 | jca 553 |
. . . . . . . . . . . . . . 15
⊢ ((𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) ∧ (𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉)) → (𝐵 ∈ Word 𝑉 ∧ (𝑁 − 𝐿) ∈ (0...(#‘𝐵)))) |
124 | 123 | ex 449 |
. . . . . . . . . . . . . 14
⊢ (𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))) → ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝐵 ∈ Word 𝑉 ∧ (𝑁 − 𝐿) ∈ (0...(#‘𝐵))))) |
125 | 124 | adantl 481 |
. . . . . . . . . . . . 13
⊢ ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → (𝐵 ∈ Word 𝑉 ∧ (𝑁 − 𝐿) ∈ (0...(#‘𝐵))))) |
126 | 125 | impcom 445 |
. . . . . . . . . . . 12
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (𝐵 ∈ Word 𝑉 ∧ (𝑁 − 𝐿) ∈ (0...(#‘𝐵)))) |
127 | 126, 46 | syl 17 |
. . . . . . . . . . 11
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → (#‘(𝐵 prefix (𝑁 − 𝐿))) = (𝑁 − 𝐿)) |
128 | 117, 127 | oveq12d 6567 |
. . . . . . . . . 10
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿)))) = ((𝐿 − 𝑀) + (𝑁 − 𝐿))) |
129 | 117, 128 | oveq12d 6567 |
. . . . . . . . 9
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((#‘(𝐴 substr 〈𝑀, 𝐿〉))..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿))))) = ((𝐿 − 𝑀)..^((𝐿 − 𝑀) + (𝑁 − 𝐿)))) |
130 | 129 | ad2antrl 760 |
. . . . . . . 8
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → ((#‘(𝐴 substr 〈𝑀, 𝐿〉))..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿))))) = ((𝐿 − 𝑀)..^((𝐿 − 𝑀) + (𝑁 − 𝐿)))) |
131 | 116, 130 | eleqtrrd 2691 |
. . . . . . 7
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → 𝑘 ∈ ((#‘(𝐴 substr 〈𝑀, 𝐿〉))..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿)))))) |
132 | | df-3an 1033 |
. . . . . . 7
⊢ (((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉 ∧ 𝑘 ∈ ((#‘(𝐴 substr 〈𝑀, 𝐿〉))..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿)))))) ↔ (((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉) ∧ 𝑘 ∈ ((#‘(𝐴 substr 〈𝑀, 𝐿〉))..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿))))))) |
133 | 99, 131, 132 | sylanbrc 695 |
. . . . . 6
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → ((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉 ∧ 𝑘 ∈ ((#‘(𝐴 substr 〈𝑀, 𝐿〉))..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿))))))) |
134 | | ccatval2 13215 |
. . . . . 6
⊢ (((𝐴 substr 〈𝑀, 𝐿〉) ∈ Word 𝑉 ∧ (𝐵 prefix (𝑁 − 𝐿)) ∈ Word 𝑉 ∧ 𝑘 ∈ ((#‘(𝐴 substr 〈𝑀, 𝐿〉))..^((#‘(𝐴 substr 〈𝑀, 𝐿〉)) + (#‘(𝐵 prefix (𝑁 − 𝐿)))))) → (((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿)))‘𝑘) = ((𝐵 prefix (𝑁 − 𝐿))‘(𝑘 − (#‘(𝐴 substr 〈𝑀, 𝐿〉))))) |
135 | 133, 134 | syl 17 |
. . . . 5
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿)))‘𝑘) = ((𝐵 prefix (𝑁 − 𝐿))‘(𝑘 − (#‘(𝐴 substr 〈𝑀, 𝐿〉))))) |
136 | 98, 135 | eqtr4d 2647 |
. . . 4
⊢ ((¬
𝑘 ∈ (0..^(𝐿 − 𝑀)) ∧ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀)))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = (((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿)))‘𝑘)) |
137 | 93, 136 | pm2.61ian 827 |
. . 3
⊢ ((((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) ∧ 𝑘 ∈ (0..^(𝑁 − 𝑀))) → (((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉)‘𝑘) = (((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿)))‘𝑘)) |
138 | 20, 71, 137 | eqfnfvd 6222 |
. 2
⊢ (((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) ∧ (𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵))))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿)))) |
139 | 138 | ex 449 |
1
⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐵 ∈ Word 𝑉) → ((𝑀 ∈ (0...𝐿) ∧ 𝑁 ∈ (𝐿...(𝐿 + (#‘𝐵)))) → ((𝐴 ++ 𝐵) substr 〈𝑀, 𝑁〉) = ((𝐴 substr 〈𝑀, 𝐿〉) ++ (𝐵 prefix (𝑁 − 𝐿))))) |