This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Change bound variable by using a substitution. Version of cbvralsv with a disjoint variable condition, which does not require ax-13 . (Contributed by NM, 20-Nov-2005) Avoid ax-13 . (Revised by GG, 10-Jan-2024) (Proof shortened by Wolf Lammen, 8-Mar-2025) Avoid ax-10 , ax-12 . (Revised by SN, 21-Aug-2025)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | cbvralsvw | |- ( A. x e. A ph <-> A. y e. A [ y / x ] ph ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | sb8v | |- ( A. x ( x e. A -> ph ) <-> A. y [ y / x ] ( x e. A -> ph ) ) |
|
| 2 | df-ral | |- ( A. x e. A ph <-> A. x ( x e. A -> ph ) ) |
|
| 3 | df-ral | |- ( A. y e. A [ y / x ] ph <-> A. y ( y e. A -> [ y / x ] ph ) ) |
|
| 4 | eleq1w | |- ( x = y -> ( x e. A <-> y e. A ) ) |
|
| 5 | 4 | imbi1d | |- ( x = y -> ( ( x e. A -> ph ) <-> ( y e. A -> ph ) ) ) |
| 6 | 5 | sbbiiev | |- ( [ y / x ] ( x e. A -> ph ) <-> [ y / x ] ( y e. A -> ph ) ) |
| 7 | sbrimvw | |- ( [ y / x ] ( y e. A -> ph ) <-> ( y e. A -> [ y / x ] ph ) ) |
|
| 8 | 6 7 | bitr2i | |- ( ( y e. A -> [ y / x ] ph ) <-> [ y / x ] ( x e. A -> ph ) ) |
| 9 | 8 | albii | |- ( A. y ( y e. A -> [ y / x ] ph ) <-> A. y [ y / x ] ( x e. A -> ph ) ) |
| 10 | 3 9 | bitri | |- ( A. y e. A [ y / x ] ph <-> A. y [ y / x ] ( x e. A -> ph ) ) |
| 11 | 1 2 10 | 3bitr4i | |- ( A. x e. A ph <-> A. y e. A [ y / x ] ph ) |