This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Change first bound variable in an ordered-pair class abstraction, using explicit substitution. (Contributed by NM, 31-Jul-2003)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | cbvopab1s | |- { <. x , y >. | ph } = { <. z , y >. | [ z / x ] ph } |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | nfv | |- F/ z E. y ( w = <. x , y >. /\ ph ) |
|
| 2 | nfv | |- F/ x w = <. z , y >. |
|
| 3 | nfs1v | |- F/ x [ z / x ] ph |
|
| 4 | 2 3 | nfan | |- F/ x ( w = <. z , y >. /\ [ z / x ] ph ) |
| 5 | 4 | nfex | |- F/ x E. y ( w = <. z , y >. /\ [ z / x ] ph ) |
| 6 | opeq1 | |- ( x = z -> <. x , y >. = <. z , y >. ) |
|
| 7 | 6 | eqeq2d | |- ( x = z -> ( w = <. x , y >. <-> w = <. z , y >. ) ) |
| 8 | sbequ12 | |- ( x = z -> ( ph <-> [ z / x ] ph ) ) |
|
| 9 | 7 8 | anbi12d | |- ( x = z -> ( ( w = <. x , y >. /\ ph ) <-> ( w = <. z , y >. /\ [ z / x ] ph ) ) ) |
| 10 | 9 | exbidv | |- ( x = z -> ( E. y ( w = <. x , y >. /\ ph ) <-> E. y ( w = <. z , y >. /\ [ z / x ] ph ) ) ) |
| 11 | 1 5 10 | cbvexv1 | |- ( E. x E. y ( w = <. x , y >. /\ ph ) <-> E. z E. y ( w = <. z , y >. /\ [ z / x ] ph ) ) |
| 12 | 11 | abbii | |- { w | E. x E. y ( w = <. x , y >. /\ ph ) } = { w | E. z E. y ( w = <. z , y >. /\ [ z / x ] ph ) } |
| 13 | df-opab | |- { <. x , y >. | ph } = { w | E. x E. y ( w = <. x , y >. /\ ph ) } |
|
| 14 | df-opab | |- { <. z , y >. | [ z / x ] ph } = { w | E. z E. y ( w = <. z , y >. /\ [ z / x ] ph ) } |
|
| 15 | 12 13 14 | 3eqtr4i | |- { <. x , y >. | ph } = { <. z , y >. | [ z / x ] ph } |