Local Notation " ' x " := (Zpos x) (at level 20, no associativity) : Z_scope.Fixpoint pos_power2 (n:nat) : positive := match n with
  | O => 1%positive
  | S m => ((pos_power2 m)~0)%positive
end.Definition dr2Q (x:dyadic_rational) : Q :=
  match x with
  | m_over_2_to_n m n => (Z_of_nat m) # (pos_power2 n)
  end.

Lemma dr2Q_wd: forall x y:dyadic_rational, dr_eq x y -> dr2Q x == dr2Q y.