(** locally' *)
Definition locally' {T : UniformSpace} (x : T) :=
within (fun y => y <> x) (locally x).
Global Instance locally'_filter :
forall {T : UniformSpace} (x : T), Filter (locally' x).
(** Pointed filter *)
Section at_point.
Context {T : UniformSpace}.
Definition at_point (a : T) (P : T -> Prop) : Prop := P a.
Global Instance at_point_filter (a : T) :
ProperFilter (at_point a).
End at_point.
(** ** Open sets in uniform spaces *)
Section Open.
Context {T : UniformSpace}.
Definition open (D : T -> Prop) :=
forall x, D x -> locally x D.

(* Specifications: *)
Lemma locally_open :
forall (D E : T -> Prop),
open D ->
(forall x : T, D x -> E x) ->
forall x : T, D x ->
locally x E.
Lemma open_ext :
forall D E : T -> Prop,
(forall x, D x <-> E x) ->
open D -> open E.
Lemma open_and :
forall D E : T -> Prop,
open D -> open E ->
open (fun x => D x /\ E x).
Lemma open_or :
forall D E : T -> Prop,
open D -> open E ->
open (fun x => D x \/ E x).
Lemma open_true :
open (fun x : T => True).
Lemma open_false :
open (fun x : T => False).