Metamath Proof Explorer


Theorem trsbcVD

Description: Formula-building inference rule for class substitution, substituting a class variable for the setvar variable of the transitivity predicate. The following User's Proof is a Virtual Deduction proof completed automatically by the tools program completeusersproof.cmd, which invokes Mel L. O'Cat's mmj2 and Norm Megill's Metamath Proof Assistant. trsbc is trsbcVD without virtual deductions and was automatically derived from trsbcVD .

1:: |- (. A e. B ->. A e. B ).
2:1: |- (. A e. B ->. ( [. A / x ]. z e. y <-> z e. y ) ).
3:1: |- (. A e. B ->. ( [. A / x ]. y e. x <-> y e. A ) ).
4:1: |- (. A e. B ->. ( [. A / x ]. z e. x <-> z e. A ) ).
5:1,2,3,4: |- (. A e. B ->. ( ( [. A / x ]. z e. y -> ( [. A / x ]. y e. x -> [. A / x ]. z e. x ) ) <-> ( z e. y -> ( y e. A -> z e. A ) ) ) ).
6:1: |- (. A e. B ->. ( [. A / x ]. ( z e. y -> ( y e. x -> z e. x ) ) <-> ( [. A / x ]. z e. y -> ( [. A / x ]. y e. x -> [. A / x ]. z e. x ) ) ) ).
7:5,6: |- (. A e. B ->. ( [. A / x ]. ( z e. y -> ( y e. x -> z e. x ) ) <-> ( z e. y -> ( y e. A -> z e. A ) ) ) ).
8:: |- ( ( z e. y -> ( y e. A -> z e. A ) ) <-> ( ( z e. y /\ y e. A ) -> z e. A ) )
9:7,8: |- (. A e. B ->. ( [. A / x ]. ( z e. y -> ( y e. x -> z e. x ) ) <-> ( ( z e. y /\ y e. A ) -> z e. A ) ) ).
10:: |- ( ( z e. y -> ( y e. x -> z e. x ) ) <-> ( ( z e. y /\ y e. x ) -> z e. x ) )
11:10: |- A. x ( ( z e. y -> ( y e. x -> z e. x ) ) <-> ( ( z e. y /\ y e. x ) -> z e. x ) )
12:1,11: |- (. A e. B ->. ( [. A / x ]. ( z e. y -> ( y e. x -> z e. x ) ) <-> [. A / x ]. ( ( z e. y /\ y e. x ) -> z e. x ) ) ).
13:9,12: |- (. A e. B ->. ( [. A / x ]. ( ( z e. y /\ y e. x ) -> z e. x ) <-> ( ( z e. y /\ y e. A ) -> z e. A ) ) ).
14:13: |- (. A e. B ->. A. y ( [. A / x ]. ( ( z e. y /\ y e. x ) -> z e. x ) <-> ( ( z e. y /\ y e. A ) -> z e. A ) ) ).
15:14: |- (. A e. B ->. ( A. y [. A / x ]. ( ( z e. y /\ y e. x ) -> z e. x ) <-> A. y ( ( z e. y /\ y e. A ) -> z e. A ) ) ).
16:1: |- (. A e. B ->. ( [. A / x ]. A. y ( ( z e. y /\ y e. x ) -> z e. x ) <-> A. y [. A / x ]. ( ( z e. y /\ y e. x ) -> z e. x ) ) ).
17:15,16: |- (. A e. B ->. ( [. A / x ]. A. y ( ( z e. y /\ y e. x ) -> z e. x ) <-> A. y ( ( z e. y /\ y e. A ) -> z e. A ) ) ).
18:17: |- (. A e. B ->. A. z ( [. A / x ]. A. y ( ( z e. y /\ y e. x ) -> z e. x ) <-> A. y ( ( z e. y /\ y e. A ) -> z e. A ) ) ).
19:18: |- (. A e. B ->. ( A. z [. A / x ]. A. y ( ( z e. y /\ y e. x ) -> z e. x ) <-> A. z A. y ( ( z e. y /\ y e. A ) -> z e. A ) ) ).
20:1: |- (. A e. B ->. ( [. A / x ]. A. z A. y ( ( z e. y /\ y e. x ) -> z e. x ) <-> A. z [. A / x ]. A. y ( ( z e. y /\ y e. x ) -> z e. x ) ) ).
21:19,20: |- (. A e. B ->. ( [. A / x ]. A. z A. y ( ( z e. y /\ y e. x ) -> z e. x ) <-> A. z A. y ( ( z e. y /\ y e. A ) -> z e. A ) ) ).
22:: |- ( Tr A <-> A. z A. y ( ( z e. y /\ y e. A ) -> z e. A ) )
23:21,22: |- (. A e. B ->. ( [. A / x ]. A. z A. y ( ( z e. y /\ y e. x ) -> z e. x ) <-> Tr A ) ).
24:: |- ( Tr x <-> A. z A. y ( ( z e. y /\ y e. x ) -> z e. x ) )
25:24: |- A. x ( Tr x <-> A. z A. y ( ( z e. y /\ y e. x ) -> z e. x ) )
26:1,25: |- (. A e. B ->. ( [. A / x ]. Tr x <-> [. A / x ]. A. z A. y ( ( z e. y /\ y e. x ) -> z e. x ) ) ).
27:23,26: |- (. A e. B ->. ( [. A / x ]. Tr x <-> Tr A ) ).
qed:27: |- ( A e. B -> ( [. A / x ]. Tr x <-> Tr A ) )
(Contributed by Alan Sare, 18-Mar-2012) (Proof modification is discouraged.) (New usage is discouraged.)

Ref Expression
Assertion trsbcVD ( 𝐴𝐵 → ( [ 𝐴 / 𝑥 ] Tr 𝑥 ↔ Tr 𝐴 ) )

Proof

Step Hyp Ref Expression
1 idn1 (    𝐴𝐵    ▶    𝐴𝐵    )
2 sbcg ( 𝐴𝐵 → ( [ 𝐴 / 𝑥 ] 𝑧𝑦𝑧𝑦 ) )
3 1 2 e1a (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] 𝑧𝑦𝑧𝑦 )    )
4 sbcel2gv ( 𝐴𝐵 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥𝑦𝐴 ) )
5 1 4 e1a (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] 𝑦𝑥𝑦𝐴 )    )
6 sbcel2gv ( 𝐴𝐵 → ( [ 𝐴 / 𝑥 ] 𝑧𝑥𝑧𝐴 ) )
7 1 6 e1a (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] 𝑧𝑥𝑧𝐴 )    )
8 imbi13 ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦𝑧𝑦 ) → ( ( [ 𝐴 / 𝑥 ] 𝑦𝑥𝑦𝐴 ) → ( ( [ 𝐴 / 𝑥 ] 𝑧𝑥𝑧𝐴 ) → ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) ) ) )
9 8 a1i ( 𝐴𝐵 → ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦𝑧𝑦 ) → ( ( [ 𝐴 / 𝑥 ] 𝑦𝑥𝑦𝐴 ) → ( ( [ 𝐴 / 𝑥 ] 𝑧𝑥𝑧𝐴 ) → ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) ) ) ) )
10 1 3 5 7 9 e1111 (    𝐴𝐵    ▶    ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) )    )
11 sbcim2g ( 𝐴𝐵 → ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ) )
12 1 11 e1a (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) )    )
13 bibi1 ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ) → ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) ↔ ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) ) )
14 13 biimprcd ( ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) → ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ) → ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) ) )
15 10 12 14 e11 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) )    )
16 pm3.31 ( ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) → ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )
17 pm3.3 ( ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) → ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) )
18 16 17 impbii ( ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )
19 bibi1 ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) → ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ↔ ( ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) )
20 19 biimprd ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) → ( ( ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) )
21 15 18 20 e10 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )    )
22 pm3.31 ( ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) → ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
23 pm3.3 ( ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) → ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) )
24 22 23 impbii ( ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
25 24 ax-gen 𝑥 ( ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
26 sbcbi ( 𝐴𝐵 → ( ∀ 𝑥 ( ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) ) )
27 1 25 26 e10 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )    )
28 bitr3 ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) )
29 28 com12 ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) )
30 21 27 29 e11 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )    )
31 30 gen11 (    𝐴𝐵    ▶   𝑦 ( [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )    )
32 albi ( ∀ 𝑦 ( [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) )
33 31 32 e1a (    𝐴𝐵    ▶    ( ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )    )
34 sbcal ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
35 34 a1i ( 𝐴𝐵 → ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) )
36 1 35 e1a (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )    )
37 bibi1 ( ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ↔ ( ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) )
38 37 biimprcd ( ( ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) )
39 33 36 38 e11 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )    )
40 39 gen11 (    𝐴𝐵    ▶   𝑧 ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )    )
41 albi ( ∀ 𝑧 ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) )
42 40 41 e1a (    𝐴𝐵    ▶    ( ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )    )
43 sbcal ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
44 43 a1i ( 𝐴𝐵 → ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) )
45 1 44 e1a (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )    )
46 bibi1 ( ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ↔ ( ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) )
47 46 biimprcd ( ( ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) )
48 42 45 47 e11 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )    )
49 dftr2 ( Tr 𝐴 ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )
50 biantr ( ( ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ∧ ( Tr 𝐴 ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) ) → ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ Tr 𝐴 ) )
51 50 ex ( ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( ( Tr 𝐴 ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) → ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ Tr 𝐴 ) ) )
52 48 49 51 e10 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ Tr 𝐴 )    )
53 dftr2 ( Tr 𝑥 ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
54 53 ax-gen 𝑥 ( Tr 𝑥 ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
55 sbcbi ( 𝐴𝐵 → ( ∀ 𝑥 ( Tr 𝑥 ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( [ 𝐴 / 𝑥 ] Tr 𝑥[ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) ) )
56 1 54 55 e10 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] Tr 𝑥[ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )    )
57 bibi1 ( ( [ 𝐴 / 𝑥 ] Tr 𝑥[ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( ( [ 𝐴 / 𝑥 ] Tr 𝑥 ↔ Tr 𝐴 ) ↔ ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ Tr 𝐴 ) ) )
58 57 biimprcd ( ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ Tr 𝐴 ) → ( ( [ 𝐴 / 𝑥 ] Tr 𝑥[ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ) → ( [ 𝐴 / 𝑥 ] Tr 𝑥 ↔ Tr 𝐴 ) ) )
59 52 56 58 e11 (    𝐴𝐵    ▶    ( [ 𝐴 / 𝑥 ] Tr 𝑥 ↔ Tr 𝐴 )    )
60 59 in1 ( 𝐴𝐵 → ( [ 𝐴 / 𝑥 ] Tr 𝑥 ↔ Tr 𝐴 ) )