diff options
| author | letouzey | 2008-05-28 18:17:30 +0000 |
|---|---|---|
| committer | letouzey | 2008-05-28 18:17:30 +0000 |
| commit | 836cf5e7ea5a83845cd70e3ba3a03db3f736e555 (patch) | |
| tree | fd242f063f7c382955212c40a71f0754187d80a6 /theories/Numbers/BigNumPrelude.v | |
| parent | 8afb2a8fee5da2e290a3a32964d29868e005ae62 (diff) | |
Cyclic31: no more Admitted, but I've cheated: sqrt31 and sqrt312 are
now dumb wrappers around Zsqrt_plain. Wanted (dead or alive): better
implemntations _and_ their proofs.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11013 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Numbers/BigNumPrelude.v')
| -rw-r--r-- | theories/Numbers/BigNumPrelude.v | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/theories/Numbers/BigNumPrelude.v b/theories/Numbers/BigNumPrelude.v index 11e0fe95f7..10e208eadb 100644 --- a/theories/Numbers/BigNumPrelude.v +++ b/theories/Numbers/BigNumPrelude.v @@ -359,3 +359,14 @@ right; auto with zarith. unfold Q' in *; intros n H1 H2. destruct (H n H1) as [[H3 H4] | H3]. assumption. apply Zle_not_lt in H3. false_hyp H2 H3. Qed. + +Lemma Zsquare_le : forall x, x <= x*x. +Proof. +intros. +destruct (Z_lt_le_dec 0 x). +pattern x at 1; rewrite <- (Zmult_1_l x). +apply Zmult_le_compat; auto with zarith. +apply Zle_trans with 0; auto with zarith. +rewrite <- Zmult_opp_opp. +apply Zmult_le_0_compat; auto with zarith. +Qed. |
