proposition: Lemma inject_bigD_Q_correct : forall x : bigD, cast bigD Q x = 'mant x * 2 ^ (cast bigZ Z (expo x)).
proof: Proof. intro x. unfold cast at 1, inject_bigD_Q. unfold inject_bigZ_Q. rewrite (DtoQ_correct _ _ (reflexivity x)). unfold DtoQ_slow. now rewrite (preserves_int_pow_exp (f:=cast bigZ Z)). Qed.
imports: CoRN.algebra.RSetoid CoRN.metric2.Metric CoRN.metric2.UniformContinuity Coq.Program.Program Coq.QArith.QArith Coq.ZArith.ZArith Bignums.BigZ.BigZ CoRN.model.totalorder.QposMinMax CoRN.metric2.MetricMorphisms CoRN.model.metric2.Qmetric CoRN.util.Qdlog CoRN.reals.faster.ARArith MathClasses.theory.int_pow MathClasses.theory.nat_pow MathClasses.interfaces.rationals MathClasses.implementations.stdlib_rationals MathClasses.interfaces.integers MathClasses.implementations.stdlib_binary_integers MathClasses.implementations.fast_integers MathClasses.implementations.dyadics