proposition: Lemma nbhsE_subproof (p : T) : nbhs p = [set A | exists B, [/\ open_of_nbhs B, B p & B `<=` A] ].
proof: Proof. rewrite predeqE => A; split=> [p_A|]; last first. move=> [B [Bop Bp sBA]]; apply: filterS sBA _; last exact: Bop. exact/filter_filter'/nbhs_filter. exists (nbhs^~ A); split=> //; first by move=> ?; apply: nbhs_nbhs. by move=> q /nbhs_singleton. Qed.
imports: HB(structures) mathcomp(all_ssreflect all_algebra finmap generic_quotient) mathcomp(boolp classical_sets functions) mathcomp(cardinality mathcomp_extra fsbigop) reals signed