Metamath Proof Explorer


Theorem lecldbas

Description: The set of closed intervals forms a closed subbasis for the topology on the extended reals. Since our definition of a basis is in terms of open sets, we express this by showing that the complements of closed intervals form an open subbasis for the topology. (Contributed by Mario Carneiro, 3-Sep-2015)

Ref Expression
Hypothesis lecldbas.1 𝐹 = ( 𝑥 ∈ ran [,] ↦ ( ℝ*𝑥 ) )
Assertion lecldbas ( ordTop ‘ ≤ ) = ( topGen ‘ ( fi ‘ ran 𝐹 ) )

Proof

Step Hyp Ref Expression
1 lecldbas.1 𝐹 = ( 𝑥 ∈ ran [,] ↦ ( ℝ*𝑥 ) )
2 eqid ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) = ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) )
3 eqid ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) = ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) )
4 2 3 leordtval2 ( ordTop ‘ ≤ ) = ( topGen ‘ ( fi ‘ ( ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ∪ ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ) ) )
5 fvex ( fi ‘ ran 𝐹 ) ∈ V
6 fvex ( ordTop ‘ ≤ ) ∈ V
7 iccf [,] : ( ℝ* × ℝ* ) ⟶ 𝒫 ℝ*
8 ffn ( [,] : ( ℝ* × ℝ* ) ⟶ 𝒫 ℝ* → [,] Fn ( ℝ* × ℝ* ) )
9 7 8 ax-mp [,] Fn ( ℝ* × ℝ* )
10 ovelrn ( [,] Fn ( ℝ* × ℝ* ) → ( 𝑥 ∈ ran [,] ↔ ∃ 𝑎 ∈ ℝ*𝑏 ∈ ℝ* 𝑥 = ( 𝑎 [,] 𝑏 ) ) )
11 9 10 ax-mp ( 𝑥 ∈ ran [,] ↔ ∃ 𝑎 ∈ ℝ*𝑏 ∈ ℝ* 𝑥 = ( 𝑎 [,] 𝑏 ) )
12 difeq2 ( 𝑥 = ( 𝑎 [,] 𝑏 ) → ( ℝ*𝑥 ) = ( ℝ* ∖ ( 𝑎 [,] 𝑏 ) ) )
13 iccordt ( 𝑎 [,] 𝑏 ) ∈ ( Clsd ‘ ( ordTop ‘ ≤ ) )
14 letopuni * = ( ordTop ‘ ≤ )
15 14 cldopn ( ( 𝑎 [,] 𝑏 ) ∈ ( Clsd ‘ ( ordTop ‘ ≤ ) ) → ( ℝ* ∖ ( 𝑎 [,] 𝑏 ) ) ∈ ( ordTop ‘ ≤ ) )
16 13 15 ax-mp ( ℝ* ∖ ( 𝑎 [,] 𝑏 ) ) ∈ ( ordTop ‘ ≤ )
17 12 16 eqeltrdi ( 𝑥 = ( 𝑎 [,] 𝑏 ) → ( ℝ*𝑥 ) ∈ ( ordTop ‘ ≤ ) )
18 17 rexlimivw ( ∃ 𝑏 ∈ ℝ* 𝑥 = ( 𝑎 [,] 𝑏 ) → ( ℝ*𝑥 ) ∈ ( ordTop ‘ ≤ ) )
19 18 rexlimivw ( ∃ 𝑎 ∈ ℝ*𝑏 ∈ ℝ* 𝑥 = ( 𝑎 [,] 𝑏 ) → ( ℝ*𝑥 ) ∈ ( ordTop ‘ ≤ ) )
20 11 19 sylbi ( 𝑥 ∈ ran [,] → ( ℝ*𝑥 ) ∈ ( ordTop ‘ ≤ ) )
21 1 20 fmpti 𝐹 : ran [,] ⟶ ( ordTop ‘ ≤ )
22 frn ( 𝐹 : ran [,] ⟶ ( ordTop ‘ ≤ ) → ran 𝐹 ⊆ ( ordTop ‘ ≤ ) )
23 21 22 ax-mp ran 𝐹 ⊆ ( ordTop ‘ ≤ )
24 6 23 ssexi ran 𝐹 ∈ V
25 eqid ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) = ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) )
26 mnfxr -∞ ∈ ℝ*
27 fnovrn ( ( [,] Fn ( ℝ* × ℝ* ) ∧ -∞ ∈ ℝ*𝑦 ∈ ℝ* ) → ( -∞ [,] 𝑦 ) ∈ ran [,] )
28 9 26 27 mp3an12 ( 𝑦 ∈ ℝ* → ( -∞ [,] 𝑦 ) ∈ ran [,] )
29 26 a1i ( 𝑦 ∈ ℝ* → -∞ ∈ ℝ* )
30 id ( 𝑦 ∈ ℝ*𝑦 ∈ ℝ* )
31 pnfxr +∞ ∈ ℝ*
32 31 a1i ( 𝑦 ∈ ℝ* → +∞ ∈ ℝ* )
33 mnfle ( 𝑦 ∈ ℝ* → -∞ ≤ 𝑦 )
34 pnfge ( 𝑦 ∈ ℝ*𝑦 ≤ +∞ )
35 df-icc [,] = ( 𝑎 ∈ ℝ* , 𝑏 ∈ ℝ* ↦ { 𝑐 ∈ ℝ* ∣ ( 𝑎𝑐𝑐𝑏 ) } )
36 df-ioc (,] = ( 𝑎 ∈ ℝ* , 𝑏 ∈ ℝ* ↦ { 𝑐 ∈ ℝ* ∣ ( 𝑎 < 𝑐𝑐𝑏 ) } )
37 xrltnle ( ( 𝑦 ∈ ℝ*𝑧 ∈ ℝ* ) → ( 𝑦 < 𝑧 ↔ ¬ 𝑧𝑦 ) )
38 xrletr ( ( 𝑧 ∈ ℝ*𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) → ( ( 𝑧𝑦𝑦 ≤ +∞ ) → 𝑧 ≤ +∞ ) )
39 xrlelttr ( ( -∞ ∈ ℝ*𝑦 ∈ ℝ*𝑧 ∈ ℝ* ) → ( ( -∞ ≤ 𝑦𝑦 < 𝑧 ) → -∞ < 𝑧 ) )
40 xrltle ( ( -∞ ∈ ℝ*𝑧 ∈ ℝ* ) → ( -∞ < 𝑧 → -∞ ≤ 𝑧 ) )
41 40 3adant2 ( ( -∞ ∈ ℝ*𝑦 ∈ ℝ*𝑧 ∈ ℝ* ) → ( -∞ < 𝑧 → -∞ ≤ 𝑧 ) )
42 39 41 syld ( ( -∞ ∈ ℝ*𝑦 ∈ ℝ*𝑧 ∈ ℝ* ) → ( ( -∞ ≤ 𝑦𝑦 < 𝑧 ) → -∞ ≤ 𝑧 ) )
43 35 36 37 35 38 42 ixxun ( ( ( -∞ ∈ ℝ*𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) ∧ ( -∞ ≤ 𝑦𝑦 ≤ +∞ ) ) → ( ( -∞ [,] 𝑦 ) ∪ ( 𝑦 (,] +∞ ) ) = ( -∞ [,] +∞ ) )
44 29 30 32 33 34 43 syl32anc ( 𝑦 ∈ ℝ* → ( ( -∞ [,] 𝑦 ) ∪ ( 𝑦 (,] +∞ ) ) = ( -∞ [,] +∞ ) )
45 iccmax ( -∞ [,] +∞ ) = ℝ*
46 44 45 eqtrdi ( 𝑦 ∈ ℝ* → ( ( -∞ [,] 𝑦 ) ∪ ( 𝑦 (,] +∞ ) ) = ℝ* )
47 iccssxr ( -∞ [,] 𝑦 ) ⊆ ℝ*
48 35 36 37 ixxdisj ( ( -∞ ∈ ℝ*𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) → ( ( -∞ [,] 𝑦 ) ∩ ( 𝑦 (,] +∞ ) ) = ∅ )
49 26 31 48 mp3an13 ( 𝑦 ∈ ℝ* → ( ( -∞ [,] 𝑦 ) ∩ ( 𝑦 (,] +∞ ) ) = ∅ )
50 uneqdifeq ( ( ( -∞ [,] 𝑦 ) ⊆ ℝ* ∧ ( ( -∞ [,] 𝑦 ) ∩ ( 𝑦 (,] +∞ ) ) = ∅ ) → ( ( ( -∞ [,] 𝑦 ) ∪ ( 𝑦 (,] +∞ ) ) = ℝ* ↔ ( ℝ* ∖ ( -∞ [,] 𝑦 ) ) = ( 𝑦 (,] +∞ ) ) )
51 47 49 50 sylancr ( 𝑦 ∈ ℝ* → ( ( ( -∞ [,] 𝑦 ) ∪ ( 𝑦 (,] +∞ ) ) = ℝ* ↔ ( ℝ* ∖ ( -∞ [,] 𝑦 ) ) = ( 𝑦 (,] +∞ ) ) )
52 46 51 mpbid ( 𝑦 ∈ ℝ* → ( ℝ* ∖ ( -∞ [,] 𝑦 ) ) = ( 𝑦 (,] +∞ ) )
53 52 eqcomd ( 𝑦 ∈ ℝ* → ( 𝑦 (,] +∞ ) = ( ℝ* ∖ ( -∞ [,] 𝑦 ) ) )
54 difeq2 ( 𝑥 = ( -∞ [,] 𝑦 ) → ( ℝ*𝑥 ) = ( ℝ* ∖ ( -∞ [,] 𝑦 ) ) )
55 54 rspceeqv ( ( ( -∞ [,] 𝑦 ) ∈ ran [,] ∧ ( 𝑦 (,] +∞ ) = ( ℝ* ∖ ( -∞ [,] 𝑦 ) ) ) → ∃ 𝑥 ∈ ran [,] ( 𝑦 (,] +∞ ) = ( ℝ*𝑥 ) )
56 28 53 55 syl2anc ( 𝑦 ∈ ℝ* → ∃ 𝑥 ∈ ran [,] ( 𝑦 (,] +∞ ) = ( ℝ*𝑥 ) )
57 xrex * ∈ V
58 57 difexi ( ℝ*𝑥 ) ∈ V
59 1 58 elrnmpti ( ( 𝑦 (,] +∞ ) ∈ ran 𝐹 ↔ ∃ 𝑥 ∈ ran [,] ( 𝑦 (,] +∞ ) = ( ℝ*𝑥 ) )
60 56 59 sylibr ( 𝑦 ∈ ℝ* → ( 𝑦 (,] +∞ ) ∈ ran 𝐹 )
61 25 60 fmpti ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) : ℝ* ⟶ ran 𝐹
62 frn ( ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) : ℝ* ⟶ ran 𝐹 → ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ⊆ ran 𝐹 )
63 61 62 ax-mp ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ⊆ ran 𝐹
64 eqid ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) = ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) )
65 fnovrn ( ( [,] Fn ( ℝ* × ℝ* ) ∧ 𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) → ( 𝑦 [,] +∞ ) ∈ ran [,] )
66 9 31 65 mp3an13 ( 𝑦 ∈ ℝ* → ( 𝑦 [,] +∞ ) ∈ ran [,] )
67 df-ico [,) = ( 𝑎 ∈ ℝ* , 𝑏 ∈ ℝ* ↦ { 𝑐 ∈ ℝ* ∣ ( 𝑎𝑐𝑐 < 𝑏 ) } )
68 xrlenlt ( ( 𝑦 ∈ ℝ*𝑧 ∈ ℝ* ) → ( 𝑦𝑧 ↔ ¬ 𝑧 < 𝑦 ) )
69 xrltletr ( ( 𝑧 ∈ ℝ*𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) → ( ( 𝑧 < 𝑦𝑦 ≤ +∞ ) → 𝑧 < +∞ ) )
70 xrltle ( ( 𝑧 ∈ ℝ* ∧ +∞ ∈ ℝ* ) → ( 𝑧 < +∞ → 𝑧 ≤ +∞ ) )
71 70 3adant2 ( ( 𝑧 ∈ ℝ*𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) → ( 𝑧 < +∞ → 𝑧 ≤ +∞ ) )
72 69 71 syld ( ( 𝑧 ∈ ℝ*𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) → ( ( 𝑧 < 𝑦𝑦 ≤ +∞ ) → 𝑧 ≤ +∞ ) )
73 xrletr ( ( -∞ ∈ ℝ*𝑦 ∈ ℝ*𝑧 ∈ ℝ* ) → ( ( -∞ ≤ 𝑦𝑦𝑧 ) → -∞ ≤ 𝑧 ) )
74 67 35 68 35 72 73 ixxun ( ( ( -∞ ∈ ℝ*𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) ∧ ( -∞ ≤ 𝑦𝑦 ≤ +∞ ) ) → ( ( -∞ [,) 𝑦 ) ∪ ( 𝑦 [,] +∞ ) ) = ( -∞ [,] +∞ ) )
75 29 30 32 33 34 74 syl32anc ( 𝑦 ∈ ℝ* → ( ( -∞ [,) 𝑦 ) ∪ ( 𝑦 [,] +∞ ) ) = ( -∞ [,] +∞ ) )
76 uncom ( ( -∞ [,) 𝑦 ) ∪ ( 𝑦 [,] +∞ ) ) = ( ( 𝑦 [,] +∞ ) ∪ ( -∞ [,) 𝑦 ) )
77 75 76 45 3eqtr3g ( 𝑦 ∈ ℝ* → ( ( 𝑦 [,] +∞ ) ∪ ( -∞ [,) 𝑦 ) ) = ℝ* )
78 iccssxr ( 𝑦 [,] +∞ ) ⊆ ℝ*
79 incom ( ( 𝑦 [,] +∞ ) ∩ ( -∞ [,) 𝑦 ) ) = ( ( -∞ [,) 𝑦 ) ∩ ( 𝑦 [,] +∞ ) )
80 67 35 68 ixxdisj ( ( -∞ ∈ ℝ*𝑦 ∈ ℝ* ∧ +∞ ∈ ℝ* ) → ( ( -∞ [,) 𝑦 ) ∩ ( 𝑦 [,] +∞ ) ) = ∅ )
81 26 31 80 mp3an13 ( 𝑦 ∈ ℝ* → ( ( -∞ [,) 𝑦 ) ∩ ( 𝑦 [,] +∞ ) ) = ∅ )
82 79 81 eqtrid ( 𝑦 ∈ ℝ* → ( ( 𝑦 [,] +∞ ) ∩ ( -∞ [,) 𝑦 ) ) = ∅ )
83 uneqdifeq ( ( ( 𝑦 [,] +∞ ) ⊆ ℝ* ∧ ( ( 𝑦 [,] +∞ ) ∩ ( -∞ [,) 𝑦 ) ) = ∅ ) → ( ( ( 𝑦 [,] +∞ ) ∪ ( -∞ [,) 𝑦 ) ) = ℝ* ↔ ( ℝ* ∖ ( 𝑦 [,] +∞ ) ) = ( -∞ [,) 𝑦 ) ) )
84 78 82 83 sylancr ( 𝑦 ∈ ℝ* → ( ( ( 𝑦 [,] +∞ ) ∪ ( -∞ [,) 𝑦 ) ) = ℝ* ↔ ( ℝ* ∖ ( 𝑦 [,] +∞ ) ) = ( -∞ [,) 𝑦 ) ) )
85 77 84 mpbid ( 𝑦 ∈ ℝ* → ( ℝ* ∖ ( 𝑦 [,] +∞ ) ) = ( -∞ [,) 𝑦 ) )
86 85 eqcomd ( 𝑦 ∈ ℝ* → ( -∞ [,) 𝑦 ) = ( ℝ* ∖ ( 𝑦 [,] +∞ ) ) )
87 difeq2 ( 𝑥 = ( 𝑦 [,] +∞ ) → ( ℝ*𝑥 ) = ( ℝ* ∖ ( 𝑦 [,] +∞ ) ) )
88 87 rspceeqv ( ( ( 𝑦 [,] +∞ ) ∈ ran [,] ∧ ( -∞ [,) 𝑦 ) = ( ℝ* ∖ ( 𝑦 [,] +∞ ) ) ) → ∃ 𝑥 ∈ ran [,] ( -∞ [,) 𝑦 ) = ( ℝ*𝑥 ) )
89 66 86 88 syl2anc ( 𝑦 ∈ ℝ* → ∃ 𝑥 ∈ ran [,] ( -∞ [,) 𝑦 ) = ( ℝ*𝑥 ) )
90 1 58 elrnmpti ( ( -∞ [,) 𝑦 ) ∈ ran 𝐹 ↔ ∃ 𝑥 ∈ ran [,] ( -∞ [,) 𝑦 ) = ( ℝ*𝑥 ) )
91 89 90 sylibr ( 𝑦 ∈ ℝ* → ( -∞ [,) 𝑦 ) ∈ ran 𝐹 )
92 64 91 fmpti ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) : ℝ* ⟶ ran 𝐹
93 frn ( ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) : ℝ* ⟶ ran 𝐹 → ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ⊆ ran 𝐹 )
94 92 93 ax-mp ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ⊆ ran 𝐹
95 63 94 unssi ( ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ∪ ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ) ⊆ ran 𝐹
96 fiss ( ( ran 𝐹 ∈ V ∧ ( ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ∪ ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ) ⊆ ran 𝐹 ) → ( fi ‘ ( ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ∪ ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ) ) ⊆ ( fi ‘ ran 𝐹 ) )
97 24 95 96 mp2an ( fi ‘ ( ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ∪ ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ) ) ⊆ ( fi ‘ ran 𝐹 )
98 tgss ( ( ( fi ‘ ran 𝐹 ) ∈ V ∧ ( fi ‘ ( ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ∪ ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ) ) ⊆ ( fi ‘ ran 𝐹 ) ) → ( topGen ‘ ( fi ‘ ( ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ∪ ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ) ) ) ⊆ ( topGen ‘ ( fi ‘ ran 𝐹 ) ) )
99 5 97 98 mp2an ( topGen ‘ ( fi ‘ ( ran ( 𝑦 ∈ ℝ* ↦ ( 𝑦 (,] +∞ ) ) ∪ ran ( 𝑦 ∈ ℝ* ↦ ( -∞ [,) 𝑦 ) ) ) ) ) ⊆ ( topGen ‘ ( fi ‘ ran 𝐹 ) )
100 4 99 eqsstri ( ordTop ‘ ≤ ) ⊆ ( topGen ‘ ( fi ‘ ran 𝐹 ) )
101 letop ( ordTop ‘ ≤ ) ∈ Top
102 tgfiss ( ( ( ordTop ‘ ≤ ) ∈ Top ∧ ran 𝐹 ⊆ ( ordTop ‘ ≤ ) ) → ( topGen ‘ ( fi ‘ ran 𝐹 ) ) ⊆ ( ordTop ‘ ≤ ) )
103 101 23 102 mp2an ( topGen ‘ ( fi ‘ ran 𝐹 ) ) ⊆ ( ordTop ‘ ≤ )
104 100 103 eqssi ( ordTop ‘ ≤ ) = ( topGen ‘ ( fi ‘ ran 𝐹 ) )