Step | Hyp | Ref
| Expression |
1 | | ccatcl 13546 |
. . 3
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) ∈ Word 𝐵) |
2 | | lencl 13510 |
. . . . . 6
⊢ (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈
ℕ0) |
3 | | lencl 13510 |
. . . . . 6
⊢ (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈
ℕ0) |
4 | 2, 3 | anim12i 591 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((♯‘𝑆) ∈ ℕ0 ∧
(♯‘𝑇) ∈
ℕ0)) |
5 | | nn0fz0 12631 |
. . . . . . 7
⊢
((♯‘𝑆)
∈ ℕ0 ↔ (♯‘𝑆) ∈ (0...(♯‘𝑆))) |
6 | 2, 5 | sylib 208 |
. . . . . 6
⊢ (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ (0...(♯‘𝑆))) |
7 | 6 | adantr 472 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ (0...(♯‘𝑆))) |
8 | | elfz0add 12632 |
. . . . 5
⊢
(((♯‘𝑆)
∈ ℕ0 ∧ (♯‘𝑇) ∈ ℕ0) →
((♯‘𝑆) ∈
(0...(♯‘𝑆))
→ (♯‘𝑆)
∈ (0...((♯‘𝑆) + (♯‘𝑇))))) |
9 | 4, 7, 8 | sylc 65 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ (0...((♯‘𝑆) + (♯‘𝑇)))) |
10 | | ccatlen 13547 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (♯‘(𝑆 ++ 𝑇)) = ((♯‘𝑆) + (♯‘𝑇))) |
11 | 10 | oveq2d 6829 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (0...(♯‘(𝑆 ++ 𝑇))) = (0...((♯‘𝑆) + (♯‘𝑇)))) |
12 | 9, 11 | eleqtrrd 2842 |
. . 3
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ (0...(♯‘(𝑆 ++ 𝑇)))) |
13 | | pfxres 41898 |
. . 3
⊢ (((𝑆 ++ 𝑇) ∈ Word 𝐵 ∧ (♯‘𝑆) ∈ (0...(♯‘(𝑆 ++ 𝑇)))) → ((𝑆 ++ 𝑇) prefix (♯‘𝑆)) = ((𝑆 ++ 𝑇) ↾ (0..^(♯‘𝑆)))) |
14 | 1, 12, 13 | syl2anc 696 |
. 2
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) prefix (♯‘𝑆)) = ((𝑆 ++ 𝑇) ↾ (0..^(♯‘𝑆)))) |
15 | | ccatvalfn 13553 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇)))) |
16 | 2 | nn0zd 11672 |
. . . . . . 7
⊢ (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈ ℤ) |
17 | | uzid 11894 |
. . . . . . 7
⊢
((♯‘𝑆)
∈ ℤ → (♯‘𝑆) ∈
(ℤ≥‘(♯‘𝑆))) |
18 | 16, 17 | syl 17 |
. . . . . 6
⊢ (𝑆 ∈ Word 𝐵 → (♯‘𝑆) ∈
(ℤ≥‘(♯‘𝑆))) |
19 | | uzaddcl 11937 |
. . . . . 6
⊢
(((♯‘𝑆)
∈ (ℤ≥‘(♯‘𝑆)) ∧ (♯‘𝑇) ∈ ℕ0) →
((♯‘𝑆) +
(♯‘𝑇)) ∈
(ℤ≥‘(♯‘𝑆))) |
20 | 18, 3, 19 | syl2an 495 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈
(ℤ≥‘(♯‘𝑆))) |
21 | | fzoss2 12690 |
. . . . 5
⊢
(((♯‘𝑆)
+ (♯‘𝑇)) ∈
(ℤ≥‘(♯‘𝑆)) → (0..^(♯‘𝑆)) ⊆
(0..^((♯‘𝑆) +
(♯‘𝑇)))) |
22 | 20, 21 | syl 17 |
. . . 4
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → (0..^(♯‘𝑆)) ⊆
(0..^((♯‘𝑆) +
(♯‘𝑇)))) |
23 | | fnssres 6165 |
. . . 4
⊢ (((𝑆 ++ 𝑇) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ (0..^(♯‘𝑆)) ⊆
(0..^((♯‘𝑆) +
(♯‘𝑇)))) →
((𝑆 ++ 𝑇) ↾ (0..^(♯‘𝑆))) Fn (0..^(♯‘𝑆))) |
24 | 15, 22, 23 | syl2anc 696 |
. . 3
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) ↾ (0..^(♯‘𝑆))) Fn (0..^(♯‘𝑆))) |
25 | | wrdfn 13505 |
. . . 4
⊢ (𝑆 ∈ Word 𝐵 → 𝑆 Fn (0..^(♯‘𝑆))) |
26 | 25 | adantr 472 |
. . 3
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → 𝑆 Fn (0..^(♯‘𝑆))) |
27 | | fvres 6368 |
. . . . 5
⊢ (𝑘 ∈
(0..^(♯‘𝑆))
→ (((𝑆 ++ 𝑇) ↾
(0..^(♯‘𝑆)))‘𝑘) = ((𝑆 ++ 𝑇)‘𝑘)) |
28 | 27 | adantl 473 |
. . . 4
⊢ (((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑘 ∈ (0..^(♯‘𝑆))) → (((𝑆 ++ 𝑇) ↾ (0..^(♯‘𝑆)))‘𝑘) = ((𝑆 ++ 𝑇)‘𝑘)) |
29 | | ccatval1 13549 |
. . . . 5
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵 ∧ 𝑘 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑘) = (𝑆‘𝑘)) |
30 | 29 | 3expa 1112 |
. . . 4
⊢ (((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑘 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝑘) = (𝑆‘𝑘)) |
31 | 28, 30 | eqtrd 2794 |
. . 3
⊢ (((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑘 ∈ (0..^(♯‘𝑆))) → (((𝑆 ++ 𝑇) ↾ (0..^(♯‘𝑆)))‘𝑘) = (𝑆‘𝑘)) |
32 | 24, 26, 31 | eqfnfvd 6477 |
. 2
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) ↾ (0..^(♯‘𝑆))) = 𝑆) |
33 | 14, 32 | eqtrd 2794 |
1
⊢ ((𝑆 ∈ Word 𝐵 ∧ 𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) prefix (♯‘𝑆)) = 𝑆) |