Metamath Proof Explorer


Theorem oppcyon

Description: Value of the opposite Yoneda embedding. (Contributed by Mario Carneiro, 26-Jan-2017)

Ref Expression
Hypotheses oppcyon.o 𝑂 = ( oppCat ‘ 𝐶 )
oppcyon.y 𝑌 = ( Yon ‘ 𝑂 )
oppcyon.m 𝑀 = ( HomF𝐶 )
oppcyon.c ( 𝜑𝐶 ∈ Cat )
Assertion oppcyon ( 𝜑𝑌 = ( ⟨ 𝑂 , 𝐶 ⟩ curryF 𝑀 ) )

Proof

Step Hyp Ref Expression
1 oppcyon.o 𝑂 = ( oppCat ‘ 𝐶 )
2 oppcyon.y 𝑌 = ( Yon ‘ 𝑂 )
3 oppcyon.m 𝑀 = ( HomF𝐶 )
4 oppcyon.c ( 𝜑𝐶 ∈ Cat )
5 1 2oppchomf ( Homf𝐶 ) = ( Homf ‘ ( oppCat ‘ 𝑂 ) )
6 5 a1i ( 𝜑 → ( Homf𝐶 ) = ( Homf ‘ ( oppCat ‘ 𝑂 ) ) )
7 1 2oppccomf ( compf𝐶 ) = ( compf ‘ ( oppCat ‘ 𝑂 ) )
8 7 a1i ( 𝜑 → ( compf𝐶 ) = ( compf ‘ ( oppCat ‘ 𝑂 ) ) )
9 1 oppccat ( 𝐶 ∈ Cat → 𝑂 ∈ Cat )
10 4 9 syl ( 𝜑𝑂 ∈ Cat )
11 eqid ( oppCat ‘ 𝑂 ) = ( oppCat ‘ 𝑂 )
12 11 oppccat ( 𝑂 ∈ Cat → ( oppCat ‘ 𝑂 ) ∈ Cat )
13 10 12 syl ( 𝜑 → ( oppCat ‘ 𝑂 ) ∈ Cat )
14 6 8 4 13 hofpropd ( 𝜑 → ( HomF𝐶 ) = ( HomF ‘ ( oppCat ‘ 𝑂 ) ) )
15 3 14 syl5eq ( 𝜑𝑀 = ( HomF ‘ ( oppCat ‘ 𝑂 ) ) )
16 15 oveq2d ( 𝜑 → ( ⟨ 𝑂 , ( oppCat ‘ 𝑂 ) ⟩ curryF 𝑀 ) = ( ⟨ 𝑂 , ( oppCat ‘ 𝑂 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝑂 ) ) ) )
17 eqidd ( 𝜑 → ( Homf𝑂 ) = ( Homf𝑂 ) )
18 eqidd ( 𝜑 → ( compf𝑂 ) = ( compf𝑂 ) )
19 eqid ( SetCat ‘ ran ( Homf𝐶 ) ) = ( SetCat ‘ ran ( Homf𝐶 ) )
20 fvex ( Homf𝐶 ) ∈ V
21 20 rnex ran ( Homf𝐶 ) ∈ V
22 21 a1i ( 𝜑 → ran ( Homf𝐶 ) ∈ V )
23 ssidd ( 𝜑 → ran ( Homf𝐶 ) ⊆ ran ( Homf𝐶 ) )
24 3 1 19 4 22 23 hofcl ( 𝜑𝑀 ∈ ( ( 𝑂 ×c 𝐶 ) Func ( SetCat ‘ ran ( Homf𝐶 ) ) ) )
25 17 18 6 8 10 10 4 13 24 curfpropd ( 𝜑 → ( ⟨ 𝑂 , 𝐶 ⟩ curryF 𝑀 ) = ( ⟨ 𝑂 , ( oppCat ‘ 𝑂 ) ⟩ curryF 𝑀 ) )
26 eqid ( HomF ‘ ( oppCat ‘ 𝑂 ) ) = ( HomF ‘ ( oppCat ‘ 𝑂 ) )
27 2 10 11 26 yonval ( 𝜑𝑌 = ( ⟨ 𝑂 , ( oppCat ‘ 𝑂 ) ⟩ curryF ( HomF ‘ ( oppCat ‘ 𝑂 ) ) ) )
28 16 25 27 3eqtr4rd ( 𝜑𝑌 = ( ⟨ 𝑂 , 𝐶 ⟩ curryF 𝑀 ) )