Metamath Proof Explorer


Theorem curf12

Description: The partially evaluated curry functor at a morphism. (Contributed by Mario Carneiro, 12-Jan-2017)

Ref Expression
Hypotheses curfval.g 𝐺 = ( ⟨ 𝐶 , 𝐷 ⟩ curryF 𝐹 )
curfval.a 𝐴 = ( Base ‘ 𝐶 )
curfval.c ( 𝜑𝐶 ∈ Cat )
curfval.d ( 𝜑𝐷 ∈ Cat )
curfval.f ( 𝜑𝐹 ∈ ( ( 𝐶 ×c 𝐷 ) Func 𝐸 ) )
curfval.b 𝐵 = ( Base ‘ 𝐷 )
curf1.x ( 𝜑𝑋𝐴 )
curf1.k 𝐾 = ( ( 1st𝐺 ) ‘ 𝑋 )
curf11.y ( 𝜑𝑌𝐵 )
curf12.j 𝐽 = ( Hom ‘ 𝐷 )
curf12.1 1 = ( Id ‘ 𝐶 )
curf12.y ( 𝜑𝑍𝐵 )
curf12.g ( 𝜑𝐻 ∈ ( 𝑌 𝐽 𝑍 ) )
Assertion curf12 ( 𝜑 → ( ( 𝑌 ( 2nd𝐾 ) 𝑍 ) ‘ 𝐻 ) = ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑌 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑍 ⟩ ) 𝐻 ) )

Proof

Step Hyp Ref Expression
1 curfval.g 𝐺 = ( ⟨ 𝐶 , 𝐷 ⟩ curryF 𝐹 )
2 curfval.a 𝐴 = ( Base ‘ 𝐶 )
3 curfval.c ( 𝜑𝐶 ∈ Cat )
4 curfval.d ( 𝜑𝐷 ∈ Cat )
5 curfval.f ( 𝜑𝐹 ∈ ( ( 𝐶 ×c 𝐷 ) Func 𝐸 ) )
6 curfval.b 𝐵 = ( Base ‘ 𝐷 )
7 curf1.x ( 𝜑𝑋𝐴 )
8 curf1.k 𝐾 = ( ( 1st𝐺 ) ‘ 𝑋 )
9 curf11.y ( 𝜑𝑌𝐵 )
10 curf12.j 𝐽 = ( Hom ‘ 𝐷 )
11 curf12.1 1 = ( Id ‘ 𝐶 )
12 curf12.y ( 𝜑𝑍𝐵 )
13 curf12.g ( 𝜑𝐻 ∈ ( 𝑌 𝐽 𝑍 ) )
14 1 2 3 4 5 6 7 8 10 11 curf1 ( 𝜑𝐾 = ⟨ ( 𝑦𝐵 ↦ ( 𝑋 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ )
15 6 fvexi 𝐵 ∈ V
16 15 mptex ( 𝑦𝐵 ↦ ( 𝑋 ( 1st𝐹 ) 𝑦 ) ) ∈ V
17 15 15 mpoex ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) ) ∈ V
18 16 17 op2ndd ( 𝐾 = ⟨ ( 𝑦𝐵 ↦ ( 𝑋 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ → ( 2nd𝐾 ) = ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) ) )
19 14 18 syl ( 𝜑 → ( 2nd𝐾 ) = ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) ) )
20 12 adantr ( ( 𝜑𝑦 = 𝑌 ) → 𝑍𝐵 )
21 ovex ( 𝑦 𝐽 𝑧 ) ∈ V
22 21 mptex ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) ∈ V
23 22 a1i ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) → ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) ∈ V )
24 13 adantr ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) → 𝐻 ∈ ( 𝑌 𝐽 𝑍 ) )
25 simprl ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) → 𝑦 = 𝑌 )
26 simprr ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) → 𝑧 = 𝑍 )
27 25 26 oveq12d ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) → ( 𝑦 𝐽 𝑧 ) = ( 𝑌 𝐽 𝑍 ) )
28 24 27 eleqtrrd ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) → 𝐻 ∈ ( 𝑦 𝐽 𝑧 ) )
29 ovexd ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ∈ V )
30 simplrl ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → 𝑦 = 𝑌 )
31 30 opeq2d ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → ⟨ 𝑋 , 𝑦 ⟩ = ⟨ 𝑋 , 𝑌 ⟩ )
32 simplrr ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → 𝑧 = 𝑍 )
33 32 opeq2d ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → ⟨ 𝑋 , 𝑧 ⟩ = ⟨ 𝑋 , 𝑍 ⟩ )
34 31 33 oveq12d ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) = ( ⟨ 𝑋 , 𝑌 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑍 ⟩ ) )
35 eqidd ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → ( 1𝑋 ) = ( 1𝑋 ) )
36 simpr ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → 𝑔 = 𝐻 )
37 34 35 36 oveq123d ( ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) ∧ 𝑔 = 𝐻 ) → ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) = ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑌 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑍 ⟩ ) 𝐻 ) )
38 28 29 37 fvmptdv2 ( ( 𝜑 ∧ ( 𝑦 = 𝑌𝑧 = 𝑍 ) ) → ( ( 𝑌 ( 2nd𝐾 ) 𝑍 ) = ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) → ( ( 𝑌 ( 2nd𝐾 ) 𝑍 ) ‘ 𝐻 ) = ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑌 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑍 ⟩ ) 𝐻 ) ) )
39 9 20 23 38 ovmpodv ( 𝜑 → ( ( 2nd𝐾 ) = ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑧 ⟩ ) 𝑔 ) ) ) → ( ( 𝑌 ( 2nd𝐾 ) 𝑍 ) ‘ 𝐻 ) = ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑌 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑍 ⟩ ) 𝐻 ) ) )
40 19 39 mpd ( 𝜑 → ( ( 𝑌 ( 2nd𝐾 ) 𝑍 ) ‘ 𝐻 ) = ( ( 1𝑋 ) ( ⟨ 𝑋 , 𝑌 ⟩ ( 2nd𝐹 ) ⟨ 𝑋 , 𝑍 ⟩ ) 𝐻 ) )