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 Qlt_dr_lt: forall x y:dyadic_rational, (dr2Q x < dr2Q y)%Q -> dr_lt x y.