Metamath Proof Explorer


Theorem tposcurf2cl

Description: The transposed curry functor at a morphism is a natural transformation. (Contributed by Zhi Wang, 10-Oct-2025)

Ref Expression
Hypotheses tposcurf2.g ( 𝜑𝐺 = ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) )
tposcurf2.a 𝐴 = ( Base ‘ 𝐶 )
tposcurf2.c ( 𝜑𝐶 ∈ Cat )
tposcurf2.d ( 𝜑𝐷 ∈ Cat )
tposcurf2.f ( 𝜑𝐹 ∈ ( ( 𝐷 ×c 𝐶 ) Func 𝐸 ) )
tposcurf2.b 𝐵 = ( Base ‘ 𝐷 )
tposcurf2.h 𝐻 = ( Hom ‘ 𝐶 )
tposcurf2.i 𝐼 = ( Id ‘ 𝐷 )
tposcurf2.x ( 𝜑𝑋𝐴 )
tposcurf2.y ( 𝜑𝑌𝐴 )
tposcurf2.k ( 𝜑𝐾 ∈ ( 𝑋 𝐻 𝑌 ) )
tposcurf2.l ( 𝜑𝐿 = ( ( 𝑋 ( 2nd𝐺 ) 𝑌 ) ‘ 𝐾 ) )
tposcurf2.n 𝑁 = ( 𝐷 Nat 𝐸 )
Assertion tposcurf2cl ( 𝜑𝐿 ∈ ( ( ( 1st𝐺 ) ‘ 𝑋 ) 𝑁 ( ( 1st𝐺 ) ‘ 𝑌 ) ) )

Proof

Step Hyp Ref Expression
1 tposcurf2.g ( 𝜑𝐺 = ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) )
2 tposcurf2.a 𝐴 = ( Base ‘ 𝐶 )
3 tposcurf2.c ( 𝜑𝐶 ∈ Cat )
4 tposcurf2.d ( 𝜑𝐷 ∈ Cat )
5 tposcurf2.f ( 𝜑𝐹 ∈ ( ( 𝐷 ×c 𝐶 ) Func 𝐸 ) )
6 tposcurf2.b 𝐵 = ( Base ‘ 𝐷 )
7 tposcurf2.h 𝐻 = ( Hom ‘ 𝐶 )
8 tposcurf2.i 𝐼 = ( Id ‘ 𝐷 )
9 tposcurf2.x ( 𝜑𝑋𝐴 )
10 tposcurf2.y ( 𝜑𝑌𝐴 )
11 tposcurf2.k ( 𝜑𝐾 ∈ ( 𝑋 𝐻 𝑌 ) )
12 tposcurf2.l ( 𝜑𝐿 = ( ( 𝑋 ( 2nd𝐺 ) 𝑌 ) ‘ 𝐾 ) )
13 tposcurf2.n 𝑁 = ( 𝐷 Nat 𝐸 )
14 eqid ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) = ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) )
15 eqidd ( 𝜑 → ( 𝐹func ( 𝐶 swapF 𝐷 ) ) = ( 𝐹func ( 𝐶 swapF 𝐷 ) ) )
16 3 4 5 15 cofuswapfcl ( 𝜑 → ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ∈ ( ( 𝐶 ×c 𝐷 ) Func 𝐸 ) )
17 eqid ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) 𝑌 ) ‘ 𝐾 ) = ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) 𝑌 ) ‘ 𝐾 )
18 14 2 3 4 16 6 7 8 9 10 11 17 13 curf2cl ( 𝜑 → ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) 𝑌 ) ‘ 𝐾 ) ∈ ( ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) 𝑁 ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑌 ) ) )
19 1 fveq2d ( 𝜑 → ( 2nd𝐺 ) = ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) )
20 19 oveqd ( 𝜑 → ( 𝑋 ( 2nd𝐺 ) 𝑌 ) = ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) 𝑌 ) )
21 20 fveq1d ( 𝜑 → ( ( 𝑋 ( 2nd𝐺 ) 𝑌 ) ‘ 𝐾 ) = ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) 𝑌 ) ‘ 𝐾 ) )
22 12 21 eqtrd ( 𝜑𝐿 = ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) 𝑌 ) ‘ 𝐾 ) )
23 1 fveq2d ( 𝜑 → ( 1st𝐺 ) = ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) )
24 23 fveq1d ( 𝜑 → ( ( 1st𝐺 ) ‘ 𝑋 ) = ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) )
25 23 fveq1d ( 𝜑 → ( ( 1st𝐺 ) ‘ 𝑌 ) = ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑌 ) )
26 24 25 oveq12d ( 𝜑 → ( ( ( 1st𝐺 ) ‘ 𝑋 ) 𝑁 ( ( 1st𝐺 ) ‘ 𝑌 ) ) = ( ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) 𝑁 ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑌 ) ) )
27 18 22 26 3eltr4d ( 𝜑𝐿 ∈ ( ( ( 1st𝐺 ) ‘ 𝑋 ) 𝑁 ( ( 1st𝐺 ) ‘ 𝑌 ) ) )