Metamath Proof Explorer


Theorem tposcurf11

Description: Value of the double evaluated transposed curry functor. (Contributed by Zhi Wang, 9-Oct-2025)

Ref Expression
Hypotheses tposcurf1.g ⊢ ( 𝜑 → 𝐺 = ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) )
tposcurf1.a ⊢ 𝐴 = ( Base ‘ 𝐶 )
tposcurf1.c ⊢ ( 𝜑 → 𝐶 ∈ Cat )
tposcurf1.d ⊢ ( 𝜑 → 𝐷 ∈ Cat )
tposcurf1.f ⊢ ( 𝜑 → 𝐹 ∈ ( ( 𝐷 ×c 𝐶 ) Func 𝐸 ) )
tposcurf1.x ⊢ ( 𝜑 → 𝑋 ∈ 𝐴 )
tposcurf1.k ⊢ ( 𝜑 → 𝐾 = ( ( 1st ‘ 𝐺 ) ‘ 𝑋 ) )
tposcurf1.b ⊢ 𝐵 = ( Base ‘ 𝐷 )
tposcurf11.y ⊢ ( 𝜑 → 𝑌 ∈ 𝐵 )
Assertion tposcurf11 ( 𝜑 → ( ( 1st ‘ 𝐾 ) ‘ 𝑌 ) = ( 𝑌 ( 1st ‘ 𝐹 ) 𝑋 ) )

Proof

Step Hyp Ref Expression
1 tposcurf1.g ⊢ ( 𝜑 → 𝐺 = ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) )
2 tposcurf1.a ⊢ 𝐴 = ( Base ‘ 𝐶 )
3 tposcurf1.c ⊢ ( 𝜑 → 𝐶 ∈ Cat )
4 tposcurf1.d ⊢ ( 𝜑 → 𝐷 ∈ Cat )
5 tposcurf1.f ⊢ ( 𝜑 → 𝐹 ∈ ( ( 𝐷 ×c 𝐶 ) Func 𝐸 ) )
6 tposcurf1.x ⊢ ( 𝜑 → 𝑋 ∈ 𝐴 )
7 tposcurf1.k ⊢ ( 𝜑 → 𝐾 = ( ( 1st ‘ 𝐺 ) ‘ 𝑋 ) )
8 tposcurf1.b ⊢ 𝐵 = ( Base ‘ 𝐷 )
9 tposcurf11.y ⊢ ( 𝜑 → 𝑌 ∈ 𝐵 )
10 1 fveq2d ⊢ ( 𝜑 → ( 1st ‘ 𝐺 ) = ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) ) )
11 10 fveq1d ⊢ ( 𝜑 → ( ( 1st ‘ 𝐺 ) ‘ 𝑋 ) = ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) )
12 7 11 eqtrd ⊢ ( 𝜑 → 𝐾 = ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) )
13 12 fveq2d ⊢ ( 𝜑 → ( 1st ‘ 𝐾 ) = ( 1st ‘ ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) ) )
14 13 fveq1d ⊢ ( 𝜑 → ( ( 1st ‘ 𝐾 ) ‘ 𝑌 ) = ( ( 1st ‘ ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) ) ‘ 𝑌 ) )
15 eqid ⊢ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) = ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) )
16 eqidd ⊢ ( 𝜑 → ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) = ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) )
17 3 4 5 16 cofuswapfcl ⊢ ( 𝜑 → ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ∈ ( ( 𝐶 ×c 𝐷 ) Func 𝐸 ) )
18 eqid ⊢ ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) = ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 )
19 15 2 3 4 17 8 6 18 9 curf11 ⊢ ( 𝜑 → ( ( 1st ‘ ( ( 1st ‘ ( ⟨ 𝐶 , 𝐷 ⟩ curryF ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) ) ‘ 𝑋 ) ) ‘ 𝑌 ) = ( 𝑋 ( 1st ‘ ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) 𝑌 ) )
20 3 4 5 16 2 8 6 9 cofuswapf1 ⊢ ( 𝜑 → ( 𝑋 ( 1st ‘ ( 𝐹 ∘func ( 𝐶 swapF 𝐷 ) ) ) 𝑌 ) = ( 𝑌 ( 1st ‘ 𝐹 ) 𝑋 ) )
21 14 19 20 3eqtrd ⊢ ( 𝜑 → ( ( 1st ‘ 𝐾 ) ‘ 𝑌 ) = ( 𝑌 ( 1st ‘ 𝐹 ) 𝑋 ) )