proposition: Lemma dy_le_dec_aux (x y : Dyadic) p : mant x ≤ mant y ≪ (expo y - expo x)↾p → x ≤ y.
proof: Proof. destruct x as [xm xe], y as [ym ye]. intros E. unfold le, dy_le, DtoQ_slow. simpl in *. apply (order_preserving ZtoStdQ) in E. rewrite ZtoQ_shift in E. apply (order_preserving (.* 2 ^ xe)) in E. rewrite <-associativity, <-int_pow_exp_plus in E. now setoid_replace ((ye - xe) + xe) with ye in E by ring. now apply (rings.is_ne_0 (2:StdQ)). Qed.
imports: Coq.setoid_ring.Ring MathClasses.interfaces.abstract_algebra MathClasses.interfaces.integers MathClasses.interfaces.naturals MathClasses.interfaces.rationals MathClasses.interfaces.additional_operations MathClasses.interfaces.orders MathClasses.orders.minmax MathClasses.orders.integers MathClasses.orders.rationals MathClasses.implementations.nonneg_integers_naturals MathClasses.implementations.stdlib_rationals MathClasses.theory.rationals MathClasses.theory.shiftl MathClasses.theory.int_pow MathClasses.theory.nat_pow MathClasses.theory.abs