Metamath Proof Explorer


Theorem tratrb

Description: If a class is transitive and any two distinct elements of the class are E-comparable, then every element of that class is transitive. Derived automatically from tratrbVD . (Contributed by Alan Sare, 31-Dec-2011) (Proof modification is discouraged.) (New usage is discouraged.)

Ref Expression
Assertion tratrb ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → Tr 𝐵 )

Proof

Step Hyp Ref Expression
1 nfv 𝑥 Tr 𝐴
2 nfra1 𝑥𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 )
3 nfv 𝑥 𝐵𝐴
4 1 2 3 nf3an 𝑥 ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 )
5 nfv 𝑦 Tr 𝐴
6 nfra2w 𝑦𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 )
7 nfv 𝑦 𝐵𝐴
8 5 6 7 nf3an 𝑦 ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 )
9 simpl ( ( 𝑥𝑦𝑦𝐵 ) → 𝑥𝑦 )
10 9 a1i ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → 𝑥𝑦 ) )
11 simpr ( ( 𝑥𝑦𝑦𝐵 ) → 𝑦𝐵 )
12 11 a1i ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → 𝑦𝐵 ) )
13 pm3.2an3 ( 𝑥𝑦 → ( 𝑦𝐵 → ( 𝐵𝑥 → ( 𝑥𝑦𝑦𝐵𝐵𝑥 ) ) ) )
14 10 12 13 syl6c ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → ( 𝐵𝑥 → ( 𝑥𝑦𝑦𝐵𝐵𝑥 ) ) ) )
15 en3lp ¬ ( 𝑥𝑦𝑦𝐵𝐵𝑥 )
16 con3 ( ( 𝐵𝑥 → ( 𝑥𝑦𝑦𝐵𝐵𝑥 ) ) → ( ¬ ( 𝑥𝑦𝑦𝐵𝐵𝑥 ) → ¬ 𝐵𝑥 ) )
17 14 15 16 syl6mpi ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → ¬ 𝐵𝑥 ) )
18 eleq2 ( 𝑥 = 𝐵 → ( 𝑦𝑥𝑦𝐵 ) )
19 18 biimprcd ( 𝑦𝐵 → ( 𝑥 = 𝐵𝑦𝑥 ) )
20 12 19 syl6 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → ( 𝑥 = 𝐵𝑦𝑥 ) ) )
21 pm3.2 ( 𝑥𝑦 → ( 𝑦𝑥 → ( 𝑥𝑦𝑦𝑥 ) ) )
22 10 20 21 syl10 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → ( 𝑥 = 𝐵 → ( 𝑥𝑦𝑦𝑥 ) ) ) )
23 en2lp ¬ ( 𝑥𝑦𝑦𝑥 )
24 con3 ( ( 𝑥 = 𝐵 → ( 𝑥𝑦𝑦𝑥 ) ) → ( ¬ ( 𝑥𝑦𝑦𝑥 ) → ¬ 𝑥 = 𝐵 ) )
25 22 23 24 syl6mpi ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → ¬ 𝑥 = 𝐵 ) )
26 simp3 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → 𝐵𝐴 )
27 simp1 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → Tr 𝐴 )
28 trel ( Tr 𝐴 → ( ( 𝑦𝐵𝐵𝐴 ) → 𝑦𝐴 ) )
29 28 expd ( Tr 𝐴 → ( 𝑦𝐵 → ( 𝐵𝐴𝑦𝐴 ) ) )
30 27 12 26 29 ee121 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → 𝑦𝐴 ) )
31 trel ( Tr 𝐴 → ( ( 𝑥𝑦𝑦𝐴 ) → 𝑥𝐴 ) )
32 31 expd ( Tr 𝐴 → ( 𝑥𝑦 → ( 𝑦𝐴𝑥𝐴 ) ) )
33 27 10 30 32 ee122 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → 𝑥𝐴 ) )
34 ralcom ( ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ↔ ∀ 𝑦𝐴𝑥𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) )
35 34 biimpi ( ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) → ∀ 𝑦𝐴𝑥𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) )
36 35 3ad2ant2 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ∀ 𝑦𝐴𝑥𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) )
37 rspsbc2 ( 𝐵𝐴 → ( 𝑥𝐴 → ( ∀ 𝑦𝐴𝑥𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) → [ 𝑥 / 𝑥 ] [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ) ) )
38 26 33 36 37 ee121 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → [ 𝑥 / 𝑥 ] [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ) )
39 equid 𝑥 = 𝑥
40 sbceq1a ( 𝑥 = 𝑥 → ( [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ↔ [ 𝑥 / 𝑥 ] [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ) )
41 39 40 ax-mp ( [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ↔ [ 𝑥 / 𝑥 ] [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) )
42 38 41 syl6ibr ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ) )
43 sbcoreleleq ( 𝐵𝐴 → ( [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ↔ ( 𝑥𝐵𝐵𝑥𝑥 = 𝐵 ) ) )
44 43 biimpd ( 𝐵𝐴 → ( [ 𝐵 / 𝑦 ] ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) → ( 𝑥𝐵𝐵𝑥𝑥 = 𝐵 ) ) )
45 26 42 44 sylsyld ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → ( 𝑥𝐵𝐵𝑥𝑥 = 𝐵 ) ) )
46 3ornot23 ( ( ¬ 𝐵𝑥 ∧ ¬ 𝑥 = 𝐵 ) → ( ( 𝑥𝐵𝐵𝑥𝑥 = 𝐵 ) → 𝑥𝐵 ) )
47 46 ex ( ¬ 𝐵𝑥 → ( ¬ 𝑥 = 𝐵 → ( ( 𝑥𝐵𝐵𝑥𝑥 = 𝐵 ) → 𝑥𝐵 ) ) )
48 17 25 45 47 ee222 ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ( ( 𝑥𝑦𝑦𝐵 ) → 𝑥𝐵 ) )
49 8 48 alrimi ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ∀ 𝑦 ( ( 𝑥𝑦𝑦𝐵 ) → 𝑥𝐵 ) )
50 4 49 alrimi ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → ∀ 𝑥𝑦 ( ( 𝑥𝑦𝑦𝐵 ) → 𝑥𝐵 ) )
51 dftr2 ( Tr 𝐵 ↔ ∀ 𝑥𝑦 ( ( 𝑥𝑦𝑦𝐵 ) → 𝑥𝐵 ) )
52 50 51 sylibr ( ( Tr 𝐴 ∧ ∀ 𝑥𝐴𝑦𝐴 ( 𝑥𝑦𝑦𝑥𝑥 = 𝑦 ) ∧ 𝐵𝐴 ) → Tr 𝐵 )