(** * General definitions and propositions *)

Definition included (D1 D2:R -> Prop) : Prop := forall x:R, D1 x -> D2 x.Definition disc (x:R) (delta:posreal) (y:R) : Prop := Rabs (y - x) < delta.Definition neighbourhood (V:R -> Prop) (x:R) : Prop :=
  exists delta : posreal, included (disc x delta) V.Definition open_set (D:R -> Prop) : Prop :=
  forall x:R, D x -> neighbourhood D x.Definition complementary (D:R -> Prop) (c:R) : Prop := ~ D c.Definition closed_set (D:R -> Prop) : Prop := open_set (complementary D).Definition intersection_domain (D1 D2:R -> Prop) (c:R) : Prop := D1 c /\ D2 c.Definition union_domain (D1 D2:R -> Prop) (c:R) : Prop := D1 c \/ D2 c.Definition interior (D:R -> Prop) (x:R) : Prop := neighbourhood D x.

(* Specifications: *)
Lemma interior_P1 : forall D:R -> Prop, included (interior D) D.
Lemma interior_P2 : forall D:R -> Prop, open_set D -> included D (interior D).