| Step | Hyp | Ref
 | Expression | 
| 1 |   | vex 3467 | 
. . . . 5
⊢ 𝑔 ∈ V | 
| 2 |   | vex 3467 | 
. . . . 5
⊢ 𝑓 ∈ V | 
| 3 |   | opex 5449 | 
. . . . 5
⊢
〈((1st ‘𝑔) ∘ (1st ‘𝑓)), (𝑥 ∈ dom dom (2nd ‘𝑓), 𝑦 ∈ dom dom (2nd ‘𝑓) ↦ ((((1st
‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉 ∈ V | 
| 4 |   | df-cofu 17875 | 
. . . . . 6
⊢ 
∘func = (𝑔 ∈ V, 𝑓 ∈ V ↦ 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉) | 
| 5 | 4 | ovmpt4g 7561 | 
. . . . 5
⊢ ((𝑔 ∈ V ∧ 𝑓 ∈ V ∧
〈((1st ‘𝑔) ∘ (1st ‘𝑓)), (𝑥 ∈ dom dom (2nd ‘𝑓), 𝑦 ∈ dom dom (2nd ‘𝑓) ↦ ((((1st
‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉 ∈ V) → (𝑔 ∘func
𝑓) = 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉) | 
| 6 | 1, 2, 3, 5 | mp3an 1462 | 
. . . 4
⊢ (𝑔 ∘func
𝑓) = 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉 | 
| 7 |   | simpr 484 | 
. . . . 5
⊢ ((𝑔 ∈ (𝐷 Func 𝐸) ∧ 𝑓 ∈ (𝐶 Func 𝐷)) → 𝑓 ∈ (𝐶 Func 𝐷)) | 
| 8 |   | simpl 482 | 
. . . . 5
⊢ ((𝑔 ∈ (𝐷 Func 𝐸) ∧ 𝑓 ∈ (𝐶 Func 𝐷)) → 𝑔 ∈ (𝐷 Func 𝐸)) | 
| 9 | 7, 8 | cofucl 17903 | 
. . . 4
⊢ ((𝑔 ∈ (𝐷 Func 𝐸) ∧ 𝑓 ∈ (𝐶 Func 𝐷)) → (𝑔 ∘func 𝑓) ∈ (𝐶 Func 𝐸)) | 
| 10 | 6, 9 | eqeltrrid 2838 | 
. . 3
⊢ ((𝑔 ∈ (𝐷 Func 𝐸) ∧ 𝑓 ∈ (𝐶 Func 𝐷)) → 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉 ∈ (𝐶 Func 𝐸)) | 
| 11 | 10 | rgen2 3186 | 
. 2
⊢
∀𝑔 ∈
(𝐷 Func 𝐸)∀𝑓 ∈ (𝐶 Func 𝐷)〈((1st ‘𝑔) ∘ (1st
‘𝑓)), (𝑥 ∈ dom dom (2nd
‘𝑓), 𝑦 ∈ dom dom (2nd
‘𝑓) ↦
((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉 ∈ (𝐶 Func 𝐸) | 
| 12 | 4 | reseq1i 5973 | 
. . . 4
⊢ (
∘func ↾ ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))) = ((𝑔 ∈ V, 𝑓 ∈ V ↦ 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉) ↾ ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))) | 
| 13 |   | ssv 3988 | 
. . . . 5
⊢ (𝐷 Func 𝐸) ⊆ V | 
| 14 |   | ssv 3988 | 
. . . . 5
⊢ (𝐶 Func 𝐷) ⊆ V | 
| 15 |   | resmpo 7534 | 
. . . . 5
⊢ (((𝐷 Func 𝐸) ⊆ V ∧ (𝐶 Func 𝐷) ⊆ V) → ((𝑔 ∈ V, 𝑓 ∈ V ↦ 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉) ↾ ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))) = (𝑔 ∈ (𝐷 Func 𝐸), 𝑓 ∈ (𝐶 Func 𝐷) ↦ 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉)) | 
| 16 | 13, 14, 15 | mp2an 692 | 
. . . 4
⊢ ((𝑔 ∈ V, 𝑓 ∈ V ↦ 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉) ↾ ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))) = (𝑔 ∈ (𝐷 Func 𝐸), 𝑓 ∈ (𝐶 Func 𝐷) ↦ 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉) | 
| 17 | 12, 16 | eqtri 2757 | 
. . 3
⊢ (
∘func ↾ ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))) = (𝑔 ∈ (𝐷 Func 𝐸), 𝑓 ∈ (𝐶 Func 𝐷) ↦ 〈((1st
‘𝑔) ∘
(1st ‘𝑓)),
(𝑥 ∈ dom dom
(2nd ‘𝑓),
𝑦 ∈ dom dom
(2nd ‘𝑓)
↦ ((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉) | 
| 18 | 17 | fmpo 8074 | 
. 2
⊢
(∀𝑔 ∈
(𝐷 Func 𝐸)∀𝑓 ∈ (𝐶 Func 𝐷)〈((1st ‘𝑔) ∘ (1st
‘𝑓)), (𝑥 ∈ dom dom (2nd
‘𝑓), 𝑦 ∈ dom dom (2nd
‘𝑓) ↦
((((1st ‘𝑓)‘𝑥)(2nd ‘𝑔)((1st ‘𝑓)‘𝑦)) ∘ (𝑥(2nd ‘𝑓)𝑦)))〉 ∈ (𝐶 Func 𝐸) ↔ ( ∘func
↾ ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))):((𝐷 Func 𝐸) × (𝐶 Func 𝐷))⟶(𝐶 Func 𝐸)) | 
| 19 | 11, 18 | mpbi 230 | 
1
⊢ (
∘func ↾ ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))):((𝐷 Func 𝐸) × (𝐶 Func 𝐷))⟶(𝐶 Func 𝐸) |