Metamath Proof Explorer


Theorem topjoin

Description: Two equivalent formulations of the join of a collection of topologies. (Contributed by Jeff Hankins, 6-Oct-2009) (Proof shortened by Mario Carneiro, 12-Sep-2015)

Ref Expression
Assertion topjoin ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) = { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } )

Proof

Step Hyp Ref Expression
1 topontop ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) → 𝑘 ∈ Top )
2 1 ad2antrl ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∧ ∀ 𝑗𝑆 𝑗𝑘 ) ) → 𝑘 ∈ Top )
3 toponmax ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) → 𝑋𝑘 )
4 3 ad2antrl ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∧ ∀ 𝑗𝑆 𝑗𝑘 ) ) → 𝑋𝑘 )
5 4 snssd ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∧ ∀ 𝑗𝑆 𝑗𝑘 ) ) → { 𝑋 } ⊆ 𝑘 )
6 simprr ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∧ ∀ 𝑗𝑆 𝑗𝑘 ) ) → ∀ 𝑗𝑆 𝑗𝑘 )
7 unissb ( 𝑆𝑘 ↔ ∀ 𝑗𝑆 𝑗𝑘 )
8 6 7 sylibr ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∧ ∀ 𝑗𝑆 𝑗𝑘 ) ) → 𝑆𝑘 )
9 5 8 unssd ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∧ ∀ 𝑗𝑆 𝑗𝑘 ) ) → ( { 𝑋 } ∪ 𝑆 ) ⊆ 𝑘 )
10 tgfiss ( ( 𝑘 ∈ Top ∧ ( { 𝑋 } ∪ 𝑆 ) ⊆ 𝑘 ) → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ⊆ 𝑘 )
11 2 9 10 syl2anc ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∧ ∀ 𝑗𝑆 𝑗𝑘 ) ) → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ⊆ 𝑘 )
12 11 expr ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ 𝑘 ∈ ( TopOn ‘ 𝑋 ) ) → ( ∀ 𝑗𝑆 𝑗𝑘 → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ⊆ 𝑘 ) )
13 12 ralrimiva ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ∀ 𝑘 ∈ ( TopOn ‘ 𝑋 ) ( ∀ 𝑗𝑆 𝑗𝑘 → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ⊆ 𝑘 ) )
14 ssintrab ( ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ⊆ { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } ↔ ∀ 𝑘 ∈ ( TopOn ‘ 𝑋 ) ( ∀ 𝑗𝑆 𝑗𝑘 → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ⊆ 𝑘 ) )
15 13 14 sylibr ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ⊆ { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } )
16 fibas ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ∈ TopBases
17 tgtopon ( ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ∈ TopBases → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ∈ ( TopOn ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) )
18 16 17 ax-mp ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ∈ ( TopOn ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) )
19 uniun ( { 𝑋 } ∪ 𝑆 ) = ( { 𝑋 } ∪ 𝑆 )
20 unisng ( 𝑋𝑉 { 𝑋 } = 𝑋 )
21 20 adantr ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → { 𝑋 } = 𝑋 )
22 21 uneq1d ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( { 𝑋 } ∪ 𝑆 ) = ( 𝑋 𝑆 ) )
23 19 22 eqtr2id ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( 𝑋 𝑆 ) = ( { 𝑋 } ∪ 𝑆 ) )
24 simpr ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → 𝑆 ⊆ ( TopOn ‘ 𝑋 ) )
25 toponuni ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) → 𝑋 = 𝑘 )
26 eqimss2 ( 𝑋 = 𝑘 𝑘𝑋 )
27 25 26 syl ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) → 𝑘𝑋 )
28 sspwuni ( 𝑘 ⊆ 𝒫 𝑋 𝑘𝑋 )
29 27 28 sylibr ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) → 𝑘 ⊆ 𝒫 𝑋 )
30 velpw ( 𝑘 ∈ 𝒫 𝒫 𝑋𝑘 ⊆ 𝒫 𝑋 )
31 29 30 sylibr ( 𝑘 ∈ ( TopOn ‘ 𝑋 ) → 𝑘 ∈ 𝒫 𝒫 𝑋 )
32 31 ssriv ( TopOn ‘ 𝑋 ) ⊆ 𝒫 𝒫 𝑋
33 24 32 sstrdi ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → 𝑆 ⊆ 𝒫 𝒫 𝑋 )
34 sspwuni ( 𝑆 ⊆ 𝒫 𝒫 𝑋 𝑆 ⊆ 𝒫 𝑋 )
35 33 34 sylib ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → 𝑆 ⊆ 𝒫 𝑋 )
36 sspwuni ( 𝑆 ⊆ 𝒫 𝑋 𝑆𝑋 )
37 35 36 sylib ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → 𝑆𝑋 )
38 ssequn2 ( 𝑆𝑋 ↔ ( 𝑋 𝑆 ) = 𝑋 )
39 37 38 sylib ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( 𝑋 𝑆 ) = 𝑋 )
40 snex { 𝑋 } ∈ V
41 fvex ( TopOn ‘ 𝑋 ) ∈ V
42 41 ssex ( 𝑆 ⊆ ( TopOn ‘ 𝑋 ) → 𝑆 ∈ V )
43 42 adantl ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → 𝑆 ∈ V )
44 43 uniexd ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → 𝑆 ∈ V )
45 unexg ( ( { 𝑋 } ∈ V ∧ 𝑆 ∈ V ) → ( { 𝑋 } ∪ 𝑆 ) ∈ V )
46 40 44 45 sylancr ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( { 𝑋 } ∪ 𝑆 ) ∈ V )
47 fiuni ( ( { 𝑋 } ∪ 𝑆 ) ∈ V → ( { 𝑋 } ∪ 𝑆 ) = ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) )
48 46 47 syl ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( { 𝑋 } ∪ 𝑆 ) = ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) )
49 23 39 48 3eqtr3d ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → 𝑋 = ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) )
50 49 fveq2d ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( TopOn ‘ 𝑋 ) = ( TopOn ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) )
51 18 50 eleqtrrid ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ∈ ( TopOn ‘ 𝑋 ) )
52 elssuni ( 𝑗𝑆𝑗 𝑆 )
53 ssun2 𝑆 ⊆ ( { 𝑋 } ∪ 𝑆 )
54 52 53 sstrdi ( 𝑗𝑆𝑗 ⊆ ( { 𝑋 } ∪ 𝑆 ) )
55 ssfii ( ( { 𝑋 } ∪ 𝑆 ) ∈ V → ( { 𝑋 } ∪ 𝑆 ) ⊆ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) )
56 46 55 syl ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( { 𝑋 } ∪ 𝑆 ) ⊆ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) )
57 54 56 sylan9ssr ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ 𝑗𝑆 ) → 𝑗 ⊆ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) )
58 bastg ( ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ∈ TopBases → ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) )
59 16 58 ax-mp ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) )
60 57 59 sstrdi ( ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) ∧ 𝑗𝑆 ) → 𝑗 ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) )
61 60 ralrimiva ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ∀ 𝑗𝑆 𝑗 ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) )
62 sseq2 ( 𝑘 = ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) → ( 𝑗𝑘𝑗 ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ) )
63 62 ralbidv ( 𝑘 = ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) → ( ∀ 𝑗𝑆 𝑗𝑘 ↔ ∀ 𝑗𝑆 𝑗 ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ) )
64 63 elrab ( ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ∈ { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } ↔ ( ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ∈ ( TopOn ‘ 𝑋 ) ∧ ∀ 𝑗𝑆 𝑗 ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ) )
65 51 61 64 sylanbrc ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ∈ { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } )
66 intss1 ( ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) ∈ { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } → { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) )
67 65 66 syl ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } ⊆ ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) )
68 15 67 eqssd ( ( 𝑋𝑉𝑆 ⊆ ( TopOn ‘ 𝑋 ) ) → ( topGen ‘ ( fi ‘ ( { 𝑋 } ∪ 𝑆 ) ) ) = { 𝑘 ∈ ( TopOn ‘ 𝑋 ) ∣ ∀ 𝑗𝑆 𝑗𝑘 } )