Metamath Proof Explorer


Theorem unopab

Description: Union of two ordered pair class abstractions. (Contributed by NM, 30-Sep-2002)

Ref Expression
Assertion unopab
|- ( { <. x , y >. | ph } u. { <. x , y >. | ps } ) = { <. x , y >. | ( ph \/ ps ) }

Proof

Step Hyp Ref Expression
1 eqeq1
 |-  ( z = w -> ( z = <. x , y >. <-> w = <. x , y >. ) )
2 1 anbi1d
 |-  ( z = w -> ( ( z = <. x , y >. /\ ph ) <-> ( w = <. x , y >. /\ ph ) ) )
3 2 2exbidv
 |-  ( z = w -> ( E. x E. y ( z = <. x , y >. /\ ph ) <-> E. x E. y ( w = <. x , y >. /\ ph ) ) )
4 1 anbi1d
 |-  ( z = w -> ( ( z = <. x , y >. /\ ps ) <-> ( w = <. x , y >. /\ ps ) ) )
5 4 2exbidv
 |-  ( z = w -> ( E. x E. y ( z = <. x , y >. /\ ps ) <-> E. x E. y ( w = <. x , y >. /\ ps ) ) )
6 3 5 unabw
 |-  ( { z | E. x E. y ( z = <. x , y >. /\ ph ) } u. { z | E. x E. y ( z = <. x , y >. /\ ps ) } ) = { w | ( E. x E. y ( w = <. x , y >. /\ ph ) \/ E. x E. y ( w = <. x , y >. /\ ps ) ) }
7 19.43
 |-  ( E. x ( E. y ( w = <. x , y >. /\ ph ) \/ E. y ( w = <. x , y >. /\ ps ) ) <-> ( E. x E. y ( w = <. x , y >. /\ ph ) \/ E. x E. y ( w = <. x , y >. /\ ps ) ) )
8 andi
 |-  ( ( w = <. x , y >. /\ ( ph \/ ps ) ) <-> ( ( w = <. x , y >. /\ ph ) \/ ( w = <. x , y >. /\ ps ) ) )
9 8 exbii
 |-  ( E. y ( w = <. x , y >. /\ ( ph \/ ps ) ) <-> E. y ( ( w = <. x , y >. /\ ph ) \/ ( w = <. x , y >. /\ ps ) ) )
10 19.43
 |-  ( E. y ( ( w = <. x , y >. /\ ph ) \/ ( w = <. x , y >. /\ ps ) ) <-> ( E. y ( w = <. x , y >. /\ ph ) \/ E. y ( w = <. x , y >. /\ ps ) ) )
11 9 10 bitr2i
 |-  ( ( E. y ( w = <. x , y >. /\ ph ) \/ E. y ( w = <. x , y >. /\ ps ) ) <-> E. y ( w = <. x , y >. /\ ( ph \/ ps ) ) )
12 11 exbii
 |-  ( E. x ( E. y ( w = <. x , y >. /\ ph ) \/ E. y ( w = <. x , y >. /\ ps ) ) <-> E. x E. y ( w = <. x , y >. /\ ( ph \/ ps ) ) )
13 7 12 bitr3i
 |-  ( ( E. x E. y ( w = <. x , y >. /\ ph ) \/ E. x E. y ( w = <. x , y >. /\ ps ) ) <-> E. x E. y ( w = <. x , y >. /\ ( ph \/ ps ) ) )
14 13 abbii
 |-  { w | ( E. x E. y ( w = <. x , y >. /\ ph ) \/ E. x E. y ( w = <. x , y >. /\ ps ) ) } = { w | E. x E. y ( w = <. x , y >. /\ ( ph \/ ps ) ) }
15 6 14 eqtri
 |-  ( { z | E. x E. y ( z = <. x , y >. /\ ph ) } u. { z | E. x E. y ( z = <. x , y >. /\ ps ) } ) = { w | E. x E. y ( w = <. x , y >. /\ ( ph \/ ps ) ) }
16 df-opab
 |-  { <. x , y >. | ph } = { z | E. x E. y ( z = <. x , y >. /\ ph ) }
17 df-opab
 |-  { <. x , y >. | ps } = { z | E. x E. y ( z = <. x , y >. /\ ps ) }
18 16 17 uneq12i
 |-  ( { <. x , y >. | ph } u. { <. x , y >. | ps } ) = ( { z | E. x E. y ( z = <. x , y >. /\ ph ) } u. { z | E. x E. y ( z = <. x , y >. /\ ps ) } )
19 df-opab
 |-  { <. x , y >. | ( ph \/ ps ) } = { w | E. x E. y ( w = <. x , y >. /\ ( ph \/ ps ) ) }
20 15 18 19 3eqtr4i
 |-  ( { <. x , y >. | ph } u. { <. x , y >. | ps } ) = { <. x , y >. | ( ph \/ ps ) }