Metamath Proof Explorer


Theorem eloppf

Description: The pre-image of a non-empty opposite functor is non-empty; and the second component of the pre-image is a relation on triples. (Contributed by Zhi Wang, 18-Nov-2025)

Ref Expression
Hypotheses eloppf.g No typesetting found for |- G = ( oppFunc ` F ) with typecode |-
eloppf.x ⊢ φ → X ∈ G
Assertion eloppf ⊢ φ → F ≠ ∅ ∧ Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F

Proof

Step Hyp Ref Expression
1 eloppf.g Could not format G = ( oppFunc ` F ) : No typesetting found for |- G = ( oppFunc ` F ) with typecode |-
2 eloppf.x ⊢ φ → X ∈ G
3 2 1 eleqtrdi Could not format ( ph -> X e. ( oppFunc ` F ) ) : No typesetting found for |- ( ph -> X e. ( oppFunc ` F ) ) with typecode |-
4 elfvdm Could not format ( X e. ( oppFunc ` F ) -> F e. dom oppFunc ) : No typesetting found for |- ( X e. ( oppFunc ` F ) -> F e. dom oppFunc ) with typecode |-
5 oppffn Could not format oppFunc Fn ( _V X. _V ) : No typesetting found for |- oppFunc Fn ( _V X. _V ) with typecode |-
6 5 fndmi Could not format dom oppFunc = ( _V X. _V ) : No typesetting found for |- dom oppFunc = ( _V X. _V ) with typecode |-
7 4 6 eleqtrdi Could not format ( X e. ( oppFunc ` F ) -> F e. ( _V X. _V ) ) : No typesetting found for |- ( X e. ( oppFunc ` F ) -> F e. ( _V X. _V ) ) with typecode |-
8 3 7 syl ⊢ φ → F ∈ V × V
9 0nelxp ⊢ ¬ ∅ ∈ V × V
10 nelne2 ⊢ F ∈ V × V ∧ ¬ ∅ ∈ V × V → F ≠ ∅
11 8 9 10 sylancl ⊢ φ → F ≠ ∅
12 1st2nd2 ⊢ F ∈ V × V → F = 1 st ⁡ F 2 nd ⁡ F
13 3 7 12 3syl ⊢ φ → F = 1 st ⁡ F 2 nd ⁡ F
14 13 fveq2d Could not format ( ph -> ( oppFunc ` F ) = ( oppFunc ` <. ( 1st ` F ) , ( 2nd ` F ) >. ) ) : No typesetting found for |- ( ph -> ( oppFunc ` F ) = ( oppFunc ` <. ( 1st ` F ) , ( 2nd ` F ) >. ) ) with typecode |-
15 df-ov Could not format ( ( 1st ` F ) oppFunc ( 2nd ` F ) ) = ( oppFunc ` <. ( 1st ` F ) , ( 2nd ` F ) >. ) : No typesetting found for |- ( ( 1st ` F ) oppFunc ( 2nd ` F ) ) = ( oppFunc ` <. ( 1st ` F ) , ( 2nd ` F ) >. ) with typecode |-
16 fvex ⊢ 1 st ⁡ F ∈ V
17 fvex ⊢ 2 nd ⁡ F ∈ V
18 oppfvalg Could not format ( ( ( 1st ` F ) e. _V /\ ( 2nd ` F ) e. _V ) -> ( ( 1st ` F ) oppFunc ( 2nd ` F ) ) = if ( ( Rel ( 2nd ` F ) /\ Rel dom ( 2nd ` F ) ) , <. ( 1st ` F ) , tpos ( 2nd ` F ) >. , (/) ) ) : No typesetting found for |- ( ( ( 1st ` F ) e. _V /\ ( 2nd ` F ) e. _V ) -> ( ( 1st ` F ) oppFunc ( 2nd ` F ) ) = if ( ( Rel ( 2nd ` F ) /\ Rel dom ( 2nd ` F ) ) , <. ( 1st ` F ) , tpos ( 2nd ` F ) >. , (/) ) ) with typecode |-
19 16 17 18 mp2an Could not format ( ( 1st ` F ) oppFunc ( 2nd ` F ) ) = if ( ( Rel ( 2nd ` F ) /\ Rel dom ( 2nd ` F ) ) , <. ( 1st ` F ) , tpos ( 2nd ` F ) >. , (/) ) : No typesetting found for |- ( ( 1st ` F ) oppFunc ( 2nd ` F ) ) = if ( ( Rel ( 2nd ` F ) /\ Rel dom ( 2nd ` F ) ) , <. ( 1st ` F ) , tpos ( 2nd ` F ) >. , (/) ) with typecode |-
20 15 19 eqtr3i Could not format ( oppFunc ` <. ( 1st ` F ) , ( 2nd ` F ) >. ) = if ( ( Rel ( 2nd ` F ) /\ Rel dom ( 2nd ` F ) ) , <. ( 1st ` F ) , tpos ( 2nd ` F ) >. , (/) ) : No typesetting found for |- ( oppFunc ` <. ( 1st ` F ) , ( 2nd ` F ) >. ) = if ( ( Rel ( 2nd ` F ) /\ Rel dom ( 2nd ` F ) ) , <. ( 1st ` F ) , tpos ( 2nd ` F ) >. , (/) ) with typecode |-
21 14 20 eqtrdi Could not format ( ph -> ( oppFunc ` F ) = if ( ( Rel ( 2nd ` F ) /\ Rel dom ( 2nd ` F ) ) , <. ( 1st ` F ) , tpos ( 2nd ` F ) >. , (/) ) ) : No typesetting found for |- ( ph -> ( oppFunc ` F ) = if ( ( Rel ( 2nd ` F ) /\ Rel dom ( 2nd ` F ) ) , <. ( 1st ` F ) , tpos ( 2nd ` F ) >. , (/) ) ) with typecode |-
22 3 21 eleqtrd ⊢ φ → X ∈ if Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F 1 st ⁡ F tpos 2 nd ⁡ F ∅
23 22 ne0d ⊢ φ → if Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F 1 st ⁡ F tpos 2 nd ⁡ F ∅ ≠ ∅
24 iffalse ⊢ ¬ Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F → if Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F 1 st ⁡ F tpos 2 nd ⁡ F ∅ = ∅
25 24 necon1ai ⊢ if Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F 1 st ⁡ F tpos 2 nd ⁡ F ∅ ≠ ∅ → Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F
26 23 25 syl ⊢ φ → Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F
27 11 26 jca ⊢ φ → F ≠ ∅ ∧ Rel ⁡ 2 nd ⁡ F ∧ Rel ⁡ dom ⁡ 2 nd ⁡ F