Metamath Proof Explorer


Theorem opabex3rd

Description: Existence of an ordered pair abstraction if the second components are elements of a set. (Contributed by AV, 17-Sep-2023) (Revised by AV, 9-Aug-2024)

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

Proof

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