Metamath Proof Explorer


Theorem rescofuf

Description: The restriction of functor composition is a function from product functor space to functor space. (Contributed by Zhi Wang, 25-Sep-2025)

Ref Expression
Assertion rescofuf ( ∘func ↾ ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) ) ) : ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) ) ⟶ ( 𝐶 Func 𝐸 )

Proof

Step Hyp Ref Expression
1 vex 𝑔 ∈ V
2 vex 𝑓 ∈ V
3 opex ⟨ ( ( 1st𝑔 ) ∘ ( 1st𝑓 ) ) , ( 𝑥 ∈ dom dom ( 2nd𝑓 ) , 𝑦 ∈ dom dom ( 2nd𝑓 ) ↦ ( ( ( ( 1st𝑓 ) ‘ 𝑥 ) ( 2nd𝑔 ) ( ( 1st𝑓 ) ‘ 𝑦 ) ) ∘ ( 𝑥 ( 2nd𝑓 ) 𝑦 ) ) ) ⟩ ∈ V
4 df-cofu func = ( 𝑔 ∈ V , 𝑓 ∈ V ↦ ⟨ ( ( 1st𝑔 ) ∘ ( 1st𝑓 ) ) , ( 𝑥 ∈ dom dom ( 2nd𝑓 ) , 𝑦 ∈ dom dom ( 2nd𝑓 ) ↦ ( ( ( ( 1st𝑓 ) ‘ 𝑥 ) ( 2nd𝑔 ) ( ( 1st𝑓 ) ‘ 𝑦 ) ) ∘ ( 𝑥 ( 2nd𝑓 ) 𝑦 ) ) ) ⟩ )
5 4 ovmpt4g ( ( 𝑔 ∈ 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 ( 𝑔func 𝑓 ) = ⟨ ( ( 1st𝑔 ) ∘ ( 1st𝑓 ) ) , ( 𝑥 ∈ dom dom ( 2nd𝑓 ) , 𝑦 ∈ dom dom ( 2nd𝑓 ) ↦ ( ( ( ( 1st𝑓 ) ‘ 𝑥 ) ( 2nd𝑔 ) ( ( 1st𝑓 ) ‘ 𝑦 ) ) ∘ ( 𝑥 ( 2nd𝑓 ) 𝑦 ) ) ) ⟩
7 simpr ( ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) ∧ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ) → 𝑓 ∈ ( 𝐶 Func 𝐷 ) )
8 simpl ( ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) ∧ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ) → 𝑔 ∈ ( 𝐷 Func 𝐸 ) )
9 7 8 cofucl ( ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) ∧ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ) → ( 𝑔func 𝑓 ) ∈ ( 𝐶 Func 𝐸 ) )
10 6 9 eqeltrrid ( ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) ∧ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ) → ⟨ ( ( 1st𝑔 ) ∘ ( 1st𝑓 ) ) , ( 𝑥 ∈ dom dom ( 2nd𝑓 ) , 𝑦 ∈ dom dom ( 2nd𝑓 ) ↦ ( ( ( ( 1st𝑓 ) ‘ 𝑥 ) ( 2nd𝑔 ) ( ( 1st𝑓 ) ‘ 𝑦 ) ) ∘ ( 𝑥 ( 2nd𝑓 ) 𝑦 ) ) ) ⟩ ∈ ( 𝐶 Func 𝐸 ) )
11 10 rgen2 𝑔 ∈ ( 𝐷 Func 𝐸 ) ∀ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ⟨ ( ( 1st𝑔 ) ∘ ( 1st𝑓 ) ) , ( 𝑥 ∈ dom dom ( 2nd𝑓 ) , 𝑦 ∈ dom dom ( 2nd𝑓 ) ↦ ( ( ( ( 1st𝑓 ) ‘ 𝑥 ) ( 2nd𝑔 ) ( ( 1st𝑓 ) ‘ 𝑦 ) ) ∘ ( 𝑥 ( 2nd𝑓 ) 𝑦 ) ) ) ⟩ ∈ ( 𝐶 Func 𝐸 )
12 4 reseq1i ( ∘func ↾ ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) ) ) = ( ( 𝑔 ∈ V , 𝑓 ∈ V ↦ ⟨ ( ( 1st𝑔 ) ∘ ( 1st𝑓 ) ) , ( 𝑥 ∈ dom dom ( 2nd𝑓 ) , 𝑦 ∈ dom dom ( 2nd𝑓 ) ↦ ( ( ( ( 1st𝑓 ) ‘ 𝑥 ) ( 2nd𝑔 ) ( ( 1st𝑓 ) ‘ 𝑦 ) ) ∘ ( 𝑥 ( 2nd𝑓 ) 𝑦 ) ) ) ⟩ ) ↾ ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) ) )
13 ssv ( 𝐷 Func 𝐸 ) ⊆ V
14 ssv ( 𝐶 Func 𝐷 ) ⊆ V
15 resmpo ( ( ( 𝐷 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 ( ( 𝑔 ∈ 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 ( ∘func ↾ ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) ) ) = ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) , 𝑓 ∈ ( 𝐶 Func 𝐷 ) ↦ ⟨ ( ( 1st𝑔 ) ∘ ( 1st𝑓 ) ) , ( 𝑥 ∈ dom dom ( 2nd𝑓 ) , 𝑦 ∈ dom dom ( 2nd𝑓 ) ↦ ( ( ( ( 1st𝑓 ) ‘ 𝑥 ) ( 2nd𝑔 ) ( ( 1st𝑓 ) ‘ 𝑦 ) ) ∘ ( 𝑥 ( 2nd𝑓 ) 𝑦 ) ) ) ⟩ )
18 17 fmpo ( ∀ 𝑔 ∈ ( 𝐷 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 ( ∘func ↾ ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) ) ) : ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) ) ⟶ ( 𝐶 Func 𝐸 )