Metamath Proof Explorer


Theorem precofcl

Description: The pre-composition functor as a transposed curry of the functor composition bifunctor is a functor. (Contributed by Zhi Wang, 11-Oct-2025)

Ref Expression
Hypotheses precofval.q ⊢ 𝑄 = ( 𝐶 FuncCat 𝐷 )
precofval.r ⊢ 𝑅 = ( 𝐷 FuncCat 𝐸 )
precofval.o ⊢ ( 𝜑 → ⚬ = ( ⟨ 𝑄 , 𝑅 ⟩ curryF ( ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ∘func ( 𝑄 swapF 𝑅 ) ) ) )
precofval.f ⊢ ( 𝜑 → 𝐹 ∈ ( 𝐶 Func 𝐷 ) )
precofval.e ⊢ ( 𝜑 → 𝐸 ∈ Cat )
precofval.k ⊢ ( 𝜑 → 𝐾 = ( ( 1st ‘ ⚬ ) ‘ 𝐹 ) )
precofcl.s ⊢ 𝑆 = ( 𝐶 FuncCat 𝐸 )
Assertion precofcl ( 𝜑 → 𝐾 ∈ ( 𝑅 Func 𝑆 ) )

Proof

Step Hyp Ref Expression
1 precofval.q ⊢ 𝑄 = ( 𝐶 FuncCat 𝐷 )
2 precofval.r ⊢ 𝑅 = ( 𝐷 FuncCat 𝐸 )
3 precofval.o ⊢ ( 𝜑 → ⚬ = ( ⟨ 𝑄 , 𝑅 ⟩ curryF ( ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ∘func ( 𝑄 swapF 𝑅 ) ) ) )
4 precofval.f ⊢ ( 𝜑 → 𝐹 ∈ ( 𝐶 Func 𝐷 ) )
5 precofval.e ⊢ ( 𝜑 → 𝐸 ∈ Cat )
6 precofval.k ⊢ ( 𝜑 → 𝐾 = ( ( 1st ‘ ⚬ ) ‘ 𝐹 ) )
7 precofcl.s ⊢ 𝑆 = ( 𝐶 FuncCat 𝐸 )
8 1 fucbas ⊢ ( 𝐶 Func 𝐷 ) = ( Base ‘ 𝑄 )
9 4 func1st2nd ⊢ ( 𝜑 → ( 1st ‘ 𝐹 ) ( 𝐶 Func 𝐷 ) ( 2nd ‘ 𝐹 ) )
10 9 funcrcl2 ⊢ ( 𝜑 → 𝐶 ∈ Cat )
11 9 funcrcl3 ⊢ ( 𝜑 → 𝐷 ∈ Cat )
12 1 10 11 fuccat ⊢ ( 𝜑 → 𝑄 ∈ Cat )
13 2 11 5 fuccat ⊢ ( 𝜑 → 𝑅 ∈ Cat )
14 2 1 oveq12i ⊢ ( 𝑅 ×c 𝑄 ) = ( ( 𝐷 FuncCat 𝐸 ) ×c ( 𝐶 FuncCat 𝐷 ) )
15 14 7 10 11 5 fucofunca ⊢ ( 𝜑 → ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ∈ ( ( 𝑅 ×c 𝑄 ) Func 𝑆 ) )
16 3 8 12 13 15 4 6 tposcurf1cl ⊢ ( 𝜑 → 𝐾 ∈ ( 𝑅 Func 𝑆 ) )