Metamath Proof Explorer


Theorem yon12

Description: Value of the Yoneda embedding at a morphism. The partially evaluated Yoneda embedding is also the contravariant Hom functor. (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 ( 𝜑𝑊𝐵 )
yon12.f ( 𝜑𝐹 ∈ ( 𝑊 𝐻 𝑍 ) )
yon12.g ( 𝜑𝐺 ∈ ( 𝑍 𝐻 𝑋 ) )
Assertion yon12 ( 𝜑 → ( ( ( 𝑍 ( 2nd ‘ ( ( 1st𝑌 ) ‘ 𝑋 ) ) 𝑊 ) ‘ 𝐹 ) ‘ 𝐺 ) = ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) )

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 yon12.f ( 𝜑𝐹 ∈ ( 𝑊 𝐻 𝑍 ) )
10 yon12.g ( 𝜑𝐺 ∈ ( 𝑍 𝐻 𝑋 ) )
11 eqid ( oppCat ‘ 𝐶 ) = ( oppCat ‘ 𝐶 )
12 eqid ( HomF ‘ ( oppCat ‘ 𝐶 ) ) = ( HomF ‘ ( oppCat ‘ 𝐶 ) )
13 1 3 11 12 yonval ( 𝜑𝑌 = ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) )
14 13 fveq2d ( 𝜑 → ( 1st𝑌 ) = ( 1st ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) )
15 14 fveq1d ( 𝜑 → ( ( 1st𝑌 ) ‘ 𝑋 ) = ( ( 1st ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) ‘ 𝑋 ) )
16 15 fveq2d ( 𝜑 → ( 2nd ‘ ( ( 1st𝑌 ) ‘ 𝑋 ) ) = ( 2nd ‘ ( ( 1st ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) ‘ 𝑋 ) ) )
17 16 oveqd ( 𝜑 → ( 𝑍 ( 2nd ‘ ( ( 1st𝑌 ) ‘ 𝑋 ) ) 𝑊 ) = ( 𝑍 ( 2nd ‘ ( ( 1st ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) ‘ 𝑋 ) ) 𝑊 ) )
18 17 fveq1d ( 𝜑 → ( ( 𝑍 ( 2nd ‘ ( ( 1st𝑌 ) ‘ 𝑋 ) ) 𝑊 ) ‘ 𝐹 ) = ( ( 𝑍 ( 2nd ‘ ( ( 1st ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) ‘ 𝑋 ) ) 𝑊 ) ‘ 𝐹 ) )
19 eqid ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) = ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) )
20 11 oppccat ( 𝐶 ∈ Cat → ( oppCat ‘ 𝐶 ) ∈ Cat )
21 3 20 syl ( 𝜑 → ( oppCat ‘ 𝐶 ) ∈ Cat )
22 eqid ( SetCat ‘ ran ( Homf𝐶 ) ) = ( SetCat ‘ ran ( Homf𝐶 ) )
23 fvex ( Homf𝐶 ) ∈ V
24 23 rnex ran ( Homf𝐶 ) ∈ V
25 24 a1i ( 𝜑 → ran ( Homf𝐶 ) ∈ V )
26 ssidd ( 𝜑 → ran ( Homf𝐶 ) ⊆ ran ( Homf𝐶 ) )
27 11 12 22 3 25 26 oppchofcl ( 𝜑 → ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ∈ ( ( 𝐶 ×c ( oppCat ‘ 𝐶 ) ) Func ( SetCat ‘ ran ( Homf𝐶 ) ) ) )
28 11 2 oppcbas 𝐵 = ( Base ‘ ( oppCat ‘ 𝐶 ) )
29 eqid ( ( 1st ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) ‘ 𝑋 ) = ( ( 1st ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) ‘ 𝑋 )
30 eqid ( Hom ‘ ( oppCat ‘ 𝐶 ) ) = ( Hom ‘ ( oppCat ‘ 𝐶 ) )
31 eqid ( Id ‘ 𝐶 ) = ( Id ‘ 𝐶 )
32 5 11 oppchom ( 𝑍 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) = ( 𝑊 𝐻 𝑍 )
33 9 32 eleqtrrdi ( 𝜑𝐹 ∈ ( 𝑍 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) )
34 19 2 3 21 27 28 4 29 6 30 31 8 33 curf12 ( 𝜑 → ( ( 𝑍 ( 2nd ‘ ( ( 1st ‘ ( ⟨ 𝐶 , ( oppCat ‘ 𝐶 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ) ‘ 𝑋 ) ) 𝑊 ) ‘ 𝐹 ) = ( ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ( ⟨ 𝑋 , 𝑍 ⟩ ( 2nd ‘ ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ⟨ 𝑋 , 𝑊 ⟩ ) 𝐹 ) )
35 18 34 eqtrd ( 𝜑 → ( ( 𝑍 ( 2nd ‘ ( ( 1st𝑌 ) ‘ 𝑋 ) ) 𝑊 ) ‘ 𝐹 ) = ( ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ( ⟨ 𝑋 , 𝑍 ⟩ ( 2nd ‘ ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ⟨ 𝑋 , 𝑊 ⟩ ) 𝐹 ) )
36 35 fveq1d ( 𝜑 → ( ( ( 𝑍 ( 2nd ‘ ( ( 1st𝑌 ) ‘ 𝑋 ) ) 𝑊 ) ‘ 𝐹 ) ‘ 𝐺 ) = ( ( ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ( ⟨ 𝑋 , 𝑍 ⟩ ( 2nd ‘ ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ⟨ 𝑋 , 𝑊 ⟩ ) 𝐹 ) ‘ 𝐺 ) )
37 eqid ( comp ‘ ( oppCat ‘ 𝐶 ) ) = ( comp ‘ ( oppCat ‘ 𝐶 ) )
38 2 5 31 3 4 catidcl ( 𝜑 → ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ∈ ( 𝑋 𝐻 𝑋 ) )
39 5 11 oppchom ( 𝑋 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑋 ) = ( 𝑋 𝐻 𝑋 )
40 38 39 eleqtrrdi ( 𝜑 → ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ∈ ( 𝑋 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑋 ) )
41 5 11 oppchom ( 𝑋 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑍 ) = ( 𝑍 𝐻 𝑋 )
42 10 41 eleqtrrdi ( 𝜑𝐺 ∈ ( 𝑋 ( Hom ‘ ( oppCat ‘ 𝐶 ) ) 𝑍 ) )
43 12 21 28 30 4 6 4 8 37 40 33 42 hof2 ( 𝜑 → ( ( ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ( ⟨ 𝑋 , 𝑍 ⟩ ( 2nd ‘ ( HomF ‘ ( oppCat ‘ 𝐶 ) ) ) ⟨ 𝑋 , 𝑊 ⟩ ) 𝐹 ) ‘ 𝐺 ) = ( ( 𝐹 ( ⟨ 𝑋 , 𝑍 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐺 ) ( ⟨ 𝑋 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ) )
44 2 7 11 4 6 8 oppcco ( 𝜑 → ( 𝐹 ( ⟨ 𝑋 , 𝑍 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐺 ) = ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) )
45 44 oveq1d ( 𝜑 → ( ( 𝐹 ( ⟨ 𝑋 , 𝑍 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐺 ) ( ⟨ 𝑋 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ) = ( ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) ( ⟨ 𝑋 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ) )
46 2 7 11 4 4 8 oppcco ( 𝜑 → ( ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) ( ⟨ 𝑋 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ) = ( ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ( ⟨ 𝑊 , 𝑋· 𝑋 ) ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) ) )
47 2 5 7 3 8 6 4 9 10 catcocl ( 𝜑 → ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) ∈ ( 𝑊 𝐻 𝑋 ) )
48 2 5 31 3 8 7 4 47 catlid ( 𝜑 → ( ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ( ⟨ 𝑊 , 𝑋· 𝑋 ) ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) ) = ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) )
49 45 46 48 3eqtrd ( 𝜑 → ( ( 𝐹 ( ⟨ 𝑋 , 𝑍 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) 𝐺 ) ( ⟨ 𝑋 , 𝑋 ⟩ ( comp ‘ ( oppCat ‘ 𝐶 ) ) 𝑊 ) ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ) = ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) )
50 36 43 49 3eqtrd ( 𝜑 → ( ( ( 𝑍 ( 2nd ‘ ( ( 1st𝑌 ) ‘ 𝑋 ) ) 𝑊 ) ‘ 𝐹 ) ‘ 𝐺 ) = ( 𝐺 ( ⟨ 𝑊 , 𝑍· 𝑋 ) 𝐹 ) )