Metamath Proof Explorer


Theorem curfval

Description: Value of the curry functor. (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 ‘ 𝐷 )
curfval.j 𝐽 = ( Hom ‘ 𝐷 )
curfval.1 1 = ( Id ‘ 𝐶 )
curfval.h 𝐻 = ( Hom ‘ 𝐶 )
curfval.i 𝐼 = ( Id ‘ 𝐷 )
Assertion curfval ( 𝜑𝐺 = ⟨ ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 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 curfval.j 𝐽 = ( Hom ‘ 𝐷 )
8 curfval.1 1 = ( Id ‘ 𝐶 )
9 curfval.h 𝐻 = ( Hom ‘ 𝐶 )
10 curfval.i 𝐼 = ( Id ‘ 𝐷 )
11 df-curf curryF = ( 𝑒 ∈ V , 𝑓 ∈ V ↦ ( 1st𝑒 ) / 𝑐 ( 2nd𝑒 ) / 𝑑 ⟨ ( 𝑥 ∈ ( Base ‘ 𝑐 ) ↦ ⟨ ( 𝑦 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑥 ( 1st𝑓 ) 𝑦 ) ) , ( 𝑦 ∈ ( Base ‘ 𝑑 ) , 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥 ∈ ( Base ‘ 𝑐 ) , 𝑦 ∈ ( Base ‘ 𝑐 ) ↦ ( 𝑔 ∈ ( 𝑥 ( Hom ‘ 𝑐 ) 𝑦 ) ↦ ( 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) ) ) ) ⟩ )
12 11 a1i ( 𝜑 → curryF = ( 𝑒 ∈ V , 𝑓 ∈ V ↦ ( 1st𝑒 ) / 𝑐 ( 2nd𝑒 ) / 𝑑 ⟨ ( 𝑥 ∈ ( Base ‘ 𝑐 ) ↦ ⟨ ( 𝑦 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑥 ( 1st𝑓 ) 𝑦 ) ) , ( 𝑦 ∈ ( Base ‘ 𝑑 ) , 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥 ∈ ( Base ‘ 𝑐 ) , 𝑦 ∈ ( Base ‘ 𝑐 ) ↦ ( 𝑔 ∈ ( 𝑥 ( Hom ‘ 𝑐 ) 𝑦 ) ↦ ( 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) ) ) ) ⟩ ) )
13 fvexd ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) → ( 1st𝑒 ) ∈ V )
14 simprl ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) → 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ )
15 14 fveq2d ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) → ( 1st𝑒 ) = ( 1st ‘ ⟨ 𝐶 , 𝐷 ⟩ ) )
16 op1stg ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( 1st ‘ ⟨ 𝐶 , 𝐷 ⟩ ) = 𝐶 )
17 3 4 16 syl2anc ( 𝜑 → ( 1st ‘ ⟨ 𝐶 , 𝐷 ⟩ ) = 𝐶 )
18 17 adantr ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) → ( 1st ‘ ⟨ 𝐶 , 𝐷 ⟩ ) = 𝐶 )
19 15 18 eqtrd ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) → ( 1st𝑒 ) = 𝐶 )
20 fvexd ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) → ( 2nd𝑒 ) ∈ V )
21 14 adantr ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) → 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ )
22 21 fveq2d ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) → ( 2nd𝑒 ) = ( 2nd ‘ ⟨ 𝐶 , 𝐷 ⟩ ) )
23 op2ndg ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( 2nd ‘ ⟨ 𝐶 , 𝐷 ⟩ ) = 𝐷 )
24 3 4 23 syl2anc ( 𝜑 → ( 2nd ‘ ⟨ 𝐶 , 𝐷 ⟩ ) = 𝐷 )
25 24 ad2antrr ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) → ( 2nd ‘ ⟨ 𝐶 , 𝐷 ⟩ ) = 𝐷 )
26 22 25 eqtrd ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) → ( 2nd𝑒 ) = 𝐷 )
27 simplr ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → 𝑐 = 𝐶 )
28 27 fveq2d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Base ‘ 𝑐 ) = ( Base ‘ 𝐶 ) )
29 28 2 eqtr4di ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Base ‘ 𝑐 ) = 𝐴 )
30 simpr ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → 𝑑 = 𝐷 )
31 30 fveq2d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Base ‘ 𝑑 ) = ( Base ‘ 𝐷 ) )
32 31 6 eqtr4di ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Base ‘ 𝑑 ) = 𝐵 )
33 simprr ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) → 𝑓 = 𝐹 )
34 33 ad2antrr ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → 𝑓 = 𝐹 )
35 34 fveq2d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 1st𝑓 ) = ( 1st𝐹 ) )
36 35 oveqd ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑥 ( 1st𝑓 ) 𝑦 ) = ( 𝑥 ( 1st𝐹 ) 𝑦 ) )
37 32 36 mpteq12dv ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑦 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑥 ( 1st𝑓 ) 𝑦 ) ) = ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) )
38 30 fveq2d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Hom ‘ 𝑑 ) = ( Hom ‘ 𝐷 ) )
39 38 7 eqtr4di ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Hom ‘ 𝑑 ) = 𝐽 )
40 39 oveqd ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) = ( 𝑦 𝐽 𝑧 ) )
41 34 fveq2d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 2nd𝑓 ) = ( 2nd𝐹 ) )
42 41 oveqd ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) = ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) )
43 27 fveq2d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Id ‘ 𝑐 ) = ( Id ‘ 𝐶 ) )
44 43 8 eqtr4di ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Id ‘ 𝑐 ) = 1 )
45 44 fveq1d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) = ( 1𝑥 ) )
46 eqidd ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → 𝑔 = 𝑔 )
47 42 45 46 oveq123d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) = ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) )
48 40 47 mpteq12dv ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) = ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) )
49 32 32 48 mpoeq123dv ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑦 ∈ ( Base ‘ 𝑑 ) , 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) = ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) )
50 37 49 opeq12d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ⟨ ( 𝑦 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑥 ( 1st𝑓 ) 𝑦 ) ) , ( 𝑦 ∈ ( Base ‘ 𝑑 ) , 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ = ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ )
51 29 50 mpteq12dv ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑥 ∈ ( Base ‘ 𝑐 ) ↦ ⟨ ( 𝑦 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑥 ( 1st𝑓 ) 𝑦 ) ) , ( 𝑦 ∈ ( Base ‘ 𝑑 ) , 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) = ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) )
52 27 fveq2d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Hom ‘ 𝑐 ) = ( Hom ‘ 𝐶 ) )
53 52 9 eqtr4di ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Hom ‘ 𝑐 ) = 𝐻 )
54 53 oveqd ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑥 ( Hom ‘ 𝑐 ) 𝑦 ) = ( 𝑥 𝐻 𝑦 ) )
55 41 oveqd ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) = ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) )
56 30 fveq2d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Id ‘ 𝑑 ) = ( Id ‘ 𝐷 ) )
57 56 10 eqtr4di ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( Id ‘ 𝑑 ) = 𝐼 )
58 57 fveq1d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) = ( 𝐼𝑧 ) )
59 55 46 58 oveq123d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) = ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) )
60 32 59 mpteq12dv ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) ) = ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) )
61 54 60 mpteq12dv ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑔 ∈ ( 𝑥 ( Hom ‘ 𝑐 ) 𝑦 ) ↦ ( 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) ) ) = ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) )
62 29 29 61 mpoeq123dv ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ( 𝑥 ∈ ( Base ‘ 𝑐 ) , 𝑦 ∈ ( Base ‘ 𝑐 ) ↦ ( 𝑔 ∈ ( 𝑥 ( Hom ‘ 𝑐 ) 𝑦 ) ↦ ( 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) ) ) ) = ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) ) )
63 51 62 opeq12d ( ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) ∧ 𝑑 = 𝐷 ) → ⟨ ( 𝑥 ∈ ( Base ‘ 𝑐 ) ↦ ⟨ ( 𝑦 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑥 ( 1st𝑓 ) 𝑦 ) ) , ( 𝑦 ∈ ( Base ‘ 𝑑 ) , 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥 ∈ ( Base ‘ 𝑐 ) , 𝑦 ∈ ( Base ‘ 𝑐 ) ↦ ( 𝑔 ∈ ( 𝑥 ( Hom ‘ 𝑐 ) 𝑦 ) ↦ ( 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) ) ) ) ⟩ = ⟨ ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) ) ⟩ )
64 20 26 63 csbied2 ( ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) ∧ 𝑐 = 𝐶 ) → ( 2nd𝑒 ) / 𝑑 ⟨ ( 𝑥 ∈ ( Base ‘ 𝑐 ) ↦ ⟨ ( 𝑦 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑥 ( 1st𝑓 ) 𝑦 ) ) , ( 𝑦 ∈ ( Base ‘ 𝑑 ) , 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥 ∈ ( Base ‘ 𝑐 ) , 𝑦 ∈ ( Base ‘ 𝑐 ) ↦ ( 𝑔 ∈ ( 𝑥 ( Hom ‘ 𝑐 ) 𝑦 ) ↦ ( 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) ) ) ) ⟩ = ⟨ ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) ) ⟩ )
65 13 19 64 csbied2 ( ( 𝜑 ∧ ( 𝑒 = ⟨ 𝐶 , 𝐷 ⟩ ∧ 𝑓 = 𝐹 ) ) → ( 1st𝑒 ) / 𝑐 ( 2nd𝑒 ) / 𝑑 ⟨ ( 𝑥 ∈ ( Base ‘ 𝑐 ) ↦ ⟨ ( 𝑦 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑥 ( 1st𝑓 ) 𝑦 ) ) , ( 𝑦 ∈ ( Base ‘ 𝑑 ) , 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ∈ ( 𝑦 ( Hom ‘ 𝑑 ) 𝑧 ) ↦ ( ( ( Id ‘ 𝑐 ) ‘ 𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝑓 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥 ∈ ( Base ‘ 𝑐 ) , 𝑦 ∈ ( Base ‘ 𝑐 ) ↦ ( 𝑔 ∈ ( 𝑥 ( Hom ‘ 𝑐 ) 𝑦 ) ↦ ( 𝑧 ∈ ( Base ‘ 𝑑 ) ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝑓 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( ( Id ‘ 𝑑 ) ‘ 𝑧 ) ) ) ) ) ⟩ = ⟨ ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) ) ⟩ )
66 opex 𝐶 , 𝐷 ⟩ ∈ V
67 66 a1i ( 𝜑 → ⟨ 𝐶 , 𝐷 ⟩ ∈ V )
68 5 elexd ( 𝜑𝐹 ∈ V )
69 opex ⟨ ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) ) ⟩ ∈ V
70 69 a1i ( 𝜑 → ⟨ ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) ) ⟩ ∈ V )
71 12 65 67 68 70 ovmpod ( 𝜑 → ( ⟨ 𝐶 , 𝐷 ⟩ curryF 𝐹 ) = ⟨ ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) ) ⟩ )
72 1 71 syl5eq ( 𝜑𝐺 = ⟨ ( 𝑥𝐴 ↦ ⟨ ( 𝑦𝐵 ↦ ( 𝑥 ( 1st𝐹 ) 𝑦 ) ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( 𝑔 ∈ ( 𝑦 𝐽 𝑧 ) ↦ ( ( 1𝑥 ) ( ⟨ 𝑥 , 𝑦 ⟩ ( 2nd𝐹 ) ⟨ 𝑥 , 𝑧 ⟩ ) 𝑔 ) ) ) ⟩ ) , ( 𝑥𝐴 , 𝑦𝐴 ↦ ( 𝑔 ∈ ( 𝑥 𝐻 𝑦 ) ↦ ( 𝑧𝐵 ↦ ( 𝑔 ( ⟨ 𝑥 , 𝑧 ⟩ ( 2nd𝐹 ) ⟨ 𝑦 , 𝑧 ⟩ ) ( 𝐼𝑧 ) ) ) ) ) ⟩ )