Metamath Proof Explorer


Theorem cnvoprabOLD

Description: The converse of a class abstraction of nested ordered pairs. Obsolete version of cnvoprab as of 16-Oct-2022, which has nonfreeness hypotheses instead of disjoint variable conditions. (Contributed by Thierry Arnoux, 17-Aug-2017) (Proof modification is discouraged.) (New usage is discouraged.)

Ref Expression
Hypotheses cnvoprabOLD.x
|- F/ x ps
cnvoprabOLD.y
|- F/ y ps
cnvoprabOLD.1
|- ( a = <. x , y >. -> ( ps <-> ph ) )
cnvoprabOLD.2
|- ( ps -> a e. ( _V X. _V ) )
Assertion cnvoprabOLD
|- `' { <. <. x , y >. , z >. | ph } = { <. z , a >. | ps }

Proof

Step Hyp Ref Expression
1 cnvoprabOLD.x
 |-  F/ x ps
2 cnvoprabOLD.y
 |-  F/ y ps
3 cnvoprabOLD.1
 |-  ( a = <. x , y >. -> ( ps <-> ph ) )
4 cnvoprabOLD.2
 |-  ( ps -> a e. ( _V X. _V ) )
5 excom
 |-  ( E. a E. z ( w = <. a , z >. /\ ps ) <-> E. z E. a ( w = <. a , z >. /\ ps ) )
6 nfv
 |-  F/ x w = <. a , z >.
7 6 1 nfan
 |-  F/ x ( w = <. a , z >. /\ ps )
8 7 nfex
 |-  F/ x E. a ( w = <. a , z >. /\ ps )
9 nfv
 |-  F/ y w = <. a , z >.
10 9 2 nfan
 |-  F/ y ( w = <. a , z >. /\ ps )
11 10 nfex
 |-  F/ y E. a ( w = <. a , z >. /\ ps )
12 opex
 |-  <. x , y >. e. _V
13 opeq1
 |-  ( a = <. x , y >. -> <. a , z >. = <. <. x , y >. , z >. )
14 13 eqeq2d
 |-  ( a = <. x , y >. -> ( w = <. a , z >. <-> w = <. <. x , y >. , z >. ) )
15 14 3 anbi12d
 |-  ( a = <. x , y >. -> ( ( w = <. a , z >. /\ ps ) <-> ( w = <. <. x , y >. , z >. /\ ph ) ) )
16 12 15 spcev
 |-  ( ( w = <. <. x , y >. , z >. /\ ph ) -> E. a ( w = <. a , z >. /\ ps ) )
17 11 16 exlimi
 |-  ( E. y ( w = <. <. x , y >. , z >. /\ ph ) -> E. a ( w = <. a , z >. /\ ps ) )
18 8 17 exlimi
 |-  ( E. x E. y ( w = <. <. x , y >. , z >. /\ ph ) -> E. a ( w = <. a , z >. /\ ps ) )
19 4 adantl
 |-  ( ( w = <. a , z >. /\ ps ) -> a e. ( _V X. _V ) )
20 fvex
 |-  ( 1st ` a ) e. _V
21 fvex
 |-  ( 2nd ` a ) e. _V
22 eqcom
 |-  ( ( 1st ` a ) = x <-> x = ( 1st ` a ) )
23 eqcom
 |-  ( ( 2nd ` a ) = y <-> y = ( 2nd ` a ) )
24 22 23 anbi12i
 |-  ( ( ( 1st ` a ) = x /\ ( 2nd ` a ) = y ) <-> ( x = ( 1st ` a ) /\ y = ( 2nd ` a ) ) )
25 eqopi
 |-  ( ( a e. ( _V X. _V ) /\ ( ( 1st ` a ) = x /\ ( 2nd ` a ) = y ) ) -> a = <. x , y >. )
26 24 25 sylan2br
 |-  ( ( a e. ( _V X. _V ) /\ ( x = ( 1st ` a ) /\ y = ( 2nd ` a ) ) ) -> a = <. x , y >. )
27 15 bicomd
 |-  ( a = <. x , y >. -> ( ( w = <. <. x , y >. , z >. /\ ph ) <-> ( w = <. a , z >. /\ ps ) ) )
28 26 27 syl
 |-  ( ( a e. ( _V X. _V ) /\ ( x = ( 1st ` a ) /\ y = ( 2nd ` a ) ) ) -> ( ( w = <. <. x , y >. , z >. /\ ph ) <-> ( w = <. a , z >. /\ ps ) ) )
29 7 10 28 spc2ed
 |-  ( ( a e. ( _V X. _V ) /\ ( ( 1st ` a ) e. _V /\ ( 2nd ` a ) e. _V ) ) -> ( ( w = <. a , z >. /\ ps ) -> E. x E. y ( w = <. <. x , y >. , z >. /\ ph ) ) )
30 20 21 29 mpanr12
 |-  ( a e. ( _V X. _V ) -> ( ( w = <. a , z >. /\ ps ) -> E. x E. y ( w = <. <. x , y >. , z >. /\ ph ) ) )
31 19 30 mpcom
 |-  ( ( w = <. a , z >. /\ ps ) -> E. x E. y ( w = <. <. x , y >. , z >. /\ ph ) )
32 31 exlimiv
 |-  ( E. a ( w = <. a , z >. /\ ps ) -> E. x E. y ( w = <. <. x , y >. , z >. /\ ph ) )
33 18 32 impbii
 |-  ( E. x E. y ( w = <. <. x , y >. , z >. /\ ph ) <-> E. a ( w = <. a , z >. /\ ps ) )
34 33 exbii
 |-  ( E. z E. x E. y ( w = <. <. x , y >. , z >. /\ ph ) <-> E. z E. a ( w = <. a , z >. /\ ps ) )
35 exrot3
 |-  ( E. z E. x E. y ( w = <. <. x , y >. , z >. /\ ph ) <-> E. x E. y E. z ( w = <. <. x , y >. , z >. /\ ph ) )
36 5 34 35 3bitr2ri
 |-  ( E. x E. y E. z ( w = <. <. x , y >. , z >. /\ ph ) <-> E. a E. z ( w = <. a , z >. /\ ps ) )
37 36 abbii
 |-  { w | E. x E. y E. z ( w = <. <. x , y >. , z >. /\ ph ) } = { w | E. a E. z ( w = <. a , z >. /\ ps ) }
38 df-oprab
 |-  { <. <. x , y >. , z >. | ph } = { w | E. x E. y E. z ( w = <. <. x , y >. , z >. /\ ph ) }
39 df-opab
 |-  { <. a , z >. | ps } = { w | E. a E. z ( w = <. a , z >. /\ ps ) }
40 37 38 39 3eqtr4ri
 |-  { <. a , z >. | ps } = { <. <. x , y >. , z >. | ph }
41 40 cnveqi
 |-  `' { <. a , z >. | ps } = `' { <. <. x , y >. , z >. | ph }
42 cnvopab
 |-  `' { <. a , z >. | ps } = { <. z , a >. | ps }
43 41 42 eqtr3i
 |-  `' { <. <. x , y >. , z >. | ph } = { <. z , a >. | ps }