aboutsummaryrefslogtreecommitdiff
path: root/src/Util/QUtil.v
blob: 453cad3085d44b84d7d2f0e85fd29096be27eea9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Require Import Coq.ZArith.ZArith Coq.QArith.QArith QArith.Qround.

Local Open Scope Z_scope.

Lemma pow_ceil_mul_nat_nonzero b f
      (b_nz:b <> 0)
      (f_pos:(0 <= f)%Q)
  : forall i, b^Qceiling (f * inject_Z (Z.of_nat i)) <> 0.
Proof.
  intros.
  eapply Z.pow_nonzero; try omega.
  rewrite Zle_Qle.
  eapply Qle_trans; [|eapply Qle_ceiling].
  eapply Qle_trans; [|eapply (Qmult_le_compat_r 0)]; trivial.
  cbv; discriminate.
  apply (Qle_trans _ (inject_Z 0)); [eapply Qle_refl|].
  rewrite <-Zle_Qle.
  eapply Zle_0_nat.
Qed.