Definition fct_UniformSpace_mixin :=
  UniformSpace.Mixin _ _ fct_ball_center fct_ball_sym fct_ball_triangle.Canonical fct_UniformSpace :=
  UniformSpace.Pack (T -> U) fct_UniformSpace_mixin (T -> U).(** ** Local predicates *)
(** locally_dist *)

Definition locally_dist {T : Type} (d : T -> R) (P : T -> Prop) :=
  exists delta : posreal, forall y, d y < delta -> P y.Global Instance locally_dist_filter :
  forall T (d : T -> R), Filter (locally_dist d).Definition locally (x : T) (P : T -> Prop) :=
  exists eps : posreal, forall y, ball x eps y -> P y.Global Instance locally_filter :
  forall x : T, ProperFilter (locally x).

(* Specifications: *)
Lemma locally_locally : forall (x : T) (P : T -> Prop), locally x P -> locally x (fun y => locally y P).
Lemma locally_singleton : forall (x : T) (P : T -> Prop), locally x P -> P x.
Lemma locally_ball : forall (x : T) (eps : posreal), locally x (ball x eps).
Lemma locally_not' : forall (x : T) (P : T -> Prop), not (forall eps : posreal, not (forall y, ball x eps y -> not (P y))) -> {d : posreal | forall y, ball x d y -> not (P y)}.
Lemma locally_not : forall (x : T) (P : T -> Prop), not (forall eps : posreal, not (forall y, ball x eps y -> not (P y))) -> locally x (fun y => not (P y)).
Lemma locally_ex_not : forall (x : T) (P : T -> Prop), locally x (fun y => not (P y)) -> {d : posreal | forall y, ball x d y -> not (P y)}.
Lemma locally_ex_dec : forall (x : T) (P : T -> Prop), (forall x, P x \/ ~P x) -> locally x P -> {d : posreal | forall y, ball x d y -> P y}.