Metamath Proof Explorer


Theorem fnejoin2

Description: Join of equivalence classes under the fineness relation-part two. (Contributed by Jeff Hankins, 8-Oct-2009) (Proof shortened by Mario Carneiro, 12-Sep-2015)

Ref Expression
Assertion fnejoin2 ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 ↔ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) )

Proof

Step Hyp Ref Expression
1 unisng ( 𝑋𝑉 { 𝑋 } = 𝑋 )
2 1 eqcomd ( 𝑋𝑉𝑋 = { 𝑋 } )
3 2 adantr ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → 𝑋 = { 𝑋 } )
4 iftrue ( 𝑆 = ∅ → if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) = { 𝑋 } )
5 4 unieqd ( 𝑆 = ∅ → if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) = { 𝑋 } )
6 5 eqeq2d ( 𝑆 = ∅ → ( 𝑋 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ↔ 𝑋 = { 𝑋 } ) )
7 3 6 syl5ibrcom ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( 𝑆 = ∅ → 𝑋 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ) )
8 n0 ( 𝑆 ≠ ∅ ↔ ∃ 𝑥 𝑥𝑆 )
9 unieq ( 𝑦 = 𝑥 𝑦 = 𝑥 )
10 9 eqeq2d ( 𝑦 = 𝑥 → ( 𝑋 = 𝑦𝑋 = 𝑥 ) )
11 10 rspccva ( ( ∀ 𝑦𝑆 𝑋 = 𝑦𝑥𝑆 ) → 𝑋 = 𝑥 )
12 11 3adant1 ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦𝑥𝑆 ) → 𝑋 = 𝑥 )
13 fnejoin1 ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦𝑥𝑆 ) → 𝑥 Fne if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) )
14 eqid 𝑥 = 𝑥
15 eqid if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 )
16 14 15 fnebas ( 𝑥 Fne if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) → 𝑥 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) )
17 13 16 syl ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦𝑥𝑆 ) → 𝑥 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) )
18 12 17 eqtrd ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦𝑥𝑆 ) → 𝑋 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) )
19 18 3expia ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( 𝑥𝑆𝑋 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ) )
20 19 exlimdv ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( ∃ 𝑥 𝑥𝑆𝑋 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ) )
21 8 20 syl5bi ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( 𝑆 ≠ ∅ → 𝑋 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ) )
22 7 21 pm2.61dne ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → 𝑋 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) )
23 eqid 𝑇 = 𝑇
24 15 23 fnebas ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) = 𝑇 )
25 22 24 sylan9eq ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 ) → 𝑋 = 𝑇 )
26 25 ex ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇𝑋 = 𝑇 ) )
27 fnetr ( ( 𝑥 Fne if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ∧ if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 ) → 𝑥 Fne 𝑇 )
28 27 ex ( 𝑥 Fne if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) → ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇𝑥 Fne 𝑇 ) )
29 13 28 syl ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦𝑥𝑆 ) → ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇𝑥 Fne 𝑇 ) )
30 29 3expa ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ 𝑥𝑆 ) → ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇𝑥 Fne 𝑇 ) )
31 30 ralrimdva ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 → ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) )
32 26 31 jcad ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 → ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) )
33 22 adantr ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → 𝑋 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) )
34 simprl ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → 𝑋 = 𝑇 )
35 33 34 eqtr3d ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) = 𝑇 )
36 sseq1 ( { 𝑋 } = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) → ( { 𝑋 } ⊆ ( topGen ‘ 𝑇 ) ↔ if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ⊆ ( topGen ‘ 𝑇 ) ) )
37 sseq1 ( 𝑆 = if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) → ( 𝑆 ⊆ ( topGen ‘ 𝑇 ) ↔ if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ⊆ ( topGen ‘ 𝑇 ) ) )
38 elex ( 𝑋𝑉𝑋 ∈ V )
39 38 ad2antrr ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → 𝑋 ∈ V )
40 34 39 eqeltrrd ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → 𝑇 ∈ V )
41 uniexb ( 𝑇 ∈ V ↔ 𝑇 ∈ V )
42 40 41 sylibr ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → 𝑇 ∈ V )
43 ssid 𝑇𝑇
44 eltg3i ( ( 𝑇 ∈ V ∧ 𝑇𝑇 ) → 𝑇 ∈ ( topGen ‘ 𝑇 ) )
45 42 43 44 sylancl ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → 𝑇 ∈ ( topGen ‘ 𝑇 ) )
46 34 45 eqeltrd ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → 𝑋 ∈ ( topGen ‘ 𝑇 ) )
47 46 snssd ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → { 𝑋 } ⊆ ( topGen ‘ 𝑇 ) )
48 47 adantr ( ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) ∧ 𝑆 = ∅ ) → { 𝑋 } ⊆ ( topGen ‘ 𝑇 ) )
49 simplrr ( ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) ∧ ¬ 𝑆 = ∅ ) → ∀ 𝑥𝑆 𝑥 Fne 𝑇 )
50 fnetg ( 𝑥 Fne 𝑇𝑥 ⊆ ( topGen ‘ 𝑇 ) )
51 50 ralimi ( ∀ 𝑥𝑆 𝑥 Fne 𝑇 → ∀ 𝑥𝑆 𝑥 ⊆ ( topGen ‘ 𝑇 ) )
52 49 51 syl ( ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) ∧ ¬ 𝑆 = ∅ ) → ∀ 𝑥𝑆 𝑥 ⊆ ( topGen ‘ 𝑇 ) )
53 unissb ( 𝑆 ⊆ ( topGen ‘ 𝑇 ) ↔ ∀ 𝑥𝑆 𝑥 ⊆ ( topGen ‘ 𝑇 ) )
54 52 53 sylibr ( ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) ∧ ¬ 𝑆 = ∅ ) → 𝑆 ⊆ ( topGen ‘ 𝑇 ) )
55 36 37 48 54 ifbothda ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ⊆ ( topGen ‘ 𝑇 ) )
56 15 23 isfne4 ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 ↔ ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) = 𝑇 ∧ if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) ⊆ ( topGen ‘ 𝑇 ) ) )
57 35 55 56 sylanbrc ( ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) ∧ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) → if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 )
58 57 ex ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) → if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 ) )
59 32 58 impbid ( ( 𝑋𝑉 ∧ ∀ 𝑦𝑆 𝑋 = 𝑦 ) → ( if ( 𝑆 = ∅ , { 𝑋 } , 𝑆 ) Fne 𝑇 ↔ ( 𝑋 = 𝑇 ∧ ∀ 𝑥𝑆 𝑥 Fne 𝑇 ) ) )