proposition: Lemma nbhs_closedballP (R : realFieldType) (M : normedModType R) (B : set M) (x : M) : nbhs x B <-> exists (r : {posnum R}), closed_ball x r%:num `<=` B.
proof: Proof. split=> [/nbhs_ballP[_/posnumP[r] xrB]|[e xeB]]; last first. apply/nbhs_ballP; exists e%:num => //=. exact: (subset_trans (@subset_closure _ _) xeB). exists (r%:num / 2)%:sgn. apply: (subset_trans (closed_ball_subset _ _) xrB) => //=. by rewrite lter_pdivrMr // ltr_pMr // ltr1n. Qed.
imports: HB(structures) mathcomp(all_ssreflect ssralg ssrint ssrnum finmap matrix) mathcomp(rat interval zmodp vector fieldext falgebra) mathcomp(mathcomp_extra boolp classical_sets functions) mathcomp(cardinality set_interval Rstruct) ereal reals signed topology prodnormedzmodule