Metamath Proof Explorer


Theorem oppff1

Description: The operation generating opposite functors is injective. (Contributed by Zhi Wang, 17-Nov-2025)

Ref Expression
Hypotheses oppff1.o ⊢ 𝑂 = ( oppCat ‘ 𝐶 )
oppff1.p ⊢ 𝑃 = ( oppCat ‘ 𝐷 )
Assertion oppff1 ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) : ( 𝐶 Func 𝐷 ) –1-1→ ( 𝑂 Func 𝑃 )

Proof

Step Hyp Ref Expression
1 oppff1.o ⊢ 𝑂 = ( oppCat ‘ 𝐶 )
2 oppff1.p ⊢ 𝑃 = ( oppCat ‘ 𝐷 )
3 oppffn ⊢ oppFunc Fn ( V × V )
4 relfunc ⊢ Rel ( 𝐶 Func 𝐷 )
5 df-rel ⊢ ( Rel ( 𝐶 Func 𝐷 ) ↔ ( 𝐶 Func 𝐷 ) ⊆ ( V × V ) )
6 4 5 mpbi ⊢ ( 𝐶 Func 𝐷 ) ⊆ ( V × V )
7 fnssres ⊢ ( ( oppFunc Fn ( V × V ) ∧ ( 𝐶 Func 𝐷 ) ⊆ ( V × V ) ) → ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) Fn ( 𝐶 Func 𝐷 ) )
8 3 6 7 mp2an ⊢ ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) Fn ( 𝐶 Func 𝐷 )
9 fvres ⊢ ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) → ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) = ( oppFunc ‘ 𝑓 ) )
10 id ⊢ ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) → 𝑓 ∈ ( 𝐶 Func 𝐷 ) )
11 1 2 10 oppfoppc2 ⊢ ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) → ( oppFunc ‘ 𝑓 ) ∈ ( 𝑂 Func 𝑃 ) )
12 9 11 eqeltrd ⊢ ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) → ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) ∈ ( 𝑂 Func 𝑃 ) )
13 12 rgen ⊢ ∀ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) ∈ ( 𝑂 Func 𝑃 )
14 ffnfv ⊢ ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) : ( 𝐶 Func 𝐷 ) ⟶ ( 𝑂 Func 𝑃 ) ↔ ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) Fn ( 𝐶 Func 𝐷 ) ∧ ∀ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) ∈ ( 𝑂 Func 𝑃 ) ) )
15 8 13 14 mpbir2an ⊢ ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) : ( 𝐶 Func 𝐷 ) ⟶ ( 𝑂 Func 𝑃 )
16 simpl ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → 𝑓 ∈ ( 𝐶 Func 𝐷 ) )
17 16 fvresd ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) = ( oppFunc ‘ 𝑓 ) )
18 simpr ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → 𝑔 ∈ ( 𝐶 Func 𝐷 ) )
19 18 fvresd ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑔 ) = ( oppFunc ‘ 𝑔 ) )
20 17 19 eqeq12d ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) = ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑔 ) ↔ ( oppFunc ‘ 𝑓 ) = ( oppFunc ‘ 𝑔 ) ) )
21 fveq2 ⊢ ( ( oppFunc ‘ 𝑓 ) = ( oppFunc ‘ 𝑔 ) → ( oppFunc ‘ ( oppFunc ‘ 𝑓 ) ) = ( oppFunc ‘ ( oppFunc ‘ 𝑔 ) ) )
22 1 2 16 oppfoppc2 ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( oppFunc ‘ 𝑓 ) ∈ ( 𝑂 Func 𝑃 ) )
23 relfunc ⊢ Rel ( 𝑂 Func 𝑃 )
24 eqid ⊢ ( oppFunc ‘ 𝑓 ) = ( oppFunc ‘ 𝑓 )
25 22 23 24 2oppf ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( oppFunc ‘ ( oppFunc ‘ 𝑓 ) ) = 𝑓 )
26 1 2 18 oppfoppc2 ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( oppFunc ‘ 𝑔 ) ∈ ( 𝑂 Func 𝑃 ) )
27 eqid ⊢ ( oppFunc ‘ 𝑔 ) = ( oppFunc ‘ 𝑔 )
28 26 23 27 2oppf ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( oppFunc ‘ ( oppFunc ‘ 𝑔 ) ) = 𝑔 )
29 25 28 eqeq12d ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( ( oppFunc ‘ ( oppFunc ‘ 𝑓 ) ) = ( oppFunc ‘ ( oppFunc ‘ 𝑔 ) ) ↔ 𝑓 = 𝑔 ) )
30 21 29 imbitrid ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( ( oppFunc ‘ 𝑓 ) = ( oppFunc ‘ 𝑔 ) → 𝑓 = 𝑔 ) )
31 20 30 sylbid ⊢ ( ( 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∧ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ) → ( ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) = ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑔 ) → 𝑓 = 𝑔 ) )
32 31 rgen2 ⊢ ∀ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∀ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ( ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) = ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑔 ) → 𝑓 = 𝑔 )
33 dff13 ⊢ ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) : ( 𝐶 Func 𝐷 ) –1-1→ ( 𝑂 Func 𝑃 ) ↔ ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) : ( 𝐶 Func 𝐷 ) ⟶ ( 𝑂 Func 𝑃 ) ∧ ∀ 𝑓 ∈ ( 𝐶 Func 𝐷 ) ∀ 𝑔 ∈ ( 𝐶 Func 𝐷 ) ( ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑓 ) = ( ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) ‘ 𝑔 ) → 𝑓 = 𝑔 ) ) )
34 15 32 33 mpbir2an ⊢ ( oppFunc ↾ ( 𝐶 Func 𝐷 ) ) : ( 𝐶 Func 𝐷 ) –1-1→ ( 𝑂 Func 𝑃 )