Metamath Proof Explorer


Theorem cbvrabcsf

Description: A more general version of cbvrab with no distinct variable restrictions. Usage of this theorem is discouraged because it depends on ax-13 . (Contributed by Andrew Salmon, 13-Jul-2011) (New usage is discouraged.)

Ref Expression
Hypotheses cbvralcsf.1
|- F/_ y A
cbvralcsf.2
|- F/_ x B
cbvralcsf.3
|- F/ y ph
cbvralcsf.4
|- F/ x ps
cbvralcsf.5
|- ( x = y -> A = B )
cbvralcsf.6
|- ( x = y -> ( ph <-> ps ) )
Assertion cbvrabcsf
|- { x e. A | ph } = { y e. B | ps }

Proof

Step Hyp Ref Expression
1 cbvralcsf.1
 |-  F/_ y A
2 cbvralcsf.2
 |-  F/_ x B
3 cbvralcsf.3
 |-  F/ y ph
4 cbvralcsf.4
 |-  F/ x ps
5 cbvralcsf.5
 |-  ( x = y -> A = B )
6 cbvralcsf.6
 |-  ( x = y -> ( ph <-> ps ) )
7 nfv
 |-  F/ z ( x e. A /\ ph )
8 nfcsb1v
 |-  F/_ x [_ z / x ]_ A
9 8 nfcri
 |-  F/ x z e. [_ z / x ]_ A
10 nfs1v
 |-  F/ x [ z / x ] ph
11 9 10 nfan
 |-  F/ x ( z e. [_ z / x ]_ A /\ [ z / x ] ph )
12 id
 |-  ( x = z -> x = z )
13 csbeq1a
 |-  ( x = z -> A = [_ z / x ]_ A )
14 12 13 eleq12d
 |-  ( x = z -> ( x e. A <-> z e. [_ z / x ]_ A ) )
15 sbequ12
 |-  ( x = z -> ( ph <-> [ z / x ] ph ) )
16 14 15 anbi12d
 |-  ( x = z -> ( ( x e. A /\ ph ) <-> ( z e. [_ z / x ]_ A /\ [ z / x ] ph ) ) )
17 7 11 16 cbvab
 |-  { x | ( x e. A /\ ph ) } = { z | ( z e. [_ z / x ]_ A /\ [ z / x ] ph ) }
18 nfcv
 |-  F/_ y z
19 18 1 nfcsb
 |-  F/_ y [_ z / x ]_ A
20 19 nfcri
 |-  F/ y z e. [_ z / x ]_ A
21 3 nfsb
 |-  F/ y [ z / x ] ph
22 20 21 nfan
 |-  F/ y ( z e. [_ z / x ]_ A /\ [ z / x ] ph )
23 nfv
 |-  F/ z ( y e. B /\ ps )
24 id
 |-  ( z = y -> z = y )
25 csbeq1
 |-  ( z = y -> [_ z / x ]_ A = [_ y / x ]_ A )
26 df-csb
 |-  [_ y / x ]_ A = { v | [. y / x ]. v e. A }
27 2 nfcri
 |-  F/ x v e. B
28 5 eleq2d
 |-  ( x = y -> ( v e. A <-> v e. B ) )
29 27 28 sbie
 |-  ( [ y / x ] v e. A <-> v e. B )
30 sbsbc
 |-  ( [ y / x ] v e. A <-> [. y / x ]. v e. A )
31 29 30 bitr3i
 |-  ( v e. B <-> [. y / x ]. v e. A )
32 31 abbi2i
 |-  B = { v | [. y / x ]. v e. A }
33 26 32 eqtr4i
 |-  [_ y / x ]_ A = B
34 25 33 eqtrdi
 |-  ( z = y -> [_ z / x ]_ A = B )
35 24 34 eleq12d
 |-  ( z = y -> ( z e. [_ z / x ]_ A <-> y e. B ) )
36 sbequ
 |-  ( z = y -> ( [ z / x ] ph <-> [ y / x ] ph ) )
37 4 6 sbie
 |-  ( [ y / x ] ph <-> ps )
38 36 37 bitrdi
 |-  ( z = y -> ( [ z / x ] ph <-> ps ) )
39 35 38 anbi12d
 |-  ( z = y -> ( ( z e. [_ z / x ]_ A /\ [ z / x ] ph ) <-> ( y e. B /\ ps ) ) )
40 22 23 39 cbvab
 |-  { z | ( z e. [_ z / x ]_ A /\ [ z / x ] ph ) } = { y | ( y e. B /\ ps ) }
41 17 40 eqtri
 |-  { x | ( x e. A /\ ph ) } = { y | ( y e. B /\ ps ) }
42 df-rab
 |-  { x e. A | ph } = { x | ( x e. A /\ ph ) }
43 df-rab
 |-  { y e. B | ps } = { y | ( y e. B /\ ps ) }
44 41 42 43 3eqtr4i
 |-  { x e. A | ph } = { y e. B | ps }