Definition packaged_expand_U_dyadic :
  { f:nat->Ensemble (point_set X) |
    (forall m:nat, open (f m)) /\
    (forall m:nat, Included (closure (f m)) (f (S m))) } ->
  { f:nat->Ensemble (point_set X) |
    (forall m:nat, open (f m)) /\
    (forall m:nat, Included (closure (f m)) (f (S m))) }.Definition U_dyadic_level_n (n:nat) :
  { f:nat->Ensemble (point_set X) |
    (forall m:nat, open (f m)) /\
    (forall m:nat, Included (closure (f m)) (f (S m))) }.Definition U_dyadic (x:dyadic_rational) :
  Ensemble (point_set X) :=
match x with
| m_over_2_to_n m n => (proj1_sig (U_dyadic_level_n n)) m
end.

(* Specifications: *)
Lemma U_dyadic_wd: forall x y:dyadic_rational, dr_eq x y -> U_dyadic x = U_dyadic y.
Lemma U_dyadic_open: forall x:dyadic_rational, open (U_dyadic x).
Lemma U_dyadic_incr: forall x y:dyadic_rational, dr_lt x y -> Included (closure (U_dyadic x)) (U_dyadic y).