Metamath Proof Explorer


Theorem oppc2ndf

Description: The opposite functor of the second projection functor is the second projection functor of opposite categories. (Contributed by Zhi Wang, 19-Nov-2025)

Ref Expression
Hypotheses oppc1stf.o 𝑂 = ( oppCat ‘ 𝐶 )
oppc1stf.p 𝑃 = ( oppCat ‘ 𝐷 )
oppc1stf.c ( 𝜑𝐶𝑉 )
oppc1stf.d ( 𝜑𝐷𝑊 )
Assertion oppc2ndf ( 𝜑 → ( oppFunc ‘ ( 𝐶 2ndF 𝐷 ) ) = ( 𝑂 2ndF 𝑃 ) )

Proof

Step Hyp Ref Expression
1 oppc1stf.o 𝑂 = ( oppCat ‘ 𝐶 )
2 oppc1stf.p 𝑃 = ( oppCat ‘ 𝐷 )
3 oppc1stf.c ( 𝜑𝐶𝑉 )
4 oppc1stf.d ( 𝜑𝐷𝑊 )
5 eqid ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) ) = ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) )
6 5 tposmpo tpos ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) ) = ( 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) )
7 eqid ( Hom ‘ 𝐶 ) = ( Hom ‘ 𝐶 )
8 7 1 oppchom ( ( 1st𝑦 ) ( Hom ‘ 𝑂 ) ( 1st𝑥 ) ) = ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 1st𝑦 ) )
9 eqid ( Hom ‘ 𝐷 ) = ( Hom ‘ 𝐷 )
10 9 2 oppchom ( ( 2nd𝑦 ) ( Hom ‘ 𝑃 ) ( 2nd𝑥 ) ) = ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) )
11 8 10 xpeq12i ( ( ( 1st𝑦 ) ( Hom ‘ 𝑂 ) ( 1st𝑥 ) ) × ( ( 2nd𝑦 ) ( Hom ‘ 𝑃 ) ( 2nd𝑥 ) ) ) = ( ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 1st𝑦 ) ) × ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) ) )
12 eqid ( 𝑂 ×c 𝑃 ) = ( 𝑂 ×c 𝑃 )
13 eqid ( Base ‘ 𝐶 ) = ( Base ‘ 𝐶 )
14 1 13 oppcbas ( Base ‘ 𝐶 ) = ( Base ‘ 𝑂 )
15 eqid ( Base ‘ 𝐷 ) = ( Base ‘ 𝐷 )
16 2 15 oppcbas ( Base ‘ 𝐷 ) = ( Base ‘ 𝑃 )
17 12 14 16 xpcbas ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) = ( Base ‘ ( 𝑂 ×c 𝑃 ) )
18 eqid ( Hom ‘ 𝑂 ) = ( Hom ‘ 𝑂 )
19 eqid ( Hom ‘ 𝑃 ) = ( Hom ‘ 𝑃 )
20 eqid ( Hom ‘ ( 𝑂 ×c 𝑃 ) ) = ( Hom ‘ ( 𝑂 ×c 𝑃 ) )
21 simp2 ( ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ∧ 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) → 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) )
22 simp3 ( ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ∧ 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) → 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) )
23 12 17 18 19 20 21 22 xpchom ( ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ∧ 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) → ( 𝑦 ( Hom ‘ ( 𝑂 ×c 𝑃 ) ) 𝑥 ) = ( ( ( 1st𝑦 ) ( Hom ‘ 𝑂 ) ( 1st𝑥 ) ) × ( ( 2nd𝑦 ) ( Hom ‘ 𝑃 ) ( 2nd𝑥 ) ) ) )
24 eqid ( 𝐶 ×c 𝐷 ) = ( 𝐶 ×c 𝐷 )
25 24 13 15 xpcbas ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) = ( Base ‘ ( 𝐶 ×c 𝐷 ) )
26 eqid ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) = ( Hom ‘ ( 𝐶 ×c 𝐷 ) )
27 24 25 7 9 26 22 21 xpchom ( ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ∧ 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) → ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) = ( ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 1st𝑦 ) ) × ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) ) ) )
28 11 23 27 3eqtr4a ( ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ∧ 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) → ( 𝑦 ( Hom ‘ ( 𝑂 ×c 𝑃 ) ) 𝑥 ) = ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) )
29 28 reseq2d ( ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ∧ 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) → ( 2nd ↾ ( 𝑦 ( Hom ‘ ( 𝑂 ×c 𝑃 ) ) 𝑥 ) ) = ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) )
30 29 mpoeq3dva ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑦 ( Hom ‘ ( 𝑂 ×c 𝑃 ) ) 𝑥 ) ) ) = ( 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) ) )
31 6 30 eqtr4id ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → tpos ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) ) = ( 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑦 ( Hom ‘ ( 𝑂 ×c 𝑃 ) ) 𝑥 ) ) ) )
32 31 opeq2d ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ⟨ ( 2nd ↾ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) , tpos ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) ) ⟩ = ⟨ ( 2nd ↾ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) , ( 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑦 ( Hom ‘ ( 𝑂 ×c 𝑃 ) ) 𝑥 ) ) ) ⟩ )
33 simprl ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → 𝐶 ∈ Cat )
34 simprr ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → 𝐷 ∈ Cat )
35 eqid ( 𝐶 2ndF 𝐷 ) = ( 𝐶 2ndF 𝐷 )
36 24 25 26 33 34 35 2ndfval ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( 𝐶 2ndF 𝐷 ) = ⟨ ( 2nd ↾ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) , ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) ) ⟩ )
37 24 33 34 35 2ndfcl ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( 𝐶 2ndF 𝐷 ) ∈ ( ( 𝐶 ×c 𝐷 ) Func 𝐷 ) )
38 36 37 oppfval3 ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( oppFunc ‘ ( 𝐶 2ndF 𝐷 ) ) = ⟨ ( 2nd ↾ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) , tpos ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝐶 ×c 𝐷 ) ) 𝑦 ) ) ) ⟩ )
39 1 oppccat ( 𝐶 ∈ Cat → 𝑂 ∈ Cat )
40 33 39 syl ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → 𝑂 ∈ Cat )
41 2 oppccat ( 𝐷 ∈ Cat → 𝑃 ∈ Cat )
42 34 41 syl ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → 𝑃 ∈ Cat )
43 eqid ( 𝑂 2ndF 𝑃 ) = ( 𝑂 2ndF 𝑃 )
44 12 17 20 40 42 43 2ndfval ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( 𝑂 2ndF 𝑃 ) = ⟨ ( 2nd ↾ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ) , ( 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) , 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐷 ) ) ↦ ( 2nd ↾ ( 𝑦 ( Hom ‘ ( 𝑂 ×c 𝑃 ) ) 𝑥 ) ) ) ⟩ )
45 32 38 44 3eqtr4d ( ( 𝜑 ∧ ( 𝐶 ∈ Cat ∧ 𝐷 ∈ Cat ) ) → ( oppFunc ‘ ( 𝐶 2ndF 𝐷 ) ) = ( 𝑂 2ndF 𝑃 ) )
46 df-2ndf 2ndF = ( 𝑐 ∈ Cat , 𝑑 ∈ Cat ↦ ( ( Base ‘ 𝑐 ) × ( Base ‘ 𝑑 ) ) / 𝑏 ⟨ ( 2nd𝑏 ) , ( 𝑥𝑏 , 𝑦𝑏 ↦ ( 2nd ↾ ( 𝑥 ( Hom ‘ ( 𝑐 ×c 𝑑 ) ) 𝑦 ) ) ) ⟩ )
47 1 2 3 4 45 46 oppc1stflem ( 𝜑 → ( oppFunc ‘ ( 𝐶 2ndF 𝐷 ) ) = ( 𝑂 2ndF 𝑃 ) )