@@ -801,6 +801,47 @@ instance submodule.normed_space {𝕜 R : Type*} [has_scalar 𝕜 R] [normed_fie
801
801
802
802
end normed_space
803
803
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
+
804
845
section normed_algebra
805
846
806
847
/-- A seminormed algebra `𝕜'` over `𝕜` is an algebra endowed with a seminorm for which the
0 commit comments