Metamath Proof Explorer


Theorem oppc1stflem

Description: A utility theorem for proving theorems on projection functors of opposite categories. (Contributed by Zhi Wang, 19-Nov-2025)

Ref Expression
Hypotheses oppc1stf.o 𝑂 = ( oppCat ‘ 𝐶 )
oppc1stf.p 𝑃 = ( oppCat ‘ 𝐷 )
oppc1stf.c ( 𝜑𝐶𝑉 )
oppc1stf.d ( 𝜑𝐷𝑊 )
oppc1stflem.1 ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) = ( 𝑂 𝐹 𝑃 ) )
oppc1stflem.f 𝐹 = ( 𝑐 ∈ Cat , 𝑑 ∈ Cat ↦ 𝑌 )
Assertion oppc1stflem ( 𝜑 → ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) = ( 𝑂 𝐹 𝑃 ) )

Proof

Step Hyp Ref Expression
1 oppc1stf.o 𝑂 = ( oppCat ‘ 𝐶 )
2 oppc1stf.p 𝑃 = ( oppCat ‘ 𝐷 )
3 oppc1stf.c ( 𝜑𝐶𝑉 )
4 oppc1stf.d ( 𝜑𝐷𝑊 )
5 oppc1stflem.1 ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) = ( 𝑂 𝐹 𝑃 ) )
6 oppc1stflem.f 𝐹 = ( 𝑐 ∈ Cat , 𝑑 ∈ Cat ↦ 𝑌 )
7 eqid ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) = ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) )
8 simpr ( ( 𝜑𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ) → 𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) )
9 7 8 eloppf ( ( 𝜑𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ) → ( ( 𝐶 𝐹 𝐷 ) ≠ ∅ ∧ ( Rel ( 2nd ‘ ( 𝐶 𝐹 𝐷 ) ) ∧ Rel dom ( 2nd ‘ ( 𝐶 𝐹 𝐷 ) ) ) ) )
10 9 simpld ( ( 𝜑𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ) → ( 𝐶 𝐹 𝐷 ) ≠ ∅ )
11 6 mpondm0 ( ¬ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) → ( 𝐶 𝐹 𝐷 ) = ∅ )
12 11 necon1ai ( ( 𝐶 𝐹 𝐷 ) ≠ ∅ → ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) )
13 10 12 syl ( ( 𝜑𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ) → ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) )
14 simplr ( ( ( 𝜑𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ) ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → 𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) )
15 5 adantlr ( ( ( 𝜑𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ) ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) = ( 𝑂 𝐹 𝑃 ) )
16 14 15 eleqtrd ( ( ( 𝜑𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ) ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → 𝑥 ∈ ( 𝑂 𝐹 𝑃 ) )
17 13 16 mpdan ( ( 𝜑𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ) → 𝑥 ∈ ( 𝑂 𝐹 𝑃 ) )
18 1 3 oppccatb ( 𝜑 → ( 𝐶 ∈ Cat ↔ 𝑂 ∈ Cat ) )
19 2 4 oppccatb ( 𝜑 → ( 𝐷 ∈ Cat ↔ 𝑃 ∈ Cat ) )
20 18 19 anbi12d ( 𝜑 → ( ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ↔ ( 𝑂 ∈ Cat ∧ 𝑃 ∈ Cat ) ) )
21 20 biimprd ( 𝜑 → ( ( 𝑂 ∈ Cat ∧ 𝑃 ∈ Cat ) → ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) )
22 6 elmpocl ( 𝑥 ∈ ( 𝑂 𝐹 𝑃 ) → ( 𝑂 ∈ Cat ∧ 𝑃 ∈ Cat ) )
23 21 22 impel ( ( 𝜑𝑥 ∈ ( 𝑂 𝐹 𝑃 ) ) → ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) )
24 simplr ( ( ( 𝜑𝑥 ∈ ( 𝑂 𝐹 𝑃 ) ) ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → 𝑥 ∈ ( 𝑂 𝐹 𝑃 ) )
25 5 adantlr ( ( ( 𝜑𝑥 ∈ ( 𝑂 𝐹 𝑃 ) ) ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) = ( 𝑂 𝐹 𝑃 ) )
26 24 25 eleqtrrd ( ( ( 𝜑𝑥 ∈ ( 𝑂 𝐹 𝑃 ) ) ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → 𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) )
27 23 26 mpdan ( ( 𝜑𝑥 ∈ ( 𝑂 𝐹 𝑃 ) ) → 𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) )
28 17 27 impbida ( 𝜑 → ( 𝑥 ∈ ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) ↔ 𝑥 ∈ ( 𝑂 𝐹 𝑃 ) ) )
29 28 eqrdv ( 𝜑 → ( oppFunc ‘ ( 𝐶 𝐹 𝐷 ) ) = ( 𝑂 𝐹 𝑃 ) )