Metamath Proof Explorer


Theorem trsbc

Description: Formula-building inference rule for class substitution, substituting a class variable for the setvar variable of the transitivity predicate. trsbc is trsbcVD without virtual deductions and was automatically derived from trsbcVD using the tools program translate..without..overwriting.cmd and Metamath's minimize command. (Contributed by Alan Sare, 18-Mar-2012) (Proof modification is discouraged.) (New usage is discouraged.)

Ref Expression
Assertion trsbc ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] Tr 𝑥 ↔ Tr 𝐴 ) )

Proof

Step Hyp Ref Expression
1 sbcal ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
2 sbcal ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
3 sbcim2g ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ) )
4 sbcg ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] 𝑧𝑦𝑧𝑦 ) )
5 sbcel2gv ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥𝑦𝐴 ) )
6 sbcel2gv ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] 𝑧𝑥𝑧𝐴 ) )
7 imbi13 ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦𝑧𝑦 ) → ( ( [ 𝐴 / 𝑥 ] 𝑦𝑥𝑦𝐴 ) → ( ( [ 𝐴 / 𝑥 ] 𝑧𝑥𝑧𝐴 ) → ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) ) ) )
8 4 5 6 7 syl3c ( 𝐴𝑉 → ( ( [ 𝐴 / 𝑥 ] 𝑧𝑦 → ( [ 𝐴 / 𝑥 ] 𝑦𝑥[ 𝐴 / 𝑥 ] 𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) )
9 3 8 bitrd ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ) )
10 pm3.31 ( ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) → ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
11 pm3.3 ( ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) → ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) )
12 10 11 impbii ( ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
13 12 sbcbii ( [ 𝐴 / 𝑥 ] ( 𝑧𝑦 → ( 𝑦𝑥𝑧𝑥 ) ) ↔ [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
14 pm3.31 ( ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) → ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )
15 pm3.3 ( ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) → ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) )
16 14 15 impbii ( ( 𝑧𝑦 → ( 𝑦𝐴𝑧𝐴 ) ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )
17 9 13 16 3bitr3g ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) )
18 17 albidv ( 𝐴𝑉 → ( ∀ 𝑦 [ 𝐴 / 𝑥 ] ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) )
19 2 18 syl5bb ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) )
20 19 albidv ( 𝐴𝑉 → ( ∀ 𝑧 [ 𝐴 / 𝑥 ]𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) )
21 1 20 syl5bb ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) ) )
22 dftr2 ( Tr 𝑥 ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
23 22 sbcbii ( [ 𝐴 / 𝑥 ] Tr 𝑥[ 𝐴 / 𝑥 ]𝑧𝑦 ( ( 𝑧𝑦𝑦𝑥 ) → 𝑧𝑥 ) )
24 dftr2 ( Tr 𝐴 ↔ ∀ 𝑧𝑦 ( ( 𝑧𝑦𝑦𝐴 ) → 𝑧𝐴 ) )
25 21 23 24 3bitr4g ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] Tr 𝑥 ↔ Tr 𝐴 ) )