Step | Hyp | Ref
| Expression |
1 | | ccatcl 13359 |
. . 3
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) ∈ Word 𝐵) |
2 | | lencl 13324 |
. . . . . 6
⊢ (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈
ℕ0) |
3 | | lencl 13324 |
. . . . . 6
⊢ (𝑇 ∈ Word 𝐵 → (#‘𝑇) ∈
ℕ0) |
4 | 2, 3 | anim12i 590 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((#‘𝑆) ∈ ℕ0 ∧
(#‘𝑇) ∈
ℕ0)) |
5 | | nn0fz0 12437 |
. . . . . . 7
⊢
((#‘𝑆) ∈
ℕ0 ↔ (#‘𝑆) ∈ (0...(#‘𝑆))) |
6 | 2, 5 | sylib 208 |
. . . . . 6
⊢ (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈ (0...(#‘𝑆))) |
7 | 6 | adantr 481 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (0...(#‘𝑆))) |
8 | | elfz0add 12438 |
. . . . 5
⊢
(((#‘𝑆) ∈
ℕ0 ∧ (#‘𝑇) ∈ ℕ0) →
((#‘𝑆) ∈
(0...(#‘𝑆)) →
(#‘𝑆) ∈
(0...((#‘𝑆) +
(#‘𝑇))))) |
9 | 4, 7, 8 | sylc 65 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (0...((#‘𝑆) + (#‘𝑇)))) |
10 | | ccatlen 13360 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (#‘(𝑆 ++ 𝑇)) = ((#‘𝑆) + (#‘𝑇))) |
11 | 10 | oveq2d 6666 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (0...(#‘(𝑆 ++ 𝑇))) = (0...((#‘𝑆) + (#‘𝑇)))) |
12 | 9, 11 | eleqtrrd 2704 |
. . 3
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (#‘𝑆) ∈ (0...(#‘(𝑆 ++ 𝑇)))) |
13 | | pfxres 41388 |
. . 3
⊢ (((𝑆 ++ 𝑇) ∈ Word 𝐵 ∧ (#‘𝑆) ∈ (0...(#‘(𝑆 ++ 𝑇)))) → ((𝑆 ++ 𝑇) prefix (#‘𝑆)) = ((𝑆 ++ 𝑇) ↾ (0..^(#‘𝑆)))) |
14 | 1, 12, 13 | syl2anc 693 |
. 2
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) prefix (#‘𝑆)) = ((𝑆 ++ 𝑇) ↾ (0..^(#‘𝑆)))) |
15 | | ccatvalfn 13365 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇)))) |
16 | 2 | nn0zd 11480 |
. . . . . . 7
⊢ (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈ ℤ) |
17 | | uzid 11702 |
. . . . . . 7
⊢
((#‘𝑆) ∈
ℤ → (#‘𝑆)
∈ (ℤ≥‘(#‘𝑆))) |
18 | 16, 17 | syl 17 |
. . . . . 6
⊢ (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈
(ℤ≥‘(#‘𝑆))) |
19 | | uzaddcl 11744 |
. . . . . 6
⊢
(((#‘𝑆) ∈
(ℤ≥‘(#‘𝑆)) ∧ (#‘𝑇) ∈ ℕ0) →
((#‘𝑆) +
(#‘𝑇)) ∈
(ℤ≥‘(#‘𝑆))) |
20 | 18, 3, 19 | syl2an 494 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((#‘𝑆) + (#‘𝑇)) ∈
(ℤ≥‘(#‘𝑆))) |
21 | | fzoss2 12496 |
. . . . 5
⊢
(((#‘𝑆) +
(#‘𝑇)) ∈
(ℤ≥‘(#‘𝑆)) → (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇)))) |
22 | 20, 21 | syl 17 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇)))) |
23 | | fnssres 6004 |
. . . 4
⊢ (((𝑆 ++ 𝑇) Fn (0..^((#‘𝑆) + (#‘𝑇))) ∧ (0..^(#‘𝑆)) ⊆ (0..^((#‘𝑆) + (#‘𝑇)))) → ((𝑆 ++ 𝑇) ↾ (0..^(#‘𝑆))) Fn (0..^(#‘𝑆))) |
24 | 15, 22, 23 | syl2anc 693 |
. . 3
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) ↾ (0..^(#‘𝑆))) Fn (0..^(#‘𝑆))) |
25 | | wrdfn 13319 |
. . . 4
⊢ (𝑆 ∈ Word 𝐵 → 𝑆 Fn (0..^(#‘𝑆))) |
26 | 25 | adantr 481 |
. . 3
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → 𝑆 Fn (0..^(#‘𝑆))) |
27 | | fvres 6207 |
. . . . 5
⊢ (𝑘 ∈ (0..^(#‘𝑆)) → (((𝑆 ++ 𝑇) ↾ (0..^(#‘𝑆)))‘𝑘) = ((𝑆 ++ 𝑇)‘𝑘)) |
28 | 27 | adantl 482 |
. . . 4
⊢ (((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑘 ∈ (0..^(#‘𝑆))) → (((𝑆 ++ 𝑇) ↾ (0..^(#‘𝑆)))‘𝑘) = ((𝑆 ++ 𝑇)‘𝑘)) |
29 | | ccatval1 13361 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵 ∧ 𝑘 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑘) = (𝑆‘𝑘)) |
30 | 29 | 3expa 1265 |
. . . 4
⊢ (((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑘 ∈ (0..^(#‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑘) = (𝑆‘𝑘)) |
31 | 28, 30 | eqtrd 2656 |
. . 3
⊢ (((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑘 ∈ (0..^(#‘𝑆))) → (((𝑆 ++ 𝑇) ↾ (0..^(#‘𝑆)))‘𝑘) = (𝑆‘𝑘)) |
32 | 24, 26, 31 | eqfnfvd 6314 |
. 2
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) ↾ (0..^(#‘𝑆))) = 𝑆) |
33 | 14, 32 | eqtrd 2656 |
1
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) prefix (#‘𝑆)) = 𝑆) |