From f1da4e3df5abd1daa5bfee184512f1e363bc9688 Mon Sep 17 00:00:00 2001
From: letouzey
Date: Wed, 10 Nov 2010 12:58:38 +0000
Subject: Integer division: quot and rem (trunc convention) in addition to div
and mod (floor convention).
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We follow Haskell naming convention: quot and rem are for
Round-Toward-Zero (a.k.a Trunc, what Ocaml, C, Asm do by default, cf.
the ex-ZOdiv file), while div and mod are for Round-Toward-Bottom
(a.k.a Floor, what Coq does historically in Zdiv). We use unicode รท
for quot, and infix rem for rem (which is actually remainder in
full). This way, both conventions can be used at the same time.
Definitions (and proofs of specifications) for div mod quot rem are
migrated in a new file Zdiv_def. Ex-ZOdiv file is now Zquot. With
this new organisation, no need for functor application in Zdiv and
Zquot.
On the abstract side, ZAxiomsSig now provides div mod quot rem.
Zproperties now contains properties of them. In NZDiv, we stop
splitting specifications in Common vs. Specific parts. Instead,
the NZ specification is be extended later, even if this leads to
a useless mod_bound_pos, subsumed by more precise axioms.
A few results in ZDivTrunc and ZDivFloor are improved (sgn stuff).
A few proofs in Nnat, Znat, Zabs are reworked (no more dependency
to Zmin, Zmax).
A lcm (least common multiple) is derived abstractly from gcd and
division (and hence available for nat N BigN Z BigZ :-).
In these new files NLcm and ZLcm, we also provide some combined
properties of div mod quot rem gcd.
We also provide a new file Zeuclid implementing a third division
convention, where the remainder is always positive. This file
instanciate the abstract one ZDivEucl. Operation names are
ZEuclid.div and ZEuclid.modulo.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13633 85f007b7-540e-0410-9357-904b9bb8a0f7
---
doc/stdlib/index-list.html.template | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
(limited to 'doc/stdlib')
diff --git a/doc/stdlib/index-list.html.template b/doc/stdlib/index-list.html.template
index 43761b0ab..02c1e928d 100644
--- a/doc/stdlib/index-list.html.template
+++ b/doc/stdlib/index-list.html.template
@@ -184,7 +184,10 @@ through the Require Import command.
theories/ZArith/Zsqrt_compat.v
theories/ZArith/Zpow_def.v
theories/ZArith/Zpower.v
+ theories/ZArith/Zdiv_def.v
theories/ZArith/Zdiv.v
+ theories/ZArith/Zquot.v
+ theories/ZArith/Zeuclid.v
theories/ZArith/Zlog_def.v
theories/ZArith/Zlogarithm.v
(theories/ZArith/ZArith.v)
@@ -193,8 +196,6 @@ through the Require Import command.
theories/ZArith/Zwf.v
theories/ZArith/Znumtheory.v
theories/ZArith/Int.v
- theories/ZArith/ZOdiv_def.v
- theories/ZArith/ZOdiv.v
theories/ZArith/Zpow_facts.v
theories/ZArith/Zdigits.v
@@ -289,6 +290,7 @@ through the Require Import command.
theories/Numbers/Natural/Abstract/NSqrt.v
theories/Numbers/Natural/Abstract/NLog.v
theories/Numbers/Natural/Abstract/NGcd.v
+ theories/Numbers/Natural/Abstract/NLcm.v
theories/Numbers/Natural/Abstract/NProperties.v
theories/Numbers/Natural/Binary/NBinary.v
theories/Numbers/Natural/Peano/NPeano.v
@@ -316,6 +318,7 @@ through the Require Import command.
theories/Numbers/Integer/Abstract/ZParity.v
theories/Numbers/Integer/Abstract/ZPow.v
theories/Numbers/Integer/Abstract/ZGcd.v
+ theories/Numbers/Integer/Abstract/ZLcm.v
theories/Numbers/Integer/Abstract/ZProperties.v
theories/Numbers/Integer/Abstract/ZDivEucl.v
theories/Numbers/Integer/Abstract/ZDivFloor.v
--
cgit v1.2.3