3.3.Β Subspace topology
Definition 3.8 (Subspace topology)
Let (X, \mathcal{T}) be a topological space and A \subseteq X a subset. Then the collection
\mathcal{T}|_A = \{U \cap A | U \in \mathcal{T}\}
is a topology on A, called the topology relative to X on A, or the subspace topology.
We will say that (A, \mathcal{T}|_A) is a topological subspace of (X, \mathcal{T}).
In Lean, in order to use this definition, we have to prove that this collection is, indeed, a topology.
Proof. Let (X, \mathcal{T}) be a topological space and A \subseteq X a subset, and define the collection
\mathcal{T}|_A = \{U \cap A | U \in \mathcal{T}\}
def TopoSubspace {X : Type} (T : TopologicalSpace X) (Y : Set X) :
TopologicalSpace Y where
IsOpen (V : Set Y) := β U : Set X, T.IsOpen U β§ V = U β© Y
(1) The universe is open. Indeed, since A = X \cap A and X is open in X.
isOpen_univ := X:TypeT:TopologicalSpace XY:Set Xβ’ β U, TopologicalSpace.IsOpen U β§ Subtype.val '' Set.univ = U β© Y
X:TypeT:TopologicalSpace XY:Set Xβ’ TopologicalSpace.IsOpen Set.univ β§ Subtype.val '' Set.univ = Set.univ β© Y
X:TypeT:TopologicalSpace XY:Set Xβ’ TopologicalSpace.IsOpen Set.univX:TypeT:TopologicalSpace XY:Set Xβ’ Subtype.val '' Set.univ = Set.univ β© Y
X:TypeT:TopologicalSpace XY:Set Xβ’ TopologicalSpace.IsOpen Set.univ All goals completed! π
X:TypeT:TopologicalSpace XY:Set Xβ’ Subtype.val '' Set.univ = Set.univ β© Y All goals completed! π
(2) Let V_1 and V_2 be open in A. Then V_1 = U_1 \cap A and V_2 = U_2 \cap A with U_1, U_2 open in X. Hence
V_1 \cap V_2 = (U_1 \cap A) \cap (U_2 \cap A) = (U_1 \cap U_2) \cap A,
and U_1 \cap U_2 is open in X by the second property.
isOpen_inter := X:TypeT:TopologicalSpace XY:Set Xβ’ β (s t : Set βY),
(β U, TopologicalSpace.IsOpen U β§ Subtype.val '' s = U β© Y) β
(β U, TopologicalSpace.IsOpen U β§ Subtype.val '' t = U β© Y) β
β U, TopologicalSpace.IsOpen U β§ Subtype.val '' (s β© t) = U β© Y
intro V1 X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYβ’ (β U, TopologicalSpace.IsOpen U β§ Subtype.val '' V1 = U β© Y) β
(β U, TopologicalSpace.IsOpen U β§ Subtype.val '' V2 = U β© Y) β
β U, TopologicalSpace.IsOpen U β§ Subtype.val '' (V1 β© V2) = U β© Y X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYh1:β U, TopologicalSpace.IsOpen U β§ Subtype.val '' V1 = U β© Yβ’ (β U, TopologicalSpace.IsOpen U β§ Subtype.val '' V2 = U β© Y) β
β U, TopologicalSpace.IsOpen U β§ Subtype.val '' (V1 β© V2) = U β© Y X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYh1:β U, TopologicalSpace.IsOpen U β§ Subtype.val '' V1 = U β© Yh2:β U, TopologicalSpace.IsOpen U β§ Subtype.val '' V2 = U β© Yβ’ β U, TopologicalSpace.IsOpen U β§ Subtype.val '' (V1 β© V2) = U β© Y
X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYh2:β U, TopologicalSpace.IsOpen U β§ Subtype.val '' V2 = U β© YU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© Yβ’ β U, TopologicalSpace.IsOpen U β§ Subtype.val '' (V1 β© V2) = U β© Y
X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© YU2:Set Xh2open:TopologicalSpace.IsOpen U2h2inter:Subtype.val '' V2 = U2 β© Yβ’ β U, TopologicalSpace.IsOpen U β§ Subtype.val '' (V1 β© V2) = U β© Y
X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© YU2:Set Xh2open:TopologicalSpace.IsOpen U2h2inter:Subtype.val '' V2 = U2 β© Yβ’ TopologicalSpace.IsOpen (U1 β© U2) β§ Subtype.val '' (V1 β© V2) = U1 β© U2 β© Y
X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© YU2:Set Xh2open:TopologicalSpace.IsOpen U2h2inter:Subtype.val '' V2 = U2 β© Yβ’ TopologicalSpace.IsOpen (U1 β© U2)X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© YU2:Set Xh2open:TopologicalSpace.IsOpen U2h2inter:Subtype.val '' V2 = U2 β© Yβ’ Subtype.val '' (V1 β© V2) = U1 β© U2 β© Y
X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© YU2:Set Xh2open:TopologicalSpace.IsOpen U2h2inter:Subtype.val '' V2 = U2 β© Yβ’ TopologicalSpace.IsOpen (U1 β© U2) All goals completed! π
X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© YU2:Set Xh2open:TopologicalSpace.IsOpen U2h2inter:Subtype.val '' V2 = U2 β© Yβ’ Subtype.val '' (V1 β© V2) = U1 β© U2 β© Y X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© YU2:Set Xh2open:TopologicalSpace.IsOpen U2h2inter:Subtype.val '' V2 = U2 β© Yβ’ Subtype.val '' V1 β© Subtype.val '' V2 = U1 β© U2 β© Y
X:TypeT:TopologicalSpace XY:Set XV1:Set βYV2:Set βYU1:Set Xh1open:TopologicalSpace.IsOpen U1h1inter:Subtype.val '' V1 = U1 β© YU2:Set Xh2open:TopologicalSpace.IsOpen U2h2inter:Subtype.val '' V2 = U2 β© Yβ’ U1 β© Y β© (U2 β© Y) = U1 β© U2 β© Y
All goals completed! π
(3) Let S = \{V_i\}_i be a collection of open sets in A. Then, for each V_i there exists a U_i open in X such that V_i = U_i \cap A. Then
\bigcup S = \bigcup_{i}V_i = \bigcup_{i}(U_i \cap A) = A \cap \bigcup_{i}U_i,
and \bigcup_{i}U_i is open in X by the third property. The Lean proof is not included here due to its greater complexity. β
Example 3.12
Consider \mathbb{R} with the usual topology and the interval [0, 1] \subset \mathbb{R}. In the topology of [0, 1] induced by the usual topology, the intervals of the form [0, b) are open for every 0 < b \leq 1 (even though they are not open in \mathbb{R}). The intervals of the form (a, 1] are also open for each 0 \leq a < 1.
Proof. For each b > 0, it suffices to use, for example, the open interval (-1, b). We have already seen that open intervals are open in \mathbb{R}, and we have (-1, b) \cap [0, 1] = [0, b). Hence [0, b) is open in [0, 1].
lemma ico_open_in_Icc01 {Y : Set β}
{hY : Y = Set.Icc 0 1}
{R : TopologicalSpace Y}
{hR : R = TopoSubspace UsualTopology Y}
(b : β) (hb : 0 < b β§ b < 1) :
R.IsOpen ({y | (y : β) β Set.Ico 0 b} : Set Y) := Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1β’ TopologicalSpace.IsOpen {y | βy β Set.Ico 0 b}
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1β’ TopologicalSpace.IsOpen {y | βy β Set.Ico 0 b} -- usar la topo. del subesp.
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1β’ TopologicalSpace.IsOpen {y | βy β Set.Ico 0 b} -- usar la def. de T_u
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1β’ TopologicalSpace.IsOpen (Set.Ioo (-1) b) β§ Subtype.val '' {y | βy β Set.Ico 0 b} = Set.Ioo (-1) b β© Y
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1β’ TopologicalSpace.IsOpen (Set.Ioo (-1) b)Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1β’ Subtype.val '' {y | βy β Set.Ico 0 b} = Set.Ioo (-1) b β© Y
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1β’ TopologicalSpace.IsOpen (Set.Ioo (-1) b) All goals completed! π
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1β’ Subtype.val '' {y | βy β Set.Ico 0 b} = Set.Ioo (-1) b β© Y Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:ββ’ x β Subtype.val '' {y | βy β Set.Ico 0 b} β x β Set.Ioo (-1) b β© Y; Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:ββ’ x β Subtype.val '' {y | βy β Set.Ico 0 b} β x β Set.Ioo (-1) b β© YY:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:ββ’ x β Set.Ioo (-1) b β© Y β x β Subtype.val '' {y | βy β Set.Ico 0 b}
all_goals
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:x β Set.Ioo (-1) b β© Yβ’ x β Subtype.val '' {y | βy β Set.Ico 0 b}
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:(-1 < x β§ x < b) β§ x β Yβ’ (0 β€ x β§ x < b) β§ x β Y -- convertirlo todo a inecuaciones
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:(-1 < x β§ x < b) β§ x β Yβ’ 0 β€ x β§ x < bY:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:(-1 < x β§ x < b) β§ x β Yβ’ x β Y
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:(-1 < x β§ x < b) β§ x β Yβ’ 0 β€ x β§ x < b Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:(-1 < x β§ x < b) β§ 0 β€ x β§ x β€ 1β’ 0 β€ x β§ x < b
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:(-1 < x β§ x < b) β§ 0 β€ x β§ x β€ 1β’ 0 β€ xY:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:(-1 < x β§ x < b) β§ 0 β€ x β§ x β€ 1β’ x < b
all_goals All goals completed! π
Y:Set βhY:Y = Set.Icc 0 1R:TopologicalSpace βYhR:R = TopoSubspace UsualTopology Yb:βhb:0 < b β§ b < 1x:βhx:(-1 < x β§ x < b) β§ x β Yβ’ x β Y All goals completed! πβ