Metamath Proof Explorer


Theorem cbvralf

Description: Rule used to change bound variables, using implicit substitution. Usage of this theorem is discouraged because it depends on ax-13 . Use the weaker cbvralfw when possible. (Contributed by NM, 7-Mar-2004) (Revised by Mario Carneiro, 9-Oct-2016) (New usage is discouraged.)

Ref Expression
Hypotheses cbvralf.1 𝑥 𝐴
cbvralf.2 𝑦 𝐴
cbvralf.3 𝑦 𝜑
cbvralf.4 𝑥 𝜓
cbvralf.5 ( 𝑥 = 𝑦 → ( 𝜑𝜓 ) )
Assertion cbvralf ( ∀ 𝑥𝐴 𝜑 ↔ ∀ 𝑦𝐴 𝜓 )

Proof

Step Hyp Ref Expression
1 cbvralf.1 𝑥 𝐴
2 cbvralf.2 𝑦 𝐴
3 cbvralf.3 𝑦 𝜑
4 cbvralf.4 𝑥 𝜓
5 cbvralf.5 ( 𝑥 = 𝑦 → ( 𝜑𝜓 ) )
6 nfv 𝑧 ( 𝑥𝐴𝜑 )
7 1 nfcri 𝑥 𝑧𝐴
8 nfs1v 𝑥 [ 𝑧 / 𝑥 ] 𝜑
9 7 8 nfim 𝑥 ( 𝑧𝐴 → [ 𝑧 / 𝑥 ] 𝜑 )
10 eleq1w ( 𝑥 = 𝑧 → ( 𝑥𝐴𝑧𝐴 ) )
11 sbequ12 ( 𝑥 = 𝑧 → ( 𝜑 ↔ [ 𝑧 / 𝑥 ] 𝜑 ) )
12 10 11 imbi12d ( 𝑥 = 𝑧 → ( ( 𝑥𝐴𝜑 ) ↔ ( 𝑧𝐴 → [ 𝑧 / 𝑥 ] 𝜑 ) ) )
13 6 9 12 cbvalv1 ( ∀ 𝑥 ( 𝑥𝐴𝜑 ) ↔ ∀ 𝑧 ( 𝑧𝐴 → [ 𝑧 / 𝑥 ] 𝜑 ) )
14 2 nfcri 𝑦 𝑧𝐴
15 3 nfsb 𝑦 [ 𝑧 / 𝑥 ] 𝜑
16 14 15 nfim 𝑦 ( 𝑧𝐴 → [ 𝑧 / 𝑥 ] 𝜑 )
17 nfv 𝑧 ( 𝑦𝐴𝜓 )
18 eleq1w ( 𝑧 = 𝑦 → ( 𝑧𝐴𝑦𝐴 ) )
19 sbequ ( 𝑧 = 𝑦 → ( [ 𝑧 / 𝑥 ] 𝜑 ↔ [ 𝑦 / 𝑥 ] 𝜑 ) )
20 4 5 sbie ( [ 𝑦 / 𝑥 ] 𝜑𝜓 )
21 19 20 bitrdi ( 𝑧 = 𝑦 → ( [ 𝑧 / 𝑥 ] 𝜑𝜓 ) )
22 18 21 imbi12d ( 𝑧 = 𝑦 → ( ( 𝑧𝐴 → [ 𝑧 / 𝑥 ] 𝜑 ) ↔ ( 𝑦𝐴𝜓 ) ) )
23 16 17 22 cbvalv1 ( ∀ 𝑧 ( 𝑧𝐴 → [ 𝑧 / 𝑥 ] 𝜑 ) ↔ ∀ 𝑦 ( 𝑦𝐴𝜓 ) )
24 13 23 bitri ( ∀ 𝑥 ( 𝑥𝐴𝜑 ) ↔ ∀ 𝑦 ( 𝑦𝐴𝜓 ) )
25 df-ral ( ∀ 𝑥𝐴 𝜑 ↔ ∀ 𝑥 ( 𝑥𝐴𝜑 ) )
26 df-ral ( ∀ 𝑦𝐴 𝜓 ↔ ∀ 𝑦 ( 𝑦𝐴𝜓 ) )
27 24 25 26 3bitr4i ( ∀ 𝑥𝐴 𝜑 ↔ ∀ 𝑦𝐴 𝜓 )