Metamath Proof Explorer


Theorem precofval3

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

Ref Expression
Hypotheses precoffunc.r 𝑅 = ( 𝐷 FuncCat 𝐸 )
precoffunc.b 𝐵 = ( 𝐷 Func 𝐸 )
precoffunc.n 𝑁 = ( 𝐷 Nat 𝐸 )
precoffunc.f ( 𝜑𝐹 ( 𝐶 Func 𝐷 ) 𝐺 )
precoffunc.e ( 𝜑𝐸 ∈ Cat )
precoffunc.k ( 𝜑𝐾 = ( 𝑔𝐵 ↦ ( 𝑔func𝐹 , 𝐺 ⟩ ) ) )
precoffunc.l ( 𝜑𝐿 = ( 𝑔𝐵 , 𝐵 ↦ ( 𝑎 ∈ ( 𝑔 𝑁 ) ↦ ( 𝑎𝐹 ) ) ) )
precofval3.q 𝑄 = ( 𝐶 FuncCat 𝐷 )
precofval3.o ( 𝜑 = ( ⟨ 𝑄 , 𝑅 ⟩ curryF ( ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ∘func ( 𝑄 swapF 𝑅 ) ) ) )
precofval3.m ( 𝜑𝑀 = ( ( 1st ) ‘ ⟨ 𝐹 , 𝐺 ⟩ ) )
Assertion precofval3 ( 𝜑 → ⟨ 𝐾 , 𝐿 ⟩ = 𝑀 )

Proof

Step Hyp Ref Expression
1 precoffunc.r 𝑅 = ( 𝐷 FuncCat 𝐸 )
2 precoffunc.b 𝐵 = ( 𝐷 Func 𝐸 )
3 precoffunc.n 𝑁 = ( 𝐷 Nat 𝐸 )
4 precoffunc.f ( 𝜑𝐹 ( 𝐶 Func 𝐷 ) 𝐺 )
5 precoffunc.e ( 𝜑𝐸 ∈ Cat )
6 precoffunc.k ( 𝜑𝐾 = ( 𝑔𝐵 ↦ ( 𝑔func𝐹 , 𝐺 ⟩ ) ) )
7 precoffunc.l ( 𝜑𝐿 = ( 𝑔𝐵 , 𝐵 ↦ ( 𝑎 ∈ ( 𝑔 𝑁 ) ↦ ( 𝑎𝐹 ) ) ) )
8 precofval3.q 𝑄 = ( 𝐶 FuncCat 𝐷 )
9 precofval3.o ( 𝜑 = ( ⟨ 𝑄 , 𝑅 ⟩ curryF ( ( ⟨ 𝐶 , 𝐷 ⟩ ∘F 𝐸 ) ∘func ( 𝑄 swapF 𝑅 ) ) ) )
10 precofval3.m ( 𝜑𝑀 = ( ( 1st ) ‘ ⟨ 𝐹 , 𝐺 ⟩ ) )
11 2 mpteq1i ( 𝑔𝐵 ↦ ( 𝑔func𝐹 , 𝐺 ⟩ ) ) = ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) ↦ ( 𝑔func𝐹 , 𝐺 ⟩ ) )
12 6 11 eqtrdi ( 𝜑𝐾 = ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) ↦ ( 𝑔func𝐹 , 𝐺 ⟩ ) ) )
13 2 a1i ( 𝜑𝐵 = ( 𝐷 Func 𝐸 ) )
14 3 a1i ( 𝜑𝑁 = ( 𝐷 Nat 𝐸 ) )
15 14 oveqd ( 𝜑 → ( 𝑔 𝑁 ) = ( 𝑔 ( 𝐷 Nat 𝐸 ) ) )
16 relfunc Rel ( 𝐶 Func 𝐷 )
17 brrelex12 ( ( Rel ( 𝐶 Func 𝐷 ) ∧ 𝐹 ( 𝐶 Func 𝐷 ) 𝐺 ) → ( 𝐹 ∈ V ∧ 𝐺 ∈ V ) )
18 16 4 17 sylancr ( 𝜑 → ( 𝐹 ∈ V ∧ 𝐺 ∈ V ) )
19 op1stg ( ( 𝐹 ∈ V ∧ 𝐺 ∈ V ) → ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) = 𝐹 )
20 18 19 syl ( 𝜑 → ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) = 𝐹 )
21 20 eqcomd ( 𝜑𝐹 = ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) )
22 21 coeq2d ( 𝜑 → ( 𝑎𝐹 ) = ( 𝑎 ∘ ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) ) )
23 15 22 mpteq12dv ( 𝜑 → ( 𝑎 ∈ ( 𝑔 𝑁 ) ↦ ( 𝑎𝐹 ) ) = ( 𝑎 ∈ ( 𝑔 ( 𝐷 Nat 𝐸 ) ) ↦ ( 𝑎 ∘ ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) ) ) )
24 13 13 23 mpoeq123dv ( 𝜑 → ( 𝑔𝐵 , 𝐵 ↦ ( 𝑎 ∈ ( 𝑔 𝑁 ) ↦ ( 𝑎𝐹 ) ) ) = ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) , ∈ ( 𝐷 Func 𝐸 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐷 Nat 𝐸 ) ) ↦ ( 𝑎 ∘ ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) ) ) ) )
25 7 24 eqtrd ( 𝜑𝐿 = ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) , ∈ ( 𝐷 Func 𝐸 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐷 Nat 𝐸 ) ) ↦ ( 𝑎 ∘ ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) ) ) ) )
26 12 25 opeq12d ( 𝜑 → ⟨ 𝐾 , 𝐿 ⟩ = ⟨ ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) ↦ ( 𝑔func𝐹 , 𝐺 ⟩ ) ) , ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) , ∈ ( 𝐷 Func 𝐸 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐷 Nat 𝐸 ) ) ↦ ( 𝑎 ∘ ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) ) ) ) ⟩ )
27 df-br ( 𝐹 ( 𝐶 Func 𝐷 ) 𝐺 ↔ ⟨ 𝐹 , 𝐺 ⟩ ∈ ( 𝐶 Func 𝐷 ) )
28 4 27 sylib ( 𝜑 → ⟨ 𝐹 , 𝐺 ⟩ ∈ ( 𝐶 Func 𝐷 ) )
29 8 1 9 28 5 10 precofval2 ( 𝜑𝑀 = ⟨ ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) ↦ ( 𝑔func𝐹 , 𝐺 ⟩ ) ) , ( 𝑔 ∈ ( 𝐷 Func 𝐸 ) , ∈ ( 𝐷 Func 𝐸 ) ↦ ( 𝑎 ∈ ( 𝑔 ( 𝐷 Nat 𝐸 ) ) ↦ ( 𝑎 ∘ ( 1st ‘ ⟨ 𝐹 , 𝐺 ⟩ ) ) ) ) ⟩ )
30 26 29 eqtr4d ( 𝜑 → ⟨ 𝐾 , 𝐿 ⟩ = 𝑀 )