| Step | Hyp | Ref
| Expression |
| 1 | | elex 2782 |
. . 3
⊢ (𝑆 ∈ Fin → 𝑆 ∈ V) |
| 2 | 1 | adantr 276 |
. 2
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) → 𝑆 ∈ V) |
| 3 | | elex 2782 |
. . 3
⊢ (𝑇 ∈ Fin → 𝑇 ∈ V) |
| 4 | 3 | adantl 277 |
. 2
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) → 𝑇 ∈ V) |
| 5 | | 0zd 9366 |
. . . 4
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) → 0 ∈
ℤ) |
| 6 | | hashcl 10907 |
. . . . . . 7
⊢ (𝑆 ∈ Fin →
(♯‘𝑆) ∈
ℕ0) |
| 7 | 6 | adantr 276 |
. . . . . 6
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) →
(♯‘𝑆) ∈
ℕ0) |
| 8 | | hashcl 10907 |
. . . . . . 7
⊢ (𝑇 ∈ Fin →
(♯‘𝑇) ∈
ℕ0) |
| 9 | 8 | adantl 277 |
. . . . . 6
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) →
(♯‘𝑇) ∈
ℕ0) |
| 10 | 7, 9 | nn0addcld 9334 |
. . . . 5
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) →
((♯‘𝑆) +
(♯‘𝑇)) ∈
ℕ0) |
| 11 | 10 | nn0zd 9475 |
. . . 4
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) →
((♯‘𝑆) +
(♯‘𝑇)) ∈
ℤ) |
| 12 | | fzofig 10558 |
. . . 4
⊢ ((0
∈ ℤ ∧ ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ) →
(0..^((♯‘𝑆) +
(♯‘𝑇))) ∈
Fin) |
| 13 | 5, 11, 12 | syl2anc 411 |
. . 3
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) →
(0..^((♯‘𝑆) +
(♯‘𝑇))) ∈
Fin) |
| 14 | 13 | mptexd 5801 |
. 2
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) → (𝑥 ∈
(0..^((♯‘𝑆) +
(♯‘𝑇))) ↦
if(𝑥 ∈
(0..^(♯‘𝑆)),
(𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) ∈ V) |
| 15 | | fveq2 5570 |
. . . . . 6
⊢ (𝑠 = 𝑆 → (♯‘𝑠) = (♯‘𝑆)) |
| 16 | 15 | oveq1d 5949 |
. . . . 5
⊢ (𝑠 = 𝑆 → ((♯‘𝑠) + (♯‘𝑡)) = ((♯‘𝑆) + (♯‘𝑡))) |
| 17 | 16 | oveq2d 5950 |
. . . 4
⊢ (𝑠 = 𝑆 → (0..^((♯‘𝑠) + (♯‘𝑡))) = (0..^((♯‘𝑆) + (♯‘𝑡)))) |
| 18 | 15 | oveq2d 5950 |
. . . . . 6
⊢ (𝑠 = 𝑆 → (0..^(♯‘𝑠)) = (0..^(♯‘𝑆))) |
| 19 | 18 | eleq2d 2274 |
. . . . 5
⊢ (𝑠 = 𝑆 → (𝑥 ∈ (0..^(♯‘𝑠)) ↔ 𝑥 ∈ (0..^(♯‘𝑆)))) |
| 20 | | fveq1 5569 |
. . . . 5
⊢ (𝑠 = 𝑆 → (𝑠‘𝑥) = (𝑆‘𝑥)) |
| 21 | 15 | oveq2d 5950 |
. . . . . 6
⊢ (𝑠 = 𝑆 → (𝑥 − (♯‘𝑠)) = (𝑥 − (♯‘𝑆))) |
| 22 | 21 | fveq2d 5574 |
. . . . 5
⊢ (𝑠 = 𝑆 → (𝑡‘(𝑥 − (♯‘𝑠))) = (𝑡‘(𝑥 − (♯‘𝑆)))) |
| 23 | 19, 20, 22 | ifbieq12d 3596 |
. . . 4
⊢ (𝑠 = 𝑆 → if(𝑥 ∈ (0..^(♯‘𝑠)), (𝑠‘𝑥), (𝑡‘(𝑥 − (♯‘𝑠)))) = if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑡‘(𝑥 − (♯‘𝑆))))) |
| 24 | 17, 23 | mpteq12dv 4125 |
. . 3
⊢ (𝑠 = 𝑆 → (𝑥 ∈ (0..^((♯‘𝑠) + (♯‘𝑡))) ↦ if(𝑥 ∈
(0..^(♯‘𝑠)),
(𝑠‘𝑥), (𝑡‘(𝑥 − (♯‘𝑠))))) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑡))) ↦ if(𝑥 ∈
(0..^(♯‘𝑆)),
(𝑆‘𝑥), (𝑡‘(𝑥 − (♯‘𝑆)))))) |
| 25 | | fveq2 5570 |
. . . . . 6
⊢ (𝑡 = 𝑇 → (♯‘𝑡) = (♯‘𝑇)) |
| 26 | 25 | oveq2d 5950 |
. . . . 5
⊢ (𝑡 = 𝑇 → ((♯‘𝑆) + (♯‘𝑡)) = ((♯‘𝑆) + (♯‘𝑇))) |
| 27 | 26 | oveq2d 5950 |
. . . 4
⊢ (𝑡 = 𝑇 → (0..^((♯‘𝑆) + (♯‘𝑡))) = (0..^((♯‘𝑆) + (♯‘𝑇)))) |
| 28 | | fveq1 5569 |
. . . . 5
⊢ (𝑡 = 𝑇 → (𝑡‘(𝑥 − (♯‘𝑆))) = (𝑇‘(𝑥 − (♯‘𝑆)))) |
| 29 | 28 | ifeq2d 3588 |
. . . 4
⊢ (𝑡 = 𝑇 → if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑡‘(𝑥 − (♯‘𝑆)))) = if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) |
| 30 | 27, 29 | mpteq12dv 4125 |
. . 3
⊢ (𝑡 = 𝑇 → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑡))) ↦ if(𝑥 ∈
(0..^(♯‘𝑆)),
(𝑆‘𝑥), (𝑡‘(𝑥 − (♯‘𝑆))))) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈
(0..^(♯‘𝑆)),
(𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))) |
| 31 | | df-concat 11022 |
. . 3
⊢ ++ =
(𝑠 ∈ V, 𝑡 ∈ V ↦ (𝑥 ∈
(0..^((♯‘𝑠) +
(♯‘𝑡))) ↦
if(𝑥 ∈
(0..^(♯‘𝑠)),
(𝑠‘𝑥), (𝑡‘(𝑥 − (♯‘𝑠)))))) |
| 32 | 24, 30, 31 | ovmpog 6070 |
. 2
⊢ ((𝑆 ∈ V ∧ 𝑇 ∈ V ∧ (𝑥 ∈
(0..^((♯‘𝑆) +
(♯‘𝑇))) ↦
if(𝑥 ∈
(0..^(♯‘𝑆)),
(𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) ∈ V) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈
(0..^(♯‘𝑆)),
(𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))) |
| 33 | 2, 4, 14, 32 | syl3anc 1249 |
1
⊢ ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈
(0..^(♯‘𝑆)),
(𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))) |