Metamath Proof Explorer


Theorem yon2

Description: Value of the Yoneda embedding at a morphism. (Contributed by Mario Carneiro, 17-Jan-2017)

Ref Expression
Hypotheses yon11.y 𝑌 = ( Yon ‘ 𝐶 )
yon11.b 𝐵 = ( Base ‘ 𝐶 )
yon11.c ( 𝜑𝐶 ∈ Cat )
yon11.p ( 𝜑𝑋𝐵 )
yon11.h 𝐻 = ( Hom ‘ 𝐶 )
yon11.z ( 𝜑𝑍𝐵 )
yon12.x · = ( comp ‘ 𝐶 )
yon12.w ( 𝜑𝑊𝐵 )
yon2.f ( 𝜑𝐹 ∈ ( 𝑋 𝐻 𝑍 ) )
yon2.g ( 𝜑𝐺 ∈ ( 𝑊 𝐻 𝑋 ) )
Assertion yon2 ( 𝜑 → ( ( ( ( 𝑋 ( 2nd𝑌 ) 𝑍 ) ‘ 𝐹 ) ‘ 𝑊 ) ‘ 𝐺 ) = ( 𝐹 ( ⟨ 𝑊 , 𝑋· 𝑍 ) 𝐺 ) )

Proof

Step Hyp Ref Expression
1 yon11.y 𝑌 = ( Yon ‘ 𝐶 )
2 yon11.b 𝐵 = ( Base ‘ 𝐶 )
3 yon11.c ( 𝜑𝐶 ∈ Cat )
4 yon11.p ( 𝜑𝑋𝐵 )
5 yon11.h 𝐻 = ( Hom ‘ 𝐶 )
6 yon11.z ( 𝜑𝑍𝐵 )
7 yon12.x · = ( comp ‘ 𝐶 )
8 yon12.w ( 𝜑𝑊𝐵 )
9 yon2.f ( 𝜑𝐹 ∈ ( 𝑋 𝐻 𝑍 ) )
10 yon2.g ( 𝜑𝐺 ∈ ( 𝑊 𝐻 𝑋 ) )
11 eqid ( oppCat ‘ 𝐶 ) = ( oppCat ‘ 𝐶 )
12 eqid ( HomF ‘ ( oppCat ‘ 𝐶 ) ) = ( HomF ‘ ( oppCat ‘ 𝐶 ) )
13 1 3 11 12 yonval ( 𝜑𝑌 = ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) )
14 13 fveq2d ( 𝜑 → ( 2nd𝑌 ) = ( 2nd ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) )
15 14 oveqd ( 𝜑 → ( 𝑋 ( 2nd𝑌 ) 𝑍 ) = ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) 𝑍 ) )
16 15 fveq1d ( 𝜑 → ( ( 𝑋 ( 2nd𝑌 ) 𝑍 ) ‘ 𝐹 ) = ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) 𝑍 ) ‘ 𝐹 ) )
17 16 fveq1d ( 𝜑 → ( ( ( 𝑋 ( 2nd𝑌 ) 𝑍 ) ‘ 𝐹 ) ‘ 𝑊 ) = ( ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) 𝑍 ) ‘ 𝐹 ) ‘ 𝑊 ) )
18 eqid ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) = ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) )
19 11 oppccat ( 𝐶 ∈ Cat → ( oppCat ‘ 𝐶 ) ∈ Cat )
20 3 19 syl ( 𝜑 → ( oppCat ‘ 𝐶 ) ∈ Cat )
21 eqid ( SetCat ‘ ran ( Homf𝐶 ) ) = ( SetCat ‘ ran ( Homf𝐶 ) )
22 fvex ( Homf𝐶 ) ∈ V
23 22 rnex ran ( Homf𝐶 ) ∈ V
24 23 a1i ( 𝜑 → ran ( Homf𝐶 ) ∈ V )
25 ssidd ( 𝜑 → ran ( Homf𝐶 ) ⊆ ran ( Homf𝐶 ) )
26 11 12 21 3 24 25 oppchofcl ( 𝜑 → ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ∈ ( ( 𝐶 ×c ( oppCat ‘ 𝐶 ) ) Func ( SetCat ‘ ran ( Homf𝐶 ) ) ) )
27 11 2 oppcbas 𝐵 = ( Base ‘ ( oppCat ‘ 𝐶 ) )
28 eqid ( Id ‘ ( oppCat ‘ 𝐶 ) ) = ( Id ‘ ( oppCat ‘ 𝐶 ) )
29 eqid ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) 𝑍 ) ‘ 𝐹 ) = ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) 𝑍 ) ‘ 𝐹 )
30 18 2 3 20 26 27 5 28 4 6 9 29 8 curf2val ( 𝜑 → ( ( ( 𝑋 ( 2nd ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) 𝑍 ) ‘ 𝐹 ) ‘ 𝑊 ) = ( 𝐹 ( ⟨ 𝑋 , 𝑊 ⟩ ( 2nd ‘ ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ⟨ 𝑍 , 𝑊 ⟩ ) ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ) )
31 17 30 eqtrd ( 𝜑 → ( ( ( 𝑋 ( 2nd𝑌 ) 𝑍 ) ‘ 𝐹 ) ‘ 𝑊 ) = ( 𝐹 ( ⟨ 𝑋 , 𝑊 ⟩ ( 2nd ‘ ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ⟨ 𝑍 , 𝑊 ⟩ ) ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ) )
32 31 fveq1d ( 𝜑 → ( ( ( ( 𝑋 ( 2nd𝑌 ) 𝑍 ) ‘ 𝐹 ) ‘ 𝑊 ) ‘ 𝐺 ) = ( ( 𝐹 ( ⟨ 𝑋 , 𝑊 ⟩ ( 2nd ‘ ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ⟨ 𝑍 , 𝑊 ⟩ ) ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ) ‘ 𝐺 ) )
33 eqid ( Hom ‘ ( oppCat ‘ 𝐶 ) ) = ( Hom ‘ ( oppCat ‘ 𝐶 ) )
34 eqid ( comp ‘ ( oppCat ‘ 𝐶 ) ) = ( comp ‘ ( oppCat ‘ 𝐶 ) )
35 5 11 oppchom ( 𝑍 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑋 ) = ( 𝑋 𝐻 𝑍 )
36 9 35 eleqtrrdi ( 𝜑𝐹 ∈ ( 𝑍 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑋 ) )
37 27 33 28 20 8 catidcl ( 𝜑 → ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ∈ ( 𝑊 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) )
38 5 11 oppchom ( 𝑋 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) = ( 𝑊 𝐻 𝑋 )
39 10 38 eleqtrrdi ( 𝜑𝐺 ∈ ( 𝑋 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) )
40 12 20 27 33 4 8 6 8 34 36 37 39 hof2 ( 𝜑 → ( ( 𝐹 ( ⟨ 𝑋 , 𝑊 ⟩ ( 2nd ‘ ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ⟨ 𝑍 , 𝑊 ⟩ ) ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ) ‘ 𝐺 ) = ( ( ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ( ⟨ 𝑋 , 𝑊 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐺 ) ( ⟨ 𝑍 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐹 ) )
41 27 33 28 20 4 34 8 39 catlid ( 𝜑 → ( ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ( ⟨ 𝑋 , 𝑊 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐺 ) = 𝐺 )
42 41 oveq1d ( 𝜑 → ( ( ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ( ⟨ 𝑋 , 𝑊 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐺 ) ( ⟨ 𝑍 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐹 ) = ( 𝐺 ( ⟨ 𝑍 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐹 ) )
43 2 7 11 6 4 8 oppcco ( 𝜑 → ( 𝐺 ( ⟨ 𝑍 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐹 ) = ( 𝐹 ( ⟨ 𝑊 , 𝑋· 𝑍 ) 𝐺 ) )
44 42 43 eqtrd ( 𝜑 → ( ( ( ( Id ‘ ( oppCat ‘ 𝐶 ) ) ‘ 𝑊 ) ( ⟨ 𝑋 , 𝑊 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐺 ) ( ⟨ 𝑍 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐹 ) = ( 𝐹 ( ⟨ 𝑊 , 𝑋· 𝑍 ) 𝐺 ) )
45 32 40 44 3eqtrd ( 𝜑 → ( ( ( ( 𝑋 ( 2nd𝑌 ) 𝑍 ) ‘ 𝐹 ) ‘ 𝑊 ) ‘ 𝐺 ) = ( 𝐹 ( ⟨ 𝑊 , 𝑋· 𝑍 ) 𝐺 ) )