Metamath Proof Explorer


Theorem postcofval

Description: Value of the post-composition functor as a curry of the functor composition bifunctor. (Contributed by Zhi Wang, 11-Oct-2025)

Ref Expression
Hypotheses postcofval.q ⊢ 𝑄 = ( 𝐶 FuncCat 𝐷 )
postcofval.r ⊢ 𝑅 = ( 𝐷 FuncCat 𝐸 )
postcofval.o ⊢ ⚬ = ( ⟨ 𝑅 , 𝑄 ⟩ curryF ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) )
postcofval.f ⊢ ( 𝜑 → 𝐹 ∈ ( 𝐷 Func 𝐸 ) )
postcofval.c ⊢ ( 𝜑 → 𝐶 ∈ Cat )
postcofval.k ⊢ 𝐾 = ( ( 1st ‘ ⚬ ) ‘ 𝐹 )
Assertion postcofval ( 𝜑 → 𝐾 = ⟨ ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝐹 ∘func 𝑔 ) ) , ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) , ℎ ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ↦ ( ( ( ( 1st ‘ 𝑔 ) ‘ 𝑥 ) ( 2nd ‘ 𝐹 ) ( ( 1st ‘ ℎ ) ‘ 𝑥 ) ) ‘ ( 𝑎 ‘ 𝑥 ) ) ) ) ) ⟩ )

Proof

Step Hyp Ref Expression
1 postcofval.q ⊢ 𝑄 = ( 𝐶 FuncCat 𝐷 )
2 postcofval.r ⊢ 𝑅 = ( 𝐷 FuncCat 𝐸 )
3 postcofval.o ⊢ ⚬ = ( ⟨ 𝑅 , 𝑄 ⟩ curryF ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) )
4 postcofval.f ⊢ ( 𝜑 → 𝐹 ∈ ( 𝐷 Func 𝐸 ) )
5 postcofval.c ⊢ ( 𝜑 → 𝐶 ∈ Cat )
6 postcofval.k ⊢ 𝐾 = ( ( 1st ‘ ⚬ ) ‘ 𝐹 )
7 2 fucbas ⊢ ( 𝐷 Func 𝐸 ) = ( Base ‘ 𝑅 )
8 4 func1st2nd ⊢ ( 𝜑 → ( 1st ‘ 𝐹 ) ( 𝐷 Func 𝐸 ) ( 2nd ‘ 𝐹 ) )
9 8 funcrcl2 ⊢ ( 𝜑 → 𝐷 ∈ Cat )
10 8 funcrcl3 ⊢ ( 𝜑 → 𝐸 ∈ Cat )
11 2 9 10 fuccat ⊢ ( 𝜑 → 𝑅 ∈ Cat )
12 1 5 9 fuccat ⊢ ( 𝜑 → 𝑄 ∈ Cat )
13 2 1 oveq12i ⊢ ( 𝑅 ×c 𝑄 ) = ( ( 𝐷 FuncCat 𝐸 ) ×c ( 𝐶 FuncCat 𝐷 ) )
14 eqid ⊢ ( 𝐶 FuncCat 𝐸 ) = ( 𝐶 FuncCat 𝐸 )
15 13 14 5 9 10 fucofunca ⊢ ( 𝜑 → ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ∈ ( ( 𝑅 ×c 𝑄 ) Func ( 𝐶 FuncCat 𝐸 ) ) )
16 1 fucbas ⊢ ( 𝐶 Func 𝐷 ) = ( Base ‘ 𝑄 )
17 eqid ⊢ ( 𝐶 Nat 𝐷 ) = ( 𝐶 Nat 𝐷 )
18 1 17 fuchom ⊢ ( 𝐶 Nat 𝐷 ) = ( Hom ‘ 𝑄 )
19 eqid ⊢ ( Id ‘ 𝑅 ) = ( Id ‘ 𝑅 )
20 3 7 11 12 15 16 4 6 18 19 curf1 ⊢ ( 𝜑 → 𝐾 = ⟨ ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝐹 ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) 𝑔 ) ) , ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) , ℎ ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( ( ( Id ‘ 𝑅 ) ‘ 𝐹 ) ( ⟨ 𝐹 , 𝑔 ⟩ ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) ⟨ 𝐹 , ℎ ⟩ ) 𝑎 ) ) ) ⟩ )
21 eqidd ⊢ ( ( 𝜑 ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) = ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) )
22 simpr ⊢ ( ( 𝜑 ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → 𝑔 ∈ ( 𝐶 Func 𝐷 ) )
23 4 adantr ⊢ ( ( 𝜑 ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → 𝐹 ∈ ( 𝐷 Func 𝐸 ) )
24 21 22 23 fuco11b ⊢ ( ( 𝜑 ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( 𝐹 ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) 𝑔 ) = ( 𝐹 ∘func 𝑔 ) )
25 24 mpteq2dva ⊢ ( 𝜑 → ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝐹 ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) 𝑔 ) ) = ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝐹 ∘func 𝑔 ) ) )
26 eqidd ⊢ ( ( 𝜑 ∧ 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ) → ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) = ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) )
27 simpr ⊢ ( ( 𝜑 ∧ 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ) → 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) )
28 4 adantr ⊢ ( ( 𝜑 ∧ 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ) → 𝐹 ∈ ( 𝐷 Func 𝐸 ) )
29 26 19 2 27 28 fucolid ⊢ ( ( 𝜑 ∧ 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ) → ( ( ( Id ‘ 𝑅 ) ‘ 𝐹 ) ( ⟨ 𝐹 , 𝑔 ⟩ ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) ⟨ 𝐹 , ℎ ⟩ ) 𝑎 ) = ( 𝑥 ∈ ( Base ‘ 𝐶 ) ↦ ( ( ( ( 1st ‘ 𝑔 ) ‘ 𝑥 ) ( 2nd ‘ 𝐹 ) ( ( 1st ‘ ℎ ) ‘ 𝑥 ) ) ‘ ( 𝑎 ‘ 𝑥 ) ) ) )
30 29 mpteq2dva ⊢ ( 𝜑 → ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( ( ( Id ‘ 𝑅 ) ‘ 𝐹 ) ( ⟨ 𝐹 , 𝑔 ⟩ ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) ⟨ 𝐹 , ℎ ⟩ ) 𝑎 ) ) = ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ↦ ( ( ( ( 1st ‘ 𝑔 ) ‘ 𝑥 ) ( 2nd ‘ 𝐹 ) ( ( 1st ‘ ℎ ) ‘ 𝑥 ) ) ‘ ( 𝑎 ‘ 𝑥 ) ) ) ) )
31 30 mpoeq3dv ⊢ ( 𝜑 → ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) , ℎ ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( ( ( Id ‘ 𝑅 ) ‘ 𝐹 ) ( ⟨ 𝐹 , 𝑔 ⟩ ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) ⟨ 𝐹 , ℎ ⟩ ) 𝑎 ) ) ) = ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) , ℎ ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ↦ ( ( ( ( 1st ‘ 𝑔 ) ‘ 𝑥 ) ( 2nd ‘ 𝐹 ) ( ( 1st ‘ ℎ ) ‘ 𝑥 ) ) ‘ ( 𝑎 ‘ 𝑥 ) ) ) ) ) )
32 25 31 opeq12d ⊢ ( 𝜑 → ⟨ ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝐹 ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) 𝑔 ) ) , ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) , ℎ ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( ( ( Id ‘ 𝑅 ) ‘ 𝐹 ) ( ⟨ 𝐹 , 𝑔 ⟩ ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ) ⟨ 𝐹 , ℎ ⟩ ) 𝑎 ) ) ) ⟩ = ⟨ ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝐹 ∘func 𝑔 ) ) , ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) , ℎ ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ↦ ( ( ( ( 1st ‘ 𝑔 ) ‘ 𝑥 ) ( 2nd ‘ 𝐹 ) ( ( 1st ‘ ℎ ) ‘ 𝑥 ) ) ‘ ( 𝑎 ‘ 𝑥 ) ) ) ) ) ⟩ )
33 20 32 eqtrd ⊢ ( 𝜑 → 𝐾 = ⟨ ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝐹 ∘func 𝑔 ) ) , ( 𝑔 ∈ ( 𝐶 Func 𝐷 ) , ℎ ∈ ( 𝐶 Func 𝐷 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐶 Nat 𝐷 ) ℎ ) ↦ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ↦ ( ( ( ( 1st ‘ 𝑔 ) ‘ 𝑥 ) ( 2nd ‘ 𝐹 ) ( ( 1st ‘ ℎ ) ‘ 𝑥 ) ) ‘ ( 𝑎 ‘ 𝑥 ) ) ) ) ) ⟩ )