Metamath Proof Explorer


Theorem csbied

Description: Conversion of implicit substitution to explicit substitution into a class. (Contributed by Mario Carneiro, 2-Dec-2014) (Revised by Mario Carneiro, 13-Oct-2016) Reduce axiom usage. (Revised by Gino Giotto, 15-Oct-2024)

Ref Expression
Hypotheses csbied.1 ( 𝜑𝐴𝑉 )
csbied.2 ( ( 𝜑𝑥 = 𝐴 ) → 𝐵 = 𝐶 )
Assertion csbied ( 𝜑 𝐴 / 𝑥 𝐵 = 𝐶 )

Proof

Step Hyp Ref Expression
1 csbied.1 ( 𝜑𝐴𝑉 )
2 csbied.2 ( ( 𝜑𝑥 = 𝐴 ) → 𝐵 = 𝐶 )
3 df-csb 𝐴 / 𝑥 𝐵 = { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 }
4 2 eleq2d ( ( 𝜑𝑥 = 𝐴 ) → ( 𝑧𝐵𝑧𝐶 ) )
5 1 4 sbcied ( 𝜑 → ( [ 𝐴 / 𝑥 ] 𝑧𝐵𝑧𝐶 ) )
6 5 alrimiv ( 𝜑 → ∀ 𝑧 ( [ 𝐴 / 𝑥 ] 𝑧𝐵𝑧𝐶 ) )
7 df-clab ( 𝑧 ∈ { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 } ↔ [ 𝑧 / 𝑦 ] [ 𝐴 / 𝑥 ] 𝑦𝐵 )
8 eleq1w ( 𝑦 = 𝑧 → ( 𝑦𝐵𝑧𝐵 ) )
9 8 sbcbidv ( 𝑦 = 𝑧 → ( [ 𝐴 / 𝑥 ] 𝑦𝐵[ 𝐴 / 𝑥 ] 𝑧𝐵 ) )
10 9 sbievw ( [ 𝑧 / 𝑦 ] [ 𝐴 / 𝑥 ] 𝑦𝐵[ 𝐴 / 𝑥 ] 𝑧𝐵 )
11 7 10 bitr2i ( [ 𝐴 / 𝑥 ] 𝑧𝐵𝑧 ∈ { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 } )
12 11 bibi1i ( ( [ 𝐴 / 𝑥 ] 𝑧𝐵𝑧𝐶 ) ↔ ( 𝑧 ∈ { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 } ↔ 𝑧𝐶 ) )
13 12 biimpi ( ( [ 𝐴 / 𝑥 ] 𝑧𝐵𝑧𝐶 ) → ( 𝑧 ∈ { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 } ↔ 𝑧𝐶 ) )
14 6 13 sylg ( 𝜑 → ∀ 𝑧 ( 𝑧 ∈ { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 } ↔ 𝑧𝐶 ) )
15 dfcleq ( { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 } = 𝐶 ↔ ∀ 𝑧 ( 𝑧 ∈ { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 } ↔ 𝑧𝐶 ) )
16 14 15 sylibr ( 𝜑 → { 𝑦[ 𝐴 / 𝑥 ] 𝑦𝐵 } = 𝐶 )
17 3 16 eqtrid ( 𝜑 𝐴 / 𝑥 𝐵 = 𝐶 )