Metamath Proof Explorer


Theorem bj-elabd2ALT

Description: Alternate proof of elabd2 bypassing elab6g (and using sbiedvw instead of the A. x ( x = y -> ps ) idiom). (Contributed by BJ, 16-Oct-2024) (Proof modification is discouraged.) (New usage is discouraged.)

Ref Expression
Hypotheses bj-elabd2ALT.ex ( 𝜑𝐴𝑉 )
bj-elabd2ALT.eq ( 𝜑𝐵 = { 𝑥𝜓 } )
bj-elabd2ALT.is ( ( 𝜑𝑥 = 𝐴 ) → ( 𝜓𝜒 ) )
Assertion bj-elabd2ALT ( 𝜑 → ( 𝐴𝐵𝜒 ) )

Proof

Step Hyp Ref Expression
1 bj-elabd2ALT.ex ( 𝜑𝐴𝑉 )
2 bj-elabd2ALT.eq ( 𝜑𝐵 = { 𝑥𝜓 } )
3 bj-elabd2ALT.is ( ( 𝜑𝑥 = 𝐴 ) → ( 𝜓𝜒 ) )
4 simpr ( ( 𝜑𝑦 = 𝐴 ) → 𝑦 = 𝐴 )
5 2 eqcomd ( 𝜑 → { 𝑥𝜓 } = 𝐵 )
6 5 adantr ( ( 𝜑𝑦 = 𝐴 ) → { 𝑥𝜓 } = 𝐵 )
7 4 6 eleq12d ( ( 𝜑𝑦 = 𝐴 ) → ( 𝑦 ∈ { 𝑥𝜓 } ↔ 𝐴𝐵 ) )
8 eqeq1 ( 𝑥 = 𝑦 → ( 𝑥 = 𝐴𝑦 = 𝐴 ) )
9 8 biimparc ( ( 𝑦 = 𝐴𝑥 = 𝑦 ) → 𝑥 = 𝐴 )
10 9 anim2i ( ( 𝜑 ∧ ( 𝑦 = 𝐴𝑥 = 𝑦 ) ) → ( 𝜑𝑥 = 𝐴 ) )
11 10 anassrs ( ( ( 𝜑𝑦 = 𝐴 ) ∧ 𝑥 = 𝑦 ) → ( 𝜑𝑥 = 𝐴 ) )
12 11 3 syl ( ( ( 𝜑𝑦 = 𝐴 ) ∧ 𝑥 = 𝑦 ) → ( 𝜓𝜒 ) )
13 12 sbiedvw ( ( 𝜑𝑦 = 𝐴 ) → ( [ 𝑦 / 𝑥 ] 𝜓𝜒 ) )
14 7 13 bibi12d ( ( 𝜑𝑦 = 𝐴 ) → ( ( 𝑦 ∈ { 𝑥𝜓 } ↔ [ 𝑦 / 𝑥 ] 𝜓 ) ↔ ( 𝐴𝐵𝜒 ) ) )
15 df-clab ( 𝑦 ∈ { 𝑥𝜓 } ↔ [ 𝑦 / 𝑥 ] 𝜓 )
16 15 a1i ( 𝜑 → ( 𝑦 ∈ { 𝑥𝜓 } ↔ [ 𝑦 / 𝑥 ] 𝜓 ) )
17 1 14 16 vtocld ( 𝜑 → ( 𝐴𝐵𝜒 ) )