mathlib3 documentation

data.analysis.topology

Computational realization of topological spaces (experimental) #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

This file provides infrastructure to compute with topological spaces.

Main declarations #

structure ctop (α : Type u_1) (σ : Type u_2) :
Type (max u_1 u_2)

A ctop α σ is a realization of a topology (basis) on α, represented by a type σ together with operations for the top element and the intersection operation.

Instances for ctop
@[protected, instance]
def ctop.inhabited {α : Type u_1} :
inhabited (ctop α (set α))
Equations
@[protected, instance]
def ctop.has_coe_to_fun {α : Type u_1} {σ : Type u_3} :
has_coe_to_fun (ctop α σ) (λ (_x : ctop α σ), σ → set α)
Equations
@[simp]
theorem ctop.coe_mk {α : Type u_1} {σ : Type u_3} (f : σ → set α) (T : α → σ) (h₁ : ∀ (x : α), x ∈ f (T x)) (I : Π (a b : σ) (x : α), x ∈ f a ∩ f b → σ) (h₂ : ∀ (a b : σ) (x : α) (h : x ∈ f a ∩ f b), x ∈ f (I a b x h)) (h₃ : ∀ (a b : σ) (x : α) (h : x ∈ f a ∩ f b), f (I a b x h) ⊆ f a ∩ f b) (a : σ) :
⇑{f := f, top := T, top_mem := h₁, inter := I, inter_mem := h₂, inter_sub := h₃} a = f a
def ctop.of_equiv {α : Type u_1} {σ : Type u_3} {τ : Type u_4} (E : σ ≃ τ) :
ctop α σ → ctop α τ

Map a ctop to an equivalent representation type.

Equations
@[simp]
theorem ctop.of_equiv_val {α : Type u_1} {σ : Type u_3} {τ : Type u_4} (E : σ ≃ τ) (F : ctop α σ) (a : τ) :
⇑(ctop.of_equiv E F) a = ⇑F (⇑(E.symm) a)
def ctop.to_topsp {α : Type u_1} {σ : Type u_3} (F : ctop α σ) :

Every ctop is a topological space.

Equations
@[simp]
theorem ctop.mem_nhds_to_topsp {α : Type u_1} {σ : Type u_3} (F : ctop α σ) {s : set α} {a : α} :
s ∈ nhds a ↔ ∃ (b : σ), a ∈ ⇑F b ∧ ⇑F b ⊆ s
structure ctop.realizer (α : Type u_5) [T : topological_space α] :
Type (max u_5 (u_6+1))

A ctop realizer for the topological space T is a ctop which generates T.

Instances for ctop.realizer
@[protected]
def ctop.to_realizer {α : Type u_1} {σ : Type u_3} (F : ctop α σ) :

A ctop realizes the topological space it generates.

Equations
@[protected, instance]
def ctop.realizer.inhabited {α : Type u_1} {σ : Type u_3} (F : ctop α σ) :
Equations
@[protected]
theorem ctop.realizer.mem_nhds {α : Type u_1} [T : topological_space α] (F : ctop.realizer α) {s : set α} {a : α} :
s ∈ nhds a ↔ ∃ (b : F.σ), a ∈ ⇑(F.F) b ∧ ⇑(F.F) b ⊆ s
theorem ctop.realizer.is_open_iff {α : Type u_1} [topological_space α] (F : ctop.realizer α) {s : set α} :
is_open s ↔ ∀ (a : α), a ∈ s → (∃ (b : F.σ), a ∈ ⇑(F.F) b ∧ ⇑(F.F) b ⊆ s)
theorem ctop.realizer.is_closed_iff {α : Type u_1} [topological_space α] (F : ctop.realizer α) {s : set α} :
is_closed s ↔ ∀ (a : α), (∀ (b : F.σ), a ∈ ⇑(F.F) b → (∃ (z : α), z ∈ ⇑(F.F) b ∩ s)) → a ∈ s
theorem ctop.realizer.mem_interior_iff {α : Type u_1} [topological_space α] (F : ctop.realizer α) {s : set α} {a : α} :
a ∈ interior s ↔ ∃ (b : F.σ), a ∈ ⇑(F.F) b ∧ ⇑(F.F) b ⊆ s
@[protected]
theorem ctop.realizer.is_open {α : Type u_1} [topological_space α] (F : ctop.realizer α) (s : F.σ) :
is_open (⇑(F.F) s)
theorem ctop.realizer.ext' {α : Type u_1} [T : topological_space α] {σ : Type u_2} {F : ctop α σ} (H : ∀ (a : α) (s : set α), s ∈ nhds a ↔ ∃ (b : σ), a ∈ ⇑F b ∧ ⇑F b ⊆ s) :
theorem ctop.realizer.ext {α : Type u_1} [T : topological_space α] {σ : Type u_2} {F : ctop α σ} (H₁ : ∀ (a : σ), is_open (⇑F a)) (H₂ : ∀ (a : α) (s : set α), s ∈ nhds a → (∃ (b : σ), a ∈ ⇑F b ∧ ⇑F b ⊆ s)) :
@[protected]

The topological space realizer made of the open sets.

Equations
def ctop.realizer.of_equiv {α : Type u_1} {τ : Type u_4} [topological_space α] (F : ctop.realizer α) (E : F.σ ≃ τ) :

Replace the representation type of a ctop realizer.

Equations
@[simp]
theorem ctop.realizer.of_equiv_σ {α : Type u_1} {τ : Type u_4} [topological_space α] (F : ctop.realizer α) (E : F.σ ≃ τ) :
(F.of_equiv E).σ = τ
@[simp]
theorem ctop.realizer.of_equiv_F {α : Type u_1} {τ : Type u_4} [topological_space α] (F : ctop.realizer α) (E : F.σ ≃ τ) (s : τ) :
⇑((F.of_equiv E).F) s = ⇑(F.F) (⇑(E.symm) s)
@[protected]
def ctop.realizer.nhds {α : Type u_1} [topological_space α] (F : ctop.realizer α) (a : α) :

A realizer of the neighborhood of a point.

Equations
@[simp]
theorem ctop.realizer.nhds_σ {α : Type u_1} [topological_space α] (F : ctop.realizer α) (a : α) :
(F.nhds a).σ = {s // a ∈ ⇑(F.F) s}
@[simp]
theorem ctop.realizer.nhds_F {α : Type u_1} [topological_space α] (F : ctop.realizer α) (a : α) (s : (F.nhds a).σ) :
⇑((F.nhds a).F) s = ⇑(F.F) s.val
theorem ctop.realizer.tendsto_nhds_iff {α : Type u_1} {β : Type u_2} [topological_space α] {m : β → α} {f : filter β} (F : f.realizer) (R : ctop.realizer α) {a : α} :
filter.tendsto m f (nhds a) ↔ ∀ (t : R.σ), a ∈ ⇑(R.F) t → (∃ (s : F.σ), ∀ (x : β), x ∈ ⇑(F.F) s → m x ∈ ⇑(R.F) t)
structure locally_finite.realizer {α : Type u_1} {β : Type u_2} [topological_space α] (F : ctop.realizer α) (f : β → set α) :
Type (max u_1 u_2 u_5)

A locally_finite.realizer F f is a realization that f is locally finite, namely it is a choice of open sets from the basis of F such that they intersect only finitely many of the values of f.

Instances for locally_finite.realizer
@[protected, instance]
def locally_finite.realizer.nonempty {α : Type u_1} {β : Type u_2} [topological_space α] [finite β] (F : ctop.realizer α) (f : β → set α) :
def compact.realizer {α : Type u_1} [topological_space α] (s : set α) :
Type (max u_1 (max u_1 (u_2+1)) u_2 u_1)

A compact.realizer s is a realization that s is compact, namely it is a choice of finite open covers for each set family covering s.

Equations
Instances for compact.realizer
@[protected, instance]
Equations