Metamath Proof Explorer


Theorem clelab

Description: Membership of a class variable in a class abstraction. (Contributed by NM, 23-Dec-1993) (Proof shortened by Wolf Lammen, 16-Nov-2019) Avoid ax-11 , see sbc5ALT for more details. (Revised by SN, 2-Sep-2024)

Ref Expression
Assertion clelab
|- ( A e. { x | ph } <-> E. x ( x = A /\ ph ) )

Proof

Step Hyp Ref Expression
1 elisset
 |-  ( A e. { x | ph } -> E. y y = A )
2 exsimpl
 |-  ( E. x ( x = A /\ ph ) -> E. x x = A )
3 eqeq1
 |-  ( x = y -> ( x = A <-> y = A ) )
4 3 cbvexvw
 |-  ( E. x x = A <-> E. y y = A )
5 2 4 sylib
 |-  ( E. x ( x = A /\ ph ) -> E. y y = A )
6 df-clab
 |-  ( y e. { x | ph } <-> [ y / x ] ph )
7 sb5
 |-  ( [ y / x ] ph <-> E. x ( x = y /\ ph ) )
8 6 7 bitri
 |-  ( y e. { x | ph } <-> E. x ( x = y /\ ph ) )
9 eleq1
 |-  ( y = A -> ( y e. { x | ph } <-> A e. { x | ph } ) )
10 eqeq2
 |-  ( y = A -> ( x = y <-> x = A ) )
11 10 anbi1d
 |-  ( y = A -> ( ( x = y /\ ph ) <-> ( x = A /\ ph ) ) )
12 11 exbidv
 |-  ( y = A -> ( E. x ( x = y /\ ph ) <-> E. x ( x = A /\ ph ) ) )
13 9 12 bibi12d
 |-  ( y = A -> ( ( y e. { x | ph } <-> E. x ( x = y /\ ph ) ) <-> ( A e. { x | ph } <-> E. x ( x = A /\ ph ) ) ) )
14 8 13 mpbii
 |-  ( y = A -> ( A e. { x | ph } <-> E. x ( x = A /\ ph ) ) )
15 14 exlimiv
 |-  ( E. y y = A -> ( A e. { x | ph } <-> E. x ( x = A /\ ph ) ) )
16 1 5 15 pm5.21nii
 |-  ( A e. { x | ph } <-> E. x ( x = A /\ ph ) )