From d2204e78c2d8bfc4f46ba541749b07dedd5e7969 Mon Sep 17 00:00:00 2001 From: letouzey Date: Fri, 1 Jul 2011 17:38:17 +0000 Subject: Cleanup of files related with power over Z. - Zpow_def, Zpower, Zpow_facts shortened thanks to stuff in BinInt.Z - The alternative Zpower_alt is now in a separate file Zpow_alt.v, not loaded by default. - Some more injection lemmas in Znat (pow, div, mod, quot, rem) - Btw, added a "square" function in Z, N, Pos, ... (instead of Zpow_facts.Zsquare). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14253 85f007b7-540e-0410-9357-904b9bb8a0f7 --- theories/NArith/BinNat.v | 7 +++++++ theories/NArith/BinNatDef.v | 8 ++++++++ 2 files changed, 15 insertions(+) (limited to 'theories/NArith') diff --git a/theories/NArith/BinNat.v b/theories/NArith/BinNat.v index 228be4d1a..418fd8e58 100644 --- a/theories/NArith/BinNat.v +++ b/theories/NArith/BinNat.v @@ -442,6 +442,13 @@ Proof. now destruct p. Qed. +(** Specification of square *) + +Lemma square_spec n : square n = n * n. +Proof. + destruct n; trivial. simpl. f_equal. apply Pos.square_spec. +Qed. + (** Specification of Base-2 logarithm *) Lemma size_log2 n : n<>0 -> size n = succ (log2 n). diff --git a/theories/NArith/BinNatDef.v b/theories/NArith/BinNatDef.v index d459f8509..d7660422a 100644 --- a/theories/NArith/BinNatDef.v +++ b/theories/NArith/BinNatDef.v @@ -181,6 +181,14 @@ Definition pow n p := Infix "^" := pow : N_scope. +(** Square *) + +Definition square n := + match n with + | 0 => 0 + | Npos p => Npos (Pos.square p) + end. + (** Base-2 logarithm *) Definition log2 n := -- cgit v1.2.3