Metamath Proof Explorer


Theorem opabex3d

Description: Existence of an ordered pair abstraction, deduction version. (Contributed by Alexander van der Vekens, 19-Oct-2017) (Revised by AV, 9-Aug-2024)

Ref Expression
Hypotheses opabex3d.1
|- ( ph -> A e. V )
opabex3d.2
|- ( ( ph /\ x e. A ) -> { y | ps } e. _V )
Assertion opabex3d
|- ( ph -> { <. x , y >. | ( x e. A /\ ps ) } e. _V )

Proof

Step Hyp Ref Expression
1 opabex3d.1
 |-  ( ph -> A e. V )
2 opabex3d.2
 |-  ( ( ph /\ x e. A ) -> { y | ps } e. _V )
3 19.42v
 |-  ( E. y ( x e. A /\ ( z = <. x , y >. /\ ps ) ) <-> ( x e. A /\ E. y ( z = <. x , y >. /\ ps ) ) )
4 an12
 |-  ( ( z = <. x , y >. /\ ( x e. A /\ ps ) ) <-> ( x e. A /\ ( z = <. x , y >. /\ ps ) ) )
5 4 exbii
 |-  ( E. y ( z = <. x , y >. /\ ( x e. A /\ ps ) ) <-> E. y ( x e. A /\ ( z = <. x , y >. /\ ps ) ) )
6 elxp
 |-  ( z e. ( { x } X. { y | ps } ) <-> E. v E. w ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) )
7 excom
 |-  ( E. v E. w ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) <-> E. w E. v ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) )
8 an12
 |-  ( ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) <-> ( v e. { x } /\ ( z = <. v , w >. /\ w e. { y | ps } ) ) )
9 velsn
 |-  ( v e. { x } <-> v = x )
10 9 anbi1i
 |-  ( ( v e. { x } /\ ( z = <. v , w >. /\ w e. { y | ps } ) ) <-> ( v = x /\ ( z = <. v , w >. /\ w e. { y | ps } ) ) )
11 8 10 bitri
 |-  ( ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) <-> ( v = x /\ ( z = <. v , w >. /\ w e. { y | ps } ) ) )
12 11 exbii
 |-  ( E. v ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) <-> E. v ( v = x /\ ( z = <. v , w >. /\ w e. { y | ps } ) ) )
13 opeq1
 |-  ( v = x -> <. v , w >. = <. x , w >. )
14 13 eqeq2d
 |-  ( v = x -> ( z = <. v , w >. <-> z = <. x , w >. ) )
15 14 anbi1d
 |-  ( v = x -> ( ( z = <. v , w >. /\ w e. { y | ps } ) <-> ( z = <. x , w >. /\ w e. { y | ps } ) ) )
16 15 equsexvw
 |-  ( E. v ( v = x /\ ( z = <. v , w >. /\ w e. { y | ps } ) ) <-> ( z = <. x , w >. /\ w e. { y | ps } ) )
17 12 16 bitri
 |-  ( E. v ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) <-> ( z = <. x , w >. /\ w e. { y | ps } ) )
18 17 exbii
 |-  ( E. w E. v ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) <-> E. w ( z = <. x , w >. /\ w e. { y | ps } ) )
19 7 18 bitri
 |-  ( E. v E. w ( z = <. v , w >. /\ ( v e. { x } /\ w e. { y | ps } ) ) <-> E. w ( z = <. x , w >. /\ w e. { y | ps } ) )
20 nfv
 |-  F/ y z = <. x , w >.
21 nfsab1
 |-  F/ y w e. { y | ps }
22 20 21 nfan
 |-  F/ y ( z = <. x , w >. /\ w e. { y | ps } )
23 nfv
 |-  F/ w ( z = <. x , y >. /\ ps )
24 opeq2
 |-  ( w = y -> <. x , w >. = <. x , y >. )
25 24 eqeq2d
 |-  ( w = y -> ( z = <. x , w >. <-> z = <. x , y >. ) )
26 df-clab
 |-  ( w e. { y | ps } <-> [ w / y ] ps )
27 sbequ12
 |-  ( y = w -> ( ps <-> [ w / y ] ps ) )
28 27 equcoms
 |-  ( w = y -> ( ps <-> [ w / y ] ps ) )
29 26 28 bitr4id
 |-  ( w = y -> ( w e. { y | ps } <-> ps ) )
30 25 29 anbi12d
 |-  ( w = y -> ( ( z = <. x , w >. /\ w e. { y | ps } ) <-> ( z = <. x , y >. /\ ps ) ) )
31 22 23 30 cbvexv1
 |-  ( E. w ( z = <. x , w >. /\ w e. { y | ps } ) <-> E. y ( z = <. x , y >. /\ ps ) )
32 6 19 31 3bitri
 |-  ( z e. ( { x } X. { y | ps } ) <-> E. y ( z = <. x , y >. /\ ps ) )
33 32 anbi2i
 |-  ( ( x e. A /\ z e. ( { x } X. { y | ps } ) ) <-> ( x e. A /\ E. y ( z = <. x , y >. /\ ps ) ) )
34 3 5 33 3bitr4ri
 |-  ( ( x e. A /\ z e. ( { x } X. { y | ps } ) ) <-> E. y ( z = <. x , y >. /\ ( x e. A /\ ps ) ) )
35 34 exbii
 |-  ( E. x ( x e. A /\ z e. ( { x } X. { y | ps } ) ) <-> E. x E. y ( z = <. x , y >. /\ ( x e. A /\ ps ) ) )
36 eliun
 |-  ( z e. U_ x e. A ( { x } X. { y | ps } ) <-> E. x e. A z e. ( { x } X. { y | ps } ) )
37 df-rex
 |-  ( E. x e. A z e. ( { x } X. { y | ps } ) <-> E. x ( x e. A /\ z e. ( { x } X. { y | ps } ) ) )
38 36 37 bitri
 |-  ( z e. U_ x e. A ( { x } X. { y | ps } ) <-> E. x ( x e. A /\ z e. ( { x } X. { y | ps } ) ) )
39 elopab
 |-  ( z e. { <. x , y >. | ( x e. A /\ ps ) } <-> E. x E. y ( z = <. x , y >. /\ ( x e. A /\ ps ) ) )
40 35 38 39 3bitr4i
 |-  ( z e. U_ x e. A ( { x } X. { y | ps } ) <-> z e. { <. x , y >. | ( x e. A /\ ps ) } )
41 40 eqriv
 |-  U_ x e. A ( { x } X. { y | ps } ) = { <. x , y >. | ( x e. A /\ ps ) }
42 snex
 |-  { x } e. _V
43 xpexg
 |-  ( ( { x } e. _V /\ { y | ps } e. _V ) -> ( { x } X. { y | ps } ) e. _V )
44 42 2 43 sylancr
 |-  ( ( ph /\ x e. A ) -> ( { x } X. { y | ps } ) e. _V )
45 44 ralrimiva
 |-  ( ph -> A. x e. A ( { x } X. { y | ps } ) e. _V )
46 iunexg
 |-  ( ( A e. V /\ A. x e. A ( { x } X. { y | ps } ) e. _V ) -> U_ x e. A ( { x } X. { y | ps } ) e. _V )
47 1 45 46 syl2anc
 |-  ( ph -> U_ x e. A ( { x } X. { y | ps } ) e. _V )
48 41 47 eqeltrrid
 |-  ( ph -> { <. x , y >. | ( x e. A /\ ps ) } e. _V )