Definition point_adherent (D:R -> Prop) (x:R) : Prop :=
  forall V:R -> Prop,
    neighbourhood V x ->  exists y : R, intersection_domain V D y.Definition adherence (D:R -> Prop) (x:R) : Prop := point_adherent D x.

(* Specifications: *)
Lemma adherence_P1 : forall D:R -> Prop, included D (adherence D).
Lemma included_trans : forall D1 D2 D3:R -> Prop, included D1 D2 -> included D2 D3 -> included D1 D3.
Lemma interior_P3 : forall D:R -> Prop, open_set (interior D).
Lemma complementary_P1 : forall D:R -> Prop, ~ (exists y : R, intersection_domain D (complementary D) y).
Lemma adherence_P2 : forall D:R -> Prop, closed_set D -> included (adherence D) D.
Lemma adherence_P3 : forall D:R -> Prop, closed_set (adherence D).