Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit f03447f

Browse files
committed
feat(analysis/normed_space): a normed space over a nondiscrete normed field is noncompact (#10994)
Register this as an instance for a nondiscrete normed field and for a real normed vector space. Also add `is_compact.ne_univ`.
1 parent 0ac9f83 commit f03447f

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

src/analysis/normed_space/basic.lean

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -801,6 +801,47 @@ instance submodule.normed_space {𝕜 R : Type*} [has_scalar 𝕜 R] [normed_fie
801801

802802
end normed_space
803803

804+
section normed_space_nondiscrete
805+
806+
variables (𝕜 E : Type*) [nondiscrete_normed_field 𝕜] [normed_group E] [normed_space 𝕜 E]
807+
[nontrivial E]
808+
809+
include 𝕜
810+
811+
/-- If `E` is a nontrivial normed space over a nondiscrete normed field `𝕜`, then `E` is unbounded:
812+
for any `c : ℝ`, there exists a vector `x : E` with norm strictly greater than `c`. -/
813+
lemma normed_space.exists_lt_norm (c : ℝ) : ∃ x : E, c < ∥x∥ :=
814+
begin
815+
rcases exists_ne (0 : E) with ⟨x, hx⟩,
816+
rcases normed_field.exists_lt_norm 𝕜 (c / ∥x∥) with ⟨r, hr⟩,
817+
use r • x,
818+
rwa [norm_smul, ← div_lt_iff],
819+
rwa norm_pos_iff
820+
end
821+
822+
/-- A normed vector space over a nondiscrete normed field is a noncompact space. This cannot be
823+
an instance because in order to apply it, Lean would have to search for `normed_space 𝕜 E` with
824+
unknown `𝕜`. We register this as an instance in two cases: `𝕜 = E` and `𝕜 = ℝ`. -/
825+
protected lemma normed_space.noncompact_space : noncompact_space E :=
826+
begin
827+
refine ⟨λ h, _⟩,
828+
rcases bounded_iff_forall_norm_le.1 h.bounded with ⟨R, hR⟩,
829+
rcases normed_space.exists_lt_norm 𝕜 E R with ⟨x, hx⟩,
830+
exact hx.not_le (hR _ trivial)
831+
end
832+
833+
@[priority 100]
834+
instance nondiscrete_normed_field.noncompact_space : noncompact_space 𝕜 :=
835+
normed_space.noncompact_space 𝕜 𝕜
836+
837+
omit 𝕜
838+
839+
@[priority 100]
840+
instance real_normed_space.noncompact_space [normed_space ℝ E] : noncompact_space E :=
841+
normed_space.noncompact_space ℝ E
842+
843+
end normed_space_nondiscrete
844+
804845
section normed_algebra
805846

806847
/-- A seminormed algebra `𝕜'` over `𝕜` is an algebra endowed with a seminorm for which the

src/topology/subset_properties.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,9 @@ class noncompact_space (α : Type*) [topological_space α] : Prop :=
590590

591591
export noncompact_space (noncompact_univ)
592592

593+
lemma is_compact.ne_univ [noncompact_space α] {s : set α} (hs : is_compact s) : s ≠ univ :=
594+
λ h, noncompact_univ α (h ▸ hs)
595+
593596
instance [noncompact_space α] : ne_bot (filter.cocompact α) :=
594597
begin
595598
refine filter.has_basis_cocompact.ne_bot_iff.2 (λ s hs, _),

0 commit comments

Comments
 (0)