Metamath Proof Explorer


Theorem sbciegft

Description: Conversion of implicit substitution to explicit class substitution, using a bound-variable hypothesis instead of distinct variables. (Closed theorem version of sbciegf .) (Contributed by NM, 10-Nov-2005) (Revised by Mario Carneiro, 13-Oct-2016)

Ref Expression
Assertion sbciegft
|- ( ( A e. V /\ F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( [. A / x ]. ph <-> ps ) )

Proof

Step Hyp Ref Expression
1 sbc5
 |-  ( [. A / x ]. ph <-> E. x ( x = A /\ ph ) )
2 biimp
 |-  ( ( ph <-> ps ) -> ( ph -> ps ) )
3 2 imim2i
 |-  ( ( x = A -> ( ph <-> ps ) ) -> ( x = A -> ( ph -> ps ) ) )
4 3 impd
 |-  ( ( x = A -> ( ph <-> ps ) ) -> ( ( x = A /\ ph ) -> ps ) )
5 4 alimi
 |-  ( A. x ( x = A -> ( ph <-> ps ) ) -> A. x ( ( x = A /\ ph ) -> ps ) )
6 19.23t
 |-  ( F/ x ps -> ( A. x ( ( x = A /\ ph ) -> ps ) <-> ( E. x ( x = A /\ ph ) -> ps ) ) )
7 6 biimpa
 |-  ( ( F/ x ps /\ A. x ( ( x = A /\ ph ) -> ps ) ) -> ( E. x ( x = A /\ ph ) -> ps ) )
8 5 7 sylan2
 |-  ( ( F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( E. x ( x = A /\ ph ) -> ps ) )
9 8 3adant1
 |-  ( ( A e. V /\ F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( E. x ( x = A /\ ph ) -> ps ) )
10 1 9 syl5bi
 |-  ( ( A e. V /\ F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( [. A / x ]. ph -> ps ) )
11 biimpr
 |-  ( ( ph <-> ps ) -> ( ps -> ph ) )
12 11 imim2i
 |-  ( ( x = A -> ( ph <-> ps ) ) -> ( x = A -> ( ps -> ph ) ) )
13 12 com23
 |-  ( ( x = A -> ( ph <-> ps ) ) -> ( ps -> ( x = A -> ph ) ) )
14 13 alimi
 |-  ( A. x ( x = A -> ( ph <-> ps ) ) -> A. x ( ps -> ( x = A -> ph ) ) )
15 19.21t
 |-  ( F/ x ps -> ( A. x ( ps -> ( x = A -> ph ) ) <-> ( ps -> A. x ( x = A -> ph ) ) ) )
16 15 biimpa
 |-  ( ( F/ x ps /\ A. x ( ps -> ( x = A -> ph ) ) ) -> ( ps -> A. x ( x = A -> ph ) ) )
17 14 16 sylan2
 |-  ( ( F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( ps -> A. x ( x = A -> ph ) ) )
18 17 3adant1
 |-  ( ( A e. V /\ F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( ps -> A. x ( x = A -> ph ) ) )
19 sbc6g
 |-  ( A e. V -> ( [. A / x ]. ph <-> A. x ( x = A -> ph ) ) )
20 19 3ad2ant1
 |-  ( ( A e. V /\ F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( [. A / x ]. ph <-> A. x ( x = A -> ph ) ) )
21 18 20 sylibrd
 |-  ( ( A e. V /\ F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( ps -> [. A / x ]. ph ) )
22 10 21 impbid
 |-  ( ( A e. V /\ F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) ) -> ( [. A / x ]. ph <-> ps ) )