Metamath Proof Explorer


Theorem cbvreucsf

Description: A more general version of cbvreuv that has no distinct variable restrictions. Changes bound variables using implicit substitution. 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 cbvreucsf
|- ( E! x e. A ph <-> E! 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 cbveu
 |-  ( E! x ( x e. A /\ ph ) <-> E! 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 sbsbc
 |-  ( [ y / x ] v e. A <-> [. y / x ]. v e. A )
27 26 abbii
 |-  { v | [ y / x ] v e. A } = { v | [. y / x ]. v e. A }
28 2 nfcri
 |-  F/ x v e. B
29 5 eleq2d
 |-  ( x = y -> ( v e. A <-> v e. B ) )
30 28 29 sbie
 |-  ( [ y / x ] v e. A <-> v e. B )
31 30 bicomi
 |-  ( v e. B <-> [ y / x ] v e. A )
32 31 abbi2i
 |-  B = { v | [ y / x ] v e. A }
33 df-csb
 |-  [_ y / x ]_ A = { v | [. y / x ]. v e. A }
34 27 32 33 3eqtr4ri
 |-  [_ y / x ]_ A = B
35 25 34 eqtrdi
 |-  ( z = y -> [_ z / x ]_ A = B )
36 24 35 eleq12d
 |-  ( z = y -> ( z e. [_ z / x ]_ A <-> y e. B ) )
37 sbequ
 |-  ( z = y -> ( [ z / x ] ph <-> [ y / x ] ph ) )
38 4 6 sbie
 |-  ( [ y / x ] ph <-> ps )
39 37 38 bitrdi
 |-  ( z = y -> ( [ z / x ] ph <-> ps ) )
40 36 39 anbi12d
 |-  ( z = y -> ( ( z e. [_ z / x ]_ A /\ [ z / x ] ph ) <-> ( y e. B /\ ps ) ) )
41 22 23 40 cbveu
 |-  ( E! z ( z e. [_ z / x ]_ A /\ [ z / x ] ph ) <-> E! y ( y e. B /\ ps ) )
42 17 41 bitri
 |-  ( E! x ( x e. A /\ ph ) <-> E! y ( y e. B /\ ps ) )
43 df-reu
 |-  ( E! x e. A ph <-> E! x ( x e. A /\ ph ) )
44 df-reu
 |-  ( E! y e. B ps <-> E! y ( y e. B /\ ps ) )
45 42 43 44 3bitr4i
 |-  ( E! x e. A ph <-> E! y e. B ps )