Offset 1, 10 lines modified | Offset 1, 10 lines modified | ||
1 | ·4cd951d34360f2fd17ecb10cad4819a0·8198668·debug·optional·coq-dbgsym_8.12.0-3_i386.deb | 1 | ·4cd951d34360f2fd17ecb10cad4819a0·8198668·debug·optional·coq-dbgsym_8.12.0-3_i386.deb |
2 | ·e7c346247b1485c2a1da3b230cb9c631·948652·debug·optional·coq-theories-dbgsym_8.12.0-3_i386.deb | 2 | ·e7c346247b1485c2a1da3b230cb9c631·948652·debug·optional·coq-theories-dbgsym_8.12.0-3_i386.deb |
3 | ·50 | 3 | ·3350c3bc231908138656d252726ef303·35241784·math·optional·coq-theories_8.12.0-3_i386.deb |
4 | ·af4c54c0ae0d5e545d913ebcbf734199·87883220·math·optional·coq_8.12.0-3_i386.deb | 4 | ·af4c54c0ae0d5e545d913ebcbf734199·87883220·math·optional·coq_8.12.0-3_i386.deb |
5 | ·a765ed403b7b61da111e8b6a353ab5cd·539572·debug·optional·coqide-dbgsym_8.12.0-3_i386.deb | 5 | ·a765ed403b7b61da111e8b6a353ab5cd·539572·debug·optional·coqide-dbgsym_8.12.0-3_i386.deb |
6 | ·81d25ebcf1e30668304dc44d92c8fcf8·1721436·math·optional·coqide_8.12.0-3_i386.deb | 6 | ·81d25ebcf1e30668304dc44d92c8fcf8·1721436·math·optional·coqide_8.12.0-3_i386.deb |
7 | ·aaabfac46c067580e833f3f160d159f3·653304·debug·optional·libcoq-ocaml-dbgsym_8.12.0-3_i386.deb | 7 | ·aaabfac46c067580e833f3f160d159f3·653304·debug·optional·libcoq-ocaml-dbgsym_8.12.0-3_i386.deb |
8 | ·6170e973092fa319f94bb097229c6479·18669088·ocaml·optional·libcoq-ocaml-dev_8.12.0-3_i386.deb | 8 | ·6170e973092fa319f94bb097229c6479·18669088·ocaml·optional·libcoq-ocaml-dev_8.12.0-3_i386.deb |
9 | ·a9c3ebb0930f48a643638b12b3b26fb5·7569016·ocaml·optional·libcoq-ocaml_8.12.0-3_i386.deb | 9 | ·a9c3ebb0930f48a643638b12b3b26fb5·7569016·ocaml·optional·libcoq-ocaml_8.12.0-3_i386.deb |
Offset 1, 3 lines modified | Offset 1, 3 lines modified | ||
1 | -rw-r--r--···0········0········0········4·2020-09-09·19:16:07.000000·debian-binary | 1 | -rw-r--r--···0········0········0········4·2020-09-09·19:16:07.000000·debian-binary |
2 | -rw-r--r--···0········0········0···110 | 2 | -rw-r--r--···0········0········0···110144·2020-09-09·19:16:07.000000·control.tar.xz |
3 | -rw-r--r--···0········0········0·3513 | 3 | -rw-r--r--···0········0········0·35131448·2020-09-09·19:16:07.000000·data.tar.xz |
Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
1 | Package:·coq-theories | 1 | Package:·coq-theories |
2 | Source:·coq | 2 | Source:·coq |
3 | Version:·8.12.0-3 | 3 | Version:·8.12.0-3 |
4 | Architecture:·i386 | 4 | Architecture:·i386 |
5 | Maintainer:·Debian·OCaml·Maintainers·<debian-ocaml-maint@lists.debian.org> | 5 | Maintainer:·Debian·OCaml·Maintainers·<debian-ocaml-maint@lists.debian.org> |
6 | Installed-Size:·2591 | 6 | Installed-Size:·259189 |
7 | Depends:·coq-8.12.0+4.11.1 | 7 | Depends:·coq-8.12.0+4.11.1 |
8 | Recommends:·coq·(>=·8.0) | 8 | Recommends:·coq·(>=·8.0) |
9 | Breaks:·coq-doc·(<=·8.0pl1.0-2),·coq-libs·(<<·8.2.pl1) | 9 | Breaks:·coq-doc·(<=·8.0pl1.0-2),·coq-libs·(<<·8.2.pl1) |
10 | Replaces:·coq-libs·(<<·8.2.pl1) | 10 | Replaces:·coq-libs·(<<·8.2.pl1) |
11 | Section:·math | 11 | Section:·math |
12 | Priority:·optional | 12 | Priority:·optional |
13 | Homepage:·http://coq.inria.fr/ | 13 | Homepage:·http://coq.inria.fr/ |
Offset 4697, 17 lines modified | Offset 4697, 17 lines modified | ||
4697 | -rw-r--r--···0·root·········(0)·root·········(0)·····7145·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Min.html | 4697 | -rw-r--r--···0·root·········(0)·root·········(0)·····7145·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Min.html |
4698 | -rw-r--r--···0·root·········(0)·root·········(0)····20950·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Minus.html | 4698 | -rw-r--r--···0·root·········(0)·root·········(0)····20950·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Minus.html |
4699 | -rw-r--r--···0·root·········(0)·root·········(0)····36344·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Mult.html | 4699 | -rw-r--r--···0·root·········(0)·root·········(0)····36344·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Mult.html |
4700 | -rw-r--r--···0·root·········(0)·root·········(0)···160402·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.PeanoNat.html | 4700 | -rw-r--r--···0·root·········(0)·root·········(0)···160402·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.PeanoNat.html |
4701 | -rw-r--r--···0·root·········(0)·root·········(0)·····6878·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Peano_dec.html | 4701 | -rw-r--r--···0·root·········(0)·root·········(0)·····6878·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Peano_dec.html |
4702 | -rw-r--r--···0·root·········(0)·root·········(0)····44957·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Plus.html | 4702 | -rw-r--r--···0·root·········(0)·root·········(0)····44957·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Plus.html |
4703 | -rw-r--r--···0·root·········(0)·root·········(0)····76838·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Wf_nat.html | 4703 | -rw-r--r--···0·root·········(0)·root·········(0)····76838·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Arith.Wf_nat.html |
4704 | -rw-r--r--···0·root·········(0)·root·········(0)···2194 | 4704 | -rw-r--r--···0·root·········(0)·root·········(0)···219467·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.Bool.html |
4705 | -rw-r--r--···0·root·········(0)·root·········(0)····14031·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.BoolEq.html | 4705 | -rw-r--r--···0·root·········(0)·root·········(0)····14031·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.BoolEq.html |
4706 | -rw-r--r--···0·root·········(0)·root·········(0)····2600 | 4706 | -rw-r--r--···0·root·········(0)·root·········(0)····26006·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.BoolOrder.html |
4707 | -rw-r--r--···0·root·········(0)·root·········(0)····25127·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.Bvector.html | 4707 | -rw-r--r--···0·root·········(0)·root·········(0)····25127·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.Bvector.html |
4708 | -rw-r--r--···0·root·········(0)·root·········(0)·····8419·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.DecBool.html | 4708 | -rw-r--r--···0·root·········(0)·root·········(0)·····8419·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.DecBool.html |
4709 | -rw-r--r--···0·root·········(0)·root·········(0)····11887·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.IfProp.html | 4709 | -rw-r--r--···0·root·········(0)·root·········(0)····11887·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.IfProp.html |
4710 | -rw-r--r--···0·root·········(0)·root·········(0)····19856·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.Sumbool.html | 4710 | -rw-r--r--···0·root·········(0)·root·········(0)····19856·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.Sumbool.html |
4711 | -rw-r--r--···0·root·········(0)·root·········(0)·····7334·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.Zerob.html | 4711 | -rw-r--r--···0·root·········(0)·root·········(0)·····7334·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Bool.Zerob.html |
4712 | -rw-r--r--···0·root·········(0)·root·········(0)····29033·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Classes.CEquivalence.html | 4712 | -rw-r--r--···0·root·········(0)·root·········(0)····29033·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Classes.CEquivalence.html |
4713 | -rw-r--r--···0·root·········(0)·root·········(0)···134232·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Classes.CMorphisms.html | 4713 | -rw-r--r--···0·root·········(0)·root·········(0)···134232·2020-09-09·19:16:07.000000·./usr/share/doc/coq-theories/html/Coq.Classes.CMorphisms.html |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | <br/> | 22 | <br/> |
23 | </div> | 23 | </div> |
24 | <div·class="doc"> | 24 | <div·class="doc"> |
25 | Equality·on·natural·numbers· | 25 | Equality·on·natural·numbers· |
26 | <div·class="paragraph">·</div> | 26 | <div·class="paragraph">·</div> |
27 | <a·id="lab | 27 | <a·id="lab641"></a><h1·class="section">Propositional·equality</h1> |
28 | </div> | 28 | </div> |
29 | <div·class="code"> | 29 | <div·class="code"> |
30 | <br/> | 30 | <br/> |
31 | <span·class="id"·title="keyword">Fixpoint</span>·<a·id="eq_nat"·class="idref"·href="#eq_nat"><span·class="id"·title="definition">eq_nat</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>·:·<span·class="id"·title="keyword">Prop</span>·:=<br/> | 31 | <span·class="id"·title="keyword">Fixpoint</span>·<a·id="eq_nat"·class="idref"·href="#eq_nat"><span·class="id"·title="definition">eq_nat</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>·:·<span·class="id"·title="keyword">Prop</span>·:=<br/> |
32 | <span·class="id"·title="keyword">match</span>·<a·class="idref"·href="Coq.Arith.EqNat.html#n:1"><span·class="id"·title="variable">n</span></a>,·<a·class="idref"·href="Coq.Arith.EqNat.html#m:2"><span·class="id"·title="variable">m</span></a>·<span·class="id"·title="keyword">with</span><br/> | 32 | <span·class="id"·title="keyword">match</span>·<a·class="idref"·href="Coq.Arith.EqNat.html#n:1"><span·class="id"·title="variable">n</span></a>,·<a·class="idref"·href="Coq.Arith.EqNat.html#m:2"><span·class="id"·title="variable">m</span></a>·<span·class="id"·title="keyword">with</span><br/> |
Offset 39, 15 lines modified | Offset 39, 15 lines modified | ||
39 | <br/> | 39 | <br/> |
40 | <span·class="id"·title="keyword">Implicit</span>·<span·class="id"·title="keyword">Types</span>·<span·class="id"·title="var">m</span>·<span·class="id"·title="var">n</span>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>.<br/> | 40 | <span·class="id"·title="keyword">Implicit</span>·<span·class="id"·title="keyword">Types</span>·<span·class="id"·title="var">m</span>·<span·class="id"·title="var">n</span>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>.<br/> |
41 | <br/> | 41 | <br/> |
42 | </div> | 42 | </div> |
43 | <div·class="doc"> | 43 | <div·class="doc"> |
44 | <a·id="lab | 44 | <a·id="lab667"></a><h1·class="section">Inductive·definition·of·<span·class="inlinecode"><span·class="id"·title="var">even</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">odd</span></span></h1> |
45 | </div> | 45 | </div> |
46 | <div·class="code"> | 46 | <div·class="code"> |
47 | <br/> | 47 | <br/> |
48 | <span·class="id"·title="keyword">Inductive</span>·<a·id="even"·class="idref"·href="#even"><span·class="id"·title="inductive">even</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>·:=<br/> | 48 | <span·class="id"·title="keyword">Inductive</span>·<a·id="even"·class="idref"·href="#even"><span·class="id"·title="inductive">even</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>·:=<br/> |
49 | |·<a·id="even_O"·class="idref"·href="#even_O"><span·class="id"·title="constructor">even_O</span></a>·:·<a·class="idref"·href="Coq.Arith.Even.html#even:1"><span·class="id"·title="inductive">even</span></a>·0<br/> | 49 | |·<a·id="even_O"·class="idref"·href="#even_O"><span·class="id"·title="constructor">even_O</span></a>·:·<a·class="idref"·href="Coq.Arith.Even.html#even:1"><span·class="id"·title="inductive">even</span></a>·0<br/> |
Offset 40, 15 lines modified | Offset 40, 15 lines modified | ||
40 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#"><span·class="id"·title="library">PeanoNat</span></a>·<a·class="idref"·href="Coq.Arith.Le.html#"><span·class="id"·title="library">Le</span></a>·<a·class="idref"·href="Coq.Arith.Lt.html#"><span·class="id"·title="library">Lt</span></a>·<a·class="idref"·href="Coq.Arith.Plus.html#"><span·class="id"·title="library">Plus</span></a>.<br/> | 40 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#"><span·class="id"·title="library">PeanoNat</span></a>·<a·class="idref"·href="Coq.Arith.Le.html#"><span·class="id"·title="library">Le</span></a>·<a·class="idref"·href="Coq.Arith.Lt.html#"><span·class="id"·title="library">Lt</span></a>·<a·class="idref"·href="Coq.Arith.Plus.html#"><span·class="id"·title="library">Plus</span></a>.<br/> |
41 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> | 41 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> |
42 | <br/> | 42 | <br/> |
43 | </div> | 43 | </div> |
44 | <div·class="doc"> | 44 | <div·class="doc"> |
45 | <a·id="lab | 45 | <a·id="lab643"></a><h1·class="section">Order·and·successor</h1> |
46 | </div> | 46 | </div> |
47 | <div·class="code"> | 47 | <div·class="code"> |
48 | <br/> | 48 | <br/> |
49 | <span·class="id"·title="keyword">Theorem</span>·<a·id="gt_Sn_O"·class="idref"·href="#gt_Sn_O"><span·class="id"·title="lemma">gt_Sn_O</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Arith.Gt.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·0.<br/> | 49 | <span·class="id"·title="keyword">Theorem</span>·<a·id="gt_Sn_O"·class="idref"·href="#gt_Sn_O"><span·class="id"·title="lemma">gt_Sn_O</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Arith.Gt.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·0.<br/> |
Offset 45, 15 lines modified | Offset 45, 15 lines modified | ||
45 | <br/> | 45 | <br/> |
46 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> | 46 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> |
47 | <br/> | 47 | <br/> |
48 | </div> | 48 | </div> |
49 | <div·class="doc"> | 49 | <div·class="doc"> |
50 | <a·id="lab | 50 | <a·id="lab671"></a><h1·class="section"><span·class="inlinecode"><span·class="id"·title="var">le</span></span>·is·an·order·on·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span></h1> |
51 | </div> | 51 | </div> |
52 | <div·class="code"> | 52 | <div·class="code"> |
53 | <br/> | 53 | <br/> |
54 | <span·class="id"·title="keyword">Notation</span>·<a·id="le_refl"·class="idref"·href="#le_refl"><span·class="id"·title="abbreviation">le_refl</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.le_refl"><span·class="id"·title="lemma">Nat.le_refl</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 54 | <span·class="id"·title="keyword">Notation</span>·<a·id="le_refl"·class="idref"·href="#le_refl"><span·class="id"·title="abbreviation">le_refl</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.le_refl"><span·class="id"·title="lemma">Nat.le_refl</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
55 | <span·class="id"·title="keyword">Notation</span>·<a·id="le_trans"·class="idref"·href="#le_trans"><span·class="id"·title="abbreviation">le_trans</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.le_trans"><span·class="id"·title="lemma">Nat.le_trans</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 55 | <span·class="id"·title="keyword">Notation</span>·<a·id="le_trans"·class="idref"·href="#le_trans"><span·class="id"·title="abbreviation">le_trans</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.le_trans"><span·class="id"·title="lemma">Nat.le_trans</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
Offset 42, 29 lines modified | Offset 42, 29 lines modified | ||
42 | <br/> | 42 | <br/> |
43 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> | 43 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> |
44 | <br/> | 44 | <br/> |
45 | </div> | 45 | </div> |
46 | <div·class="doc"> | 46 | <div·class="doc"> |
47 | <a·id="lab | 47 | <a·id="lab651"></a><h1·class="section">Irreflexivity</h1> |
48 | </div> | 48 | </div> |
49 | <div·class="code"> | 49 | <div·class="code"> |
50 | <br/> | 50 | <br/> |
51 | <span·class="id"·title="keyword">Notation</span>·<a·id="lt_irrefl"·class="idref"·href="#lt_irrefl"><span·class="id"·title="abbreviation">lt_irrefl</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.lt_irrefl"><span·class="id"·title="lemma">Nat.lt_irrefl</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).· | 51 | <span·class="id"·title="keyword">Notation</span>·<a·id="lt_irrefl"·class="idref"·href="#lt_irrefl"><span·class="id"·title="abbreviation">lt_irrefl</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.lt_irrefl"><span·class="id"·title="lemma">Nat.lt_irrefl</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).· |
52 | <br/> | 52 | <br/> |
53 | <span·class="id"·title="keyword">Hint·Resolve</span>·<span·class="id"·title="var">lt_irrefl</span>:·<span·class="id"·title="var">arith</span>.<br/> | 53 | <span·class="id"·title="keyword">Hint·Resolve</span>·<span·class="id"·title="var">lt_irrefl</span>:·<span·class="id"·title="var">arith</span>.<br/> |
54 | <br/> | 54 | <br/> |
55 | </div> | 55 | </div> |
56 | <div·class="doc"> | 56 | <div·class="doc"> |
57 | <a·id="lab | 57 | <a·id="lab652"></a><h1·class="section">Relationship·between·<span·class="inlinecode"><span·class="id"·title="var">le</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">lt</span></span></h1> |
58 | </div> | 58 | </div> |
59 | <div·class="code"> | 59 | <div·class="code"> |
60 | <br/> | 60 | <br/> |
61 | <span·class="id"·title="keyword">Theorem</span>·<a·id="lt_le_S"·class="idref"·href="#lt_le_S"><span·class="id"·title="lemma">lt_le_S</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.Arith.Lt.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Arith.Lt.html#m:2"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Arith.Lt.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Arith.Lt.html#m:2"><span·class="id"·title="variable">m</span></a>.<br/> | 61 | <span·class="id"·title="keyword">Theorem</span>·<a·id="lt_le_S"·class="idref"·href="#lt_le_S"><span·class="id"·title="lemma">lt_le_S</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.Arith.Lt.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Arith.Lt.html#m:2"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Arith.Lt.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Arith.Lt.html#m:2"><span·class="id"·title="variable">m</span></a>.<br/> |
Offset 46, 27 lines modified | Offset 46, 27 lines modified | ||
46 | <br/> | 46 | <br/> |
47 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> | 47 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> |
48 | <br/> | 48 | <br/> |
49 | </div> | 49 | </div> |
50 | <div·class="doc"> | 50 | <div·class="doc"> |
51 | <a·id="lab | 51 | <a·id="lab660"></a><h1·class="section">0·is·right·neutral</h1> |
52 | </div> | 52 | </div> |
53 | <div·class="code"> | 53 | <div·class="code"> |
54 | <br/> | 54 | <br/> |
55 | <span·class="id"·title="keyword">Lemma</span>·<a·id="minus_n_O"·class="idref"·href="#minus_n_O"><span·class="id"·title="lemma">minus_n_O</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·:·<a·class="idref"·href="Coq.Arith.Minus.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·0.<br/> | 55 | <span·class="id"·title="keyword">Lemma</span>·<a·id="minus_n_O"·class="idref"·href="#minus_n_O"><span·class="id"·title="lemma">minus_n_O</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·:·<a·class="idref"·href="Coq.Arith.Minus.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·0.<br/> |
56 | <br/> | 56 | <br/> |
57 | </div> | 57 | </div> |
58 | <div·class="doc"> | 58 | <div·class="doc"> |
59 | <a·id="lab | 59 | <a·id="lab661"></a><h1·class="section">Permutation·with·successor</h1> |
60 | </div> | 60 | </div> |
61 | <div·class="code"> | 61 | <div·class="code"> |
62 | <br/> | 62 | <br/> |
63 | <span·class="id"·title="keyword">Lemma</span>·<a·id="minus_Sn_m"·class="idref"·href="#minus_Sn_m"><span·class="id"·title="lemma">minus_Sn_m</span></a>·<a·id="n:2"·class="idref"·href="#n:2"><span·class="id"·title="binder">n</span></a>·<a·id="m:3"·class="idref"·href="#m:3"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.Arith.Minus.html#m:3"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#n:2"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·(<a·class="idref"·href="Coq.Arith.Minus.html#n:2"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#m:3"><span·class="id"·title="variable">m</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#n:2"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#m:3"><span·class="id"·title="variable">m</span></a>.<br/> | 63 | <span·class="id"·title="keyword">Lemma</span>·<a·id="minus_Sn_m"·class="idref"·href="#minus_Sn_m"><span·class="id"·title="lemma">minus_Sn_m</span></a>·<a·id="n:2"·class="idref"·href="#n:2"><span·class="id"·title="binder">n</span></a>·<a·id="m:3"·class="idref"·href="#m:3"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.Arith.Minus.html#m:3"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#n:2"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·(<a·class="idref"·href="Coq.Arith.Minus.html#n:2"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#m:3"><span·class="id"·title="variable">m</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#n:2"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#::nat_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Arith.Minus.html#m:3"><span·class="id"·title="variable">m</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab690"></a><h1·class="section">Properties·of·multiplication.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·is·mostly·OBSOLETE·now,·see·module·<span·class="inlinecode"><span·class="id"·title="var">PeanoNat.Nat</span></span>·instead. | 21 | ·This·file·is·mostly·OBSOLETE·now,·see·module·<span·class="inlinecode"><span·class="id"·title="var">PeanoNat.Nat</span></span>·instead. |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
Offset 114, 15 lines modified | Offset 114, 15 lines modified | ||
114 | <a·class="idref"·href="Coq.Arith.PeanoNat.html#Aeq:11"><span·class="id"·title="variable">Aeq</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#a:12"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#a:12"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#Proper"><span·class="id"·title="class">Proper</span></a>·(<a·class="idref"·href="Coq.Init.Logic.html#eq"><span·class="id"·title="inductive">eq</span></a><a·class="idref"·href="Coq.Classes.Morphisms.html#8dc5652698a6e16f72dd37bd17d3b973"><span·class="id"·title="notation">==></span></a><a·class="idref"·href="Coq.Arith.PeanoNat.html#Aeq:11"><span·class="id"·title="variable">Aeq</span></a><a·class="idref"·href="Coq.Classes.Morphisms.html#8dc5652698a6e16f72dd37bd17d3b973"><span·class="id"·title="notation">==></span></a><a·class="idref"·href="Coq.Arith.PeanoNat.html#Aeq:11"><span·class="id"·title="variable">Aeq</span></a>)·<a·class="idref"·href="Coq.Arith.PeanoNat.html#f:13"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><br/> | 114 | <a·class="idref"·href="Coq.Arith.PeanoNat.html#Aeq:11"><span·class="id"·title="variable">Aeq</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#a:12"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#a:12"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#Proper"><span·class="id"·title="class">Proper</span></a>·(<a·class="idref"·href="Coq.Init.Logic.html#eq"><span·class="id"·title="inductive">eq</span></a><a·class="idref"·href="Coq.Classes.Morphisms.html#8dc5652698a6e16f72dd37bd17d3b973"><span·class="id"·title="notation">==></span></a><a·class="idref"·href="Coq.Arith.PeanoNat.html#Aeq:11"><span·class="id"·title="variable">Aeq</span></a><a·class="idref"·href="Coq.Classes.Morphisms.html#8dc5652698a6e16f72dd37bd17d3b973"><span·class="id"·title="notation">==></span></a><a·class="idref"·href="Coq.Arith.PeanoNat.html#Aeq:11"><span·class="id"·title="variable">Aeq</span></a>)·<a·class="idref"·href="Coq.Arith.PeanoNat.html#f:13"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><br/> |
115 | <span·class="id"·title="keyword">forall</span>·<a·id="n:14"·class="idref"·href="#n:14"><span·class="id"·title="binder">n</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Aeq:11"><span·class="id"·title="variable">Aeq</span></a>·(<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.recursion"><span·class="id"·title="definition">recursion</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#a:12"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#f:13"><span·class="id"·title="variable">f</span></a>·(<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#n:14"><span·class="id"·title="variable">n</span></a>))·(<a·class="idref"·href="Coq.Arith.PeanoNat.html#f:13"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#n:14"><span·class="id"·title="variable">n</span></a>·(<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.recursion"><span·class="id"·title="definition">recursion</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#a:12"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#f:13"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#n:14"><span·class="id"·title="variable">n</span></a>)).<br/> | 115 | <span·class="id"·title="keyword">forall</span>·<a·id="n:14"·class="idref"·href="#n:14"><span·class="id"·title="binder">n</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Aeq:11"><span·class="id"·title="variable">Aeq</span></a>·(<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.recursion"><span·class="id"·title="definition">recursion</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#a:12"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#f:13"><span·class="id"·title="variable">f</span></a>·(<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#n:14"><span·class="id"·title="variable">n</span></a>))·(<a·class="idref"·href="Coq.Arith.PeanoNat.html#f:13"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#n:14"><span·class="id"·title="variable">n</span></a>·(<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.recursion"><span·class="id"·title="definition">recursion</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#a:12"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#f:13"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#n:14"><span·class="id"·title="variable">n</span></a>)).<br/> |
116 | <br/> | 116 | <br/> |
117 | </div> | 117 | </div> |
118 | <div·class="doc"> | 118 | <div·class="doc"> |
119 | <a·id="lab | 119 | <a·id="lab676"></a><h2·class="section">Remaining·constants·not·defined·in·Coq.Init.Nat</h2> |
120 | <div·class="paragraph">·</div> | 120 | <div·class="paragraph">·</div> |
121 | ·NB:·Aliasing·<span·class="inlinecode"><span·class="id"·title="var">le</span></span>·is·mandatory,·since·only·a·Definition·can·implement | 121 | ·NB:·Aliasing·<span·class="inlinecode"><span·class="id"·title="var">le</span></span>·is·mandatory,·since·only·a·Definition·can·implement |
122 | ····an·interface·Parameter...· | 122 | ····an·interface·Parameter...· |
123 | </div> | 123 | </div> |
124 | <div·class="code"> | 124 | <div·class="code"> |
Offset 46, 15 lines modified | Offset 46, 15 lines modified | ||
46 | <br/> | 46 | <br/> |
47 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> | 47 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> |
48 | <br/> | 48 | <br/> |
49 | </div> | 49 | </div> |
50 | <div·class="doc"> | 50 | <div·class="doc"> |
51 | <a·id="lab | 51 | <a·id="lab702"></a><h1·class="section">Neutrality·of·0,·commutativity,·associativity</h1> |
52 | </div> | 52 | </div> |
53 | <div·class="code"> | 53 | <div·class="code"> |
54 | <br/> | 54 | <br/> |
55 | <span·class="id"·title="keyword">Notation</span>·<a·id="plus_0_l"·class="idref"·href="#plus_0_l"><span·class="id"·title="abbreviation">plus_0_l</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.add_0_l"><span·class="id"·title="lemma">Nat.add_0_l</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 55 | <span·class="id"·title="keyword">Notation</span>·<a·id="plus_0_l"·class="idref"·href="#plus_0_l"><span·class="id"·title="abbreviation">plus_0_l</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.add_0_l"><span·class="id"·title="lemma">Nat.add_0_l</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
56 | <span·class="id"·title="keyword">Notation</span>·<a·id="plus_0_r"·class="idref"·href="#plus_0_r"><span·class="id"·title="abbreviation">plus_0_r</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.add_0_r"><span·class="id"·title="lemma">Nat.add_0_r</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 56 | <span·class="id"·title="keyword">Notation</span>·<a·id="plus_0_r"·class="idref"·href="#plus_0_r"><span·class="id"·title="abbreviation">plus_0_r</span></a>·:=·<a·class="idref"·href="Coq.Arith.PeanoNat.html#Nat.add_0_r"><span·class="id"·title="lemma">Nat.add_0_r</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
Offset 50, 27 lines modified | Offset 50, 27 lines modified | ||
50 | |·<a·class="idref"·href="Coq.Init.Datatypes.html#false"><span·class="id"·title="constructor">false</span></a>·=>·<a·class="idref"·href="Coq.Init.Logic.html#False"><span·class="id"·title="inductive">False</span></a><br/> | 50 | |·<a·class="idref"·href="Coq.Init.Datatypes.html#false"><span·class="id"·title="constructor">false</span></a>·=>·<a·class="idref"·href="Coq.Init.Logic.html#False"><span·class="id"·title="inductive">False</span></a><br/> |
51 | <span·class="id"·title="keyword">end</span>.<br/> | 51 | <span·class="id"·title="keyword">end</span>.<br/> |
52 | <br/> | 52 | <br/> |
53 | </div> | 53 | </div> |
54 | <div·class="doc"> | 54 | <div·class="doc"> |
55 | <a·id="lab | 55 | <a·id="lab1007"></a><h1·class="section">Decidability</h1> |
56 | </div> | 56 | </div> |
57 | <div·class="code"> | 57 | <div·class="code"> |
58 | <br/> | 58 | <br/> |
59 | <span·class="id"·title="keyword">Lemma</span>·<a·id="bool_dec"·class="idref"·href="#bool_dec"><span·class="id"·title="lemma">bool_dec</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="b1:3"·class="idref"·href="#b1:3"><span·class="id"·title="binder">b1</span></a>·<a·id="b2:4"·class="idref"·href="#b2:4"><span·class="id"·title="binder">b2</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#bool"><span·class="id"·title="inductive">bool</span></a>,·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Bool.Bool.html#b1:3"><span·class="id"·title="variable">b1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#b2:4"><span·class="id"·title="variable">b2</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Bool.Bool.html#b1:3"><span·class="id"·title="variable">b1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#b2:4"><span·class="id"·title="variable">b2</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>.<br/> | 59 | <span·class="id"·title="keyword">Lemma</span>·<a·id="bool_dec"·class="idref"·href="#bool_dec"><span·class="id"·title="lemma">bool_dec</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="b1:3"·class="idref"·href="#b1:3"><span·class="id"·title="binder">b1</span></a>·<a·id="b2:4"·class="idref"·href="#b2:4"><span·class="id"·title="binder">b2</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#bool"><span·class="id"·title="inductive">bool</span></a>,·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Bool.Bool.html#b1:3"><span·class="id"·title="variable">b1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#b2:4"><span·class="id"·title="variable">b2</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Bool.Bool.html#b1:3"><span·class="id"·title="variable">b1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#b2:4"><span·class="id"·title="variable">b2</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>.<br/> |
60 | <br/> | 60 | <br/> |
61 | </div> | 61 | </div> |
62 | <div·class="doc"> | 62 | <div·class="doc"> |
63 | <a·id="lab | 63 | <a·id="lab1008"></a><h1·class="section">Discrimination</h1> |
64 | </div> | 64 | </div> |
65 | <div·class="code"> | 65 | <div·class="code"> |
66 | <br/> | 66 | <br/> |
67 | <span·class="id"·title="keyword">Lemma</span>·<a·id="diff_true_false"·class="idref"·href="#diff_true_false"><span·class="id"·title="lemma">diff_true_false</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#true"><span·class="id"·title="constructor">true</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#false"><span·class="id"·title="constructor">false</span></a>.<br/> | 67 | <span·class="id"·title="keyword">Lemma</span>·<a·id="diff_true_false"·class="idref"·href="#diff_true_false"><span·class="id"·title="lemma">diff_true_false</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#true"><span·class="id"·title="constructor">true</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#false"><span·class="id"·title="constructor">false</span></a>.<br/> |
68 | <span·class="id"·title="keyword">Hint·Resolve</span>·<span·class="id"·title="var">diff_true_false</span>·:·<span·class="id"·title="var">bool</span>.<br/> | 68 | <span·class="id"·title="keyword">Hint·Resolve</span>·<span·class="id"·title="var">diff_true_false</span>·:·<span·class="id"·title="var">bool</span>.<br/> |
Offset 31, 15 lines modified | Offset 31, 15 lines modified | ||
31 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>.<br/> | 31 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>.<br/> |
32 | <span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">BoolNotations</span>.<br/> | 32 | <span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">BoolNotations</span>.<br/> |
33 | <br/> | 33 | <br/> |
34 | </div> | 34 | </div> |
35 | <div·class="doc"> | 35 | <div·class="doc"> |
36 | <a·id="lab | 36 | <a·id="lab1004"></a><h1·class="section">Order·<span·class="inlinecode"><span·class="id"·title="var">le</span></span></h1> |
37 | </div> | 37 | </div> |
38 | <div·class="code"> | 38 | <div·class="code"> |
39 | <br/> | 39 | <br/> |
40 | <span·class="id"·title="keyword">Lemma</span>·<a·id="le_refl"·class="idref"·href="#le_refl"><span·class="id"·title="lemma">le_refl</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="b:1"·class="idref"·href="#b:1"><span·class="id"·title="binder">b</span></a>,·<a·class="idref"·href="Coq.Bool.BoolOrder.html#b:1"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#b6c5208a24d231af77d2816ac22122c4"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Bool.BoolOrder.html#b:1"><span·class="id"·title="variable">b</span></a>.<br/> | 40 | <span·class="id"·title="keyword">Lemma</span>·<a·id="le_refl"·class="idref"·href="#le_refl"><span·class="id"·title="lemma">le_refl</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="b:1"·class="idref"·href="#b:1"><span·class="id"·title="binder">b</span></a>,·<a·class="idref"·href="Coq.Bool.BoolOrder.html#b:1"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#b6c5208a24d231af77d2816ac22122c4"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Bool.BoolOrder.html#b:1"><span·class="id"·title="variable">b</span></a>.<br/> |
41 | · | 41 | · |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1229"></a><h1·class="section">Typeclass-based·setoids.·Definitions·on·<span·class="inlinecode"><span·class="id"·title="var">Equivalence</span></span>.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1217"></a><h1·class="section">Typeclass-based·morphism·definition·and·standard,·minimal·instances</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1222"></a><h1·class="section">Typeclass-based·relations,·tactics·and·standard·instances</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···This·is·the·basic·theory·needed·to·formalize·morphisms·and·setoids. | 21 | ···This·is·the·basic·theory·needed·to·formalize·morphisms·and·setoids. |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab122 | 19 | <a·id="lab1226"></a><h1·class="section">A·typeclass·to·ease·the·handling·of·decidable·properties.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·A·proposition·is·decidable·whenever·it·is·reflected·by·a·boolean.· | 21 | ·A·proposition·is·decidable·whenever·it·is·reflected·by·a·boolean.· |
22 | </div> | 22 | </div> |
23 | <div·class="code"> | 23 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1228"></a><h1·class="section">Decidable·equivalences.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1225"></a><h1·class="section">Typeclass-based·setoids.·Definitions·on·<span·class="inlinecode"><span·class="id"·title="var">Equivalence</span></span>.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab121 | 19 | <a·id="lab1219"></a><h1·class="section">Initialization·code·for·typeclasses,·setting·up·the·default·tactic</h1> |
20 | ···for·instance·search. | 20 | ···for·instance·search. |
21 | <div·class="paragraph">·</div> | 21 | <div·class="paragraph">·</div> |
22 | ···Author:·Matthieu·Sozeau | 22 | ···Author:·Matthieu·Sozeau |
23 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 23 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1234"></a><h1·class="section">Typeclass-based·morphism·definition·and·standard,·minimal·instances</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1215"></a><h1·class="section"><span·class="inlinecode"><span·class="id"·title="var">Proper</span></span>·instances·for·propositional·connectives.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab122 | 19 | <a·id="lab1220"></a><h1·class="section">Morphism·instances·for·relations.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1231"></a><h1·class="section">Typeclass-based·relations,·tactics·and·standard·instances</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···This·is·the·basic·theory·needed·to·formalize·morphisms·and·setoids. | 21 | ···This·is·the·basic·theory·needed·to·formalize·morphisms·and·setoids. |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab123 | 19 | <a·id="lab1230"></a><h1·class="section">Relations·over·pairs</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Lists.SetoidList.html#"><span·class="id"·title="library">SetoidList</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Lists.SetoidList.html#"><span·class="id"·title="library">SetoidList</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Relations.Relations.html#"><span·class="id"·title="library">Relations</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Relations.Relations.html#"><span·class="id"·title="library">Relations</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1221"></a><h1·class="section">Typeclass-based·setoids,·tactics·and·standard·instances.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab12 | 19 | <a·id="lab1216"></a><h1·class="section">Decidable·setoid·equality·theory.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab122 | 19 | <a·id="lab1227"></a><h1·class="section">Tactics·for·typeclass-based·setoids.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ···Author:·Matthieu·Sozeau | 21 | ···Author:·Matthieu·Sozeau |
22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 22 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 17, 15 lines modified | Offset 17, 15 lines modified | ||
17 | <br/> | 17 | <br/> |
18 | <br/> | 18 | <br/> |
19 | </div> | 19 | </div> |
20 | <div·class="doc"> | 20 | <div·class="doc"> |
21 | <a·id="lab | 21 | <a·id="lab242"></a><h1·class="section">FMapAVL</h1> |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
23 | ·This·module·implements·maps·using·AVL·trees. | 23 | ·This·module·implements·maps·using·AVL·trees. |
24 | ····It·follows·the·implementation·from·Ocaml's·standard·library. | 24 | ····It·follows·the·implementation·from·Ocaml's·standard·library. |
25 | <div·class="paragraph">·</div> | 25 | <div·class="paragraph">·</div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab296"></a><h1·class="section">Finite·maps·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·functor·derives·additional·facts·from·<span·class="inlinecode"><span·class="id"·title="var">FMapInterface.S</span></span>.·These | 21 | ·This·functor·derives·additional·facts·from·<span·class="inlinecode"><span·class="id"·title="var">FMapInterface.S</span></span>.·These |
22 | ··facts·are·mainly·the·specifications·of·<span·class="inlinecode"><span·class="id"·title="var">FMapInterface.S</span></span>·written·using | 22 | ··facts·are·mainly·the·specifications·of·<span·class="inlinecode"><span·class="id"·title="var">FMapInterface.S</span></span>·written·using |
23 | ··different·styles:·equivalence·and·boolean·equalities. | 23 | ··different·styles:·equivalence·and·boolean·equalities. |
Offset 17, 15 lines modified | Offset 17, 15 lines modified | ||
17 | <br/> | 17 | <br/> |
18 | <br/> | 18 | <br/> |
19 | </div> | 19 | </div> |
20 | <div·class="doc"> | 20 | <div·class="doc"> |
21 | <a·id="lab | 21 | <a·id="lab366"></a><h1·class="section">FMapFullAVL</h1> |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
23 | ···This·file·contains·some·complements·to·<span·class="inlinecode"><span·class="id"·title="var">FMapAVL</span></span>. | 23 | ···This·file·contains·some·complements·to·<span·class="inlinecode"><span·class="id"·title="var">FMapAVL</span></span>. |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab314"></a><h1·class="section">Finite·map·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·proposes·interfaces·for·finite·maps· | 21 | ·This·file·proposes·interfaces·for·finite·maps· |
22 | </div> | 22 | </div> |
23 | <div·class="code"> | 23 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab347"></a><h1·class="section">Finite·map·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·proposes·an·implementation·of·the·non-dependent·interface | 21 | ·This·file·proposes·an·implementation·of·the·non-dependent·interface |
22 | ·<span·class="inlinecode"><span·class="id"·title="var">FMapInterface.S</span></span>·using·lists·of·pairs·ordered·(increasing)·with·respect·to | 22 | ·<span·class="inlinecode"><span·class="id"·title="var">FMapInterface.S</span></span>·using·lists·of·pairs·ordered·(increasing)·with·respect·to |
23 | ·left·projection.· | 23 | ·left·projection.· |
24 | </div> | 24 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab401"></a><h1·class="section">FMapPositive·:·an·implementation·of·FMapInterface·for·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>·keys.</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#"><span·class="id"·title="library">OrderedType</span></a>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#"><span·class="id"·title="library">OrderedType</span></a>·<a·class="idref"·href="Coq.Structures.OrderedTypeEx.html#"><span·class="id"·title="library">OrderedTypeEx</span></a>·<a·class="idref"·href="Coq.FSets.FMapInterface.html#"><span·class="id"·title="library">FMapInterface</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#"><span·class="id"·title="library">OrderedType</span></a>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#"><span·class="id"·title="library">OrderedType</span></a>·<a·class="idref"·href="Coq.Structures.OrderedTypeEx.html#"><span·class="id"·title="library">OrderedTypeEx</span></a>·<a·class="idref"·href="Coq.FSets.FMapInterface.html#"><span·class="id"·title="library">FMapInterface</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab334"></a><h1·class="section">Finite·map·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·proposes·an·implementation·of·the·non-dependent·interface | 21 | ·This·file·proposes·an·implementation·of·the·non-dependent·interface |
22 | ·<span·class="inlinecode"><span·class="id"·title="var">FMapInterface.WS</span></span>·using·lists·of·pairs,·unordered·but·without·redundancy.· | 22 | ·<span·class="inlinecode"><span·class="id"·title="var">FMapInterface.WS</span></span>·using·lists·of·pairs,·unordered·but·without·redundancy.· |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab295"></a><h1·class="section">FSetAVL·:·Implementation·of·FSetInterface·via·AVL·trees</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·module·implements·finite·sets·using·AVL·trees. | 21 | ·This·module·implements·finite·sets·using·AVL·trees. |
22 | ····It·follows·the·implementation·from·Ocaml's·standard·library, | 22 | ····It·follows·the·implementation·from·Ocaml's·standard·library, |
23 | <div·class="paragraph">·</div> | 23 | <div·class="paragraph">·</div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab359"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·module·implements·bridges·(as·functors)·from·dependent | 21 | ·This·module·implements·bridges·(as·functors)·from·dependent |
22 | ····to/from·non-dependent·set·signature.· | 22 | ····to/from·non-dependent·set·signature.· |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
Offset 15, 28 lines modified | Offset 15, 28 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab396"></a><h1·class="section">Compatibility·functors·between·FSetInterface·and·MSetInterface.</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.FSets.FSetInterface.html#"><span·class="id"·title="library">FSetInterface</span></a>·<a·class="idref"·href="Coq.FSets.FSetFacts.html#"><span·class="id"·title="library">FSetFacts</span></a>·<a·class="idref"·href="Coq.MSets.MSetInterface.html#"><span·class="id"·title="library">MSetInterface</span></a>·<a·class="idref"·href="Coq.MSets.MSetFacts.html#"><span·class="id"·title="library">MSetFacts</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.FSets.FSetInterface.html#"><span·class="id"·title="library">FSetInterface</span></a>·<a·class="idref"·href="Coq.FSets.FSetFacts.html#"><span·class="id"·title="library">FSetFacts</span></a>·<a·class="idref"·href="Coq.MSets.MSetInterface.html#"><span·class="id"·title="library">MSetInterface</span></a>·<a·class="idref"·href="Coq.MSets.MSetFacts.html#"><span·class="id"·title="library">MSetFacts</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 24 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab9 | 28 | <a·id="lab397"></a><h1·class="section">From·new·Weak·Sets·to·old·ones</h1> |
29 | </div> | 29 | </div> |
30 | <div·class="code"> | 30 | <div·class="code"> |
31 | <br/> | 31 | <br/> |
32 | <span·class="id"·title="keyword">Module</span>·<a·id="Backport_WSets"·class="idref"·href="#Backport_WSets"><span·class="id"·title="module">Backport_WSets</span></a><br/> | 32 | <span·class="id"·title="keyword">Module</span>·<a·id="Backport_WSets"·class="idref"·href="#Backport_WSets"><span·class="id"·title="module">Backport_WSets</span></a><br/> |
33 | (<span·class="id"·title="var">E</span>:<a·class="idref"·href="Coq.Structures.DecidableType.html#DecidableType"><span·class="id"·title="module">DecidableType.DecidableType</span></a>)<br/> | 33 | (<span·class="id"·title="var">E</span>:<a·class="idref"·href="Coq.Structures.DecidableType.html#DecidableType"><span·class="id"·title="module">DecidableType.DecidableType</span></a>)<br/> |
Offset 41, 15 lines modified | Offset 41, 15 lines modified | ||
41 | <span·class="id"·title="keyword">Module</span>·<a·id="WDecide_fun"·class="idref"·href="#WDecide_fun"><span·class="id"·title="module">WDecide_fun</span></a>·(<span·class="id"·title="var">E</span>·:·<a·class="idref"·href="Coq.Structures.DecidableType.html#DecidableType"><span·class="id"·title="module">DecidableType</span></a>)(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">M</span>·:·<a·class="idref"·href="Coq.FSets.FSetInterface.html#WSfun"><span·class="id"·title="module">WSfun</span></a>·<a·class="idref"·href="Coq.FSets.FSetDecide.html#E"><span·class="id"·title="module">E</span></a>).<br/> | 41 | <span·class="id"·title="keyword">Module</span>·<a·id="WDecide_fun"·class="idref"·href="#WDecide_fun"><span·class="id"·title="module">WDecide_fun</span></a>·(<span·class="id"·title="var">E</span>·:·<a·class="idref"·href="Coq.Structures.DecidableType.html#DecidableType"><span·class="id"·title="module">DecidableType</span></a>)(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">M</span>·:·<a·class="idref"·href="Coq.FSets.FSetInterface.html#WSfun"><span·class="id"·title="module">WSfun</span></a>·<a·class="idref"·href="Coq.FSets.FSetDecide.html#E"><span·class="id"·title="module">E</span></a>).<br/> |
42 | <span·class="id"·title="keyword">Module</span>·<a·id="WDecide_fun.F"·class="idref"·href="#WDecide_fun.F"><span·class="id"·title="module">F</span></a>·:=·<a·class="idref"·href="Coq.FSets.FSetFacts.html#WFacts_fun"><span·class="id"·title="module">FSetFacts.WFacts_fun</span></a>·<a·class="idref"·href="Coq.FSets.FSetDecide.html#E"><span·class="id"·title="module">E</span></a>·<a·class="idref"·href="Coq.FSets.FSetDecide.html#M"><span·class="id"·title="module">M</span></a>.<br/> | 42 | <span·class="id"·title="keyword">Module</span>·<a·id="WDecide_fun.F"·class="idref"·href="#WDecide_fun.F"><span·class="id"·title="module">F</span></a>·:=·<a·class="idref"·href="Coq.FSets.FSetFacts.html#WFacts_fun"><span·class="id"·title="module">FSetFacts.WFacts_fun</span></a>·<a·class="idref"·href="Coq.FSets.FSetDecide.html#E"><span·class="id"·title="module">E</span></a>·<a·class="idref"·href="Coq.FSets.FSetDecide.html#M"><span·class="id"·title="module">M</span></a>.<br/> |
43 | <br/> | 43 | <br/> |
44 | </div> | 44 | </div> |
45 | <div·class="doc"> | 45 | <div·class="doc"> |
46 | <a·id="lab | 46 | <a·id="lab380"></a><h1·class="section">Overview</h1> |
47 | ····This·functor·defines·the·tactic·<span·class="inlinecode"><span·class="id"·title="var">fsetdec</span></span>,·which·will | 47 | ····This·functor·defines·the·tactic·<span·class="inlinecode"><span·class="id"·title="var">fsetdec</span></span>,·which·will |
48 | ····solve·any·valid·goal·of·the·form | 48 | ····solve·any·valid·goal·of·the·form |
49 | <pre> | 49 | <pre> |
50 | ····forall·s1·...·sn, | 50 | ····forall·s1·...·sn, |
51 | ····forall·x1·...·xm, | 51 | ····forall·x1·...·xm, |
52 | ····P1·->·...·->·Pk·->·P | 52 | ····P1·->·...·->·Pk·->·P |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab379"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·module·proves·many·properties·of·finite·sets·that | 21 | ·This·module·proves·many·properties·of·finite·sets·that |
22 | ····are·consequences·of·the·axiomatization·in·<span·class="inlinecode"><span·class="id"·title="var">FsetInterface</span></span> | 22 | ····are·consequences·of·the·axiomatization·in·<span·class="inlinecode"><span·class="id"·title="var">FsetInterface</span></span> |
23 | ····Contrary·to·the·functor·in·<span·class="inlinecode"><span·class="id"·title="var">FsetProperties</span></span>·it·uses | 23 | ····Contrary·to·the·functor·in·<span·class="inlinecode"><span·class="id"·title="var">FsetProperties</span></span>·it·uses |
24 | ····sets·operations·instead·of·predicates·over·sets,·i.e. | 24 | ····sets·operations·instead·of·predicates·over·sets,·i.e. |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab362"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·functor·derives·additional·facts·from·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.S</span></span>.·These | 21 | ·This·functor·derives·additional·facts·from·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.S</span></span>.·These |
22 | ··facts·are·mainly·the·specifications·of·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.S</span></span>·written·using | 22 | ··facts·are·mainly·the·specifications·of·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.S</span></span>·written·using |
23 | ··different·styles:·equivalence·and·boolean·equalities. | 23 | ··different·styles:·equivalence·and·boolean·equalities. |
24 | ··Moreover,·we·prove·that·<span·class="inlinecode"><span·class="id"·title="var">E.Eq</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Equal</span></span>·are·setoid·equalities. | 24 | ··Moreover,·we·prove·that·<span·class="inlinecode"><span·class="id"·title="var">E.Eq</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Equal</span></span>·are·setoid·equalities. |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab287"></a><h1·class="section">Finite·set·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·Set·interfaces,·inspired·by·the·one·of·Ocaml.·When·compared·with | 21 | ·Set·interfaces,·inspired·by·the·one·of·Ocaml.·When·compared·with |
22 | ····Ocaml,·the·main·differences·are: | 22 | ····Ocaml,·the·main·differences·are: |
23 | <ul·class="doclist"> | 23 | <ul·class="doclist"> |
24 | <li>·the·lack·of·<span·class="inlinecode"><span·class="id"·title="var">iter</span></span>·function,·useless·since·Coq·is·purely·functional | 24 | <li>·the·lack·of·<span·class="inlinecode"><span·class="id"·title="var">iter</span></span>·function,·useless·since·Coq·is·purely·functional |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab241"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·proposes·an·implementation·of·the·non-dependent | 21 | ·This·file·proposes·an·implementation·of·the·non-dependent |
22 | ····interface·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.S</span></span>·using·strictly·ordered·list.· | 22 | ····interface·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.S</span></span>·using·strictly·ordered·list.· |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab320"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·functor·derives·additional·properties·from·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.S</span></span>. | 21 | ·This·functor·derives·additional·properties·from·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.S</span></span>. |
22 | ····Contrary·to·the·functor·in·<span·class="inlinecode"><span·class="id"·title="var">FSetEqProperties</span></span>·it·uses | 22 | ····Contrary·to·the·functor·in·<span·class="inlinecode"><span·class="id"·title="var">FSetEqProperties</span></span>·it·uses |
23 | ····predicates·over·sets·instead·of·sets·operations,·i.e. | 23 | ····predicates·over·sets·instead·of·sets·operations,·i.e. |
24 | ····<span·class="inlinecode"><span·class="id"·title="var">In</span></span>·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode"><span·class="id"·title="var">s</span></span>·instead·of·<span·class="inlinecode"><span·class="id"·title="var">mem</span></span>·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode"><span·class="id"·title="var">s</span>=<span·class="id"·title="var">true</span></span>, | 24 | ····<span·class="inlinecode"><span·class="id"·title="var">In</span></span>·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode"><span·class="id"·title="var">s</span></span>·instead·of·<span·class="inlinecode"><span·class="id"·title="var">mem</span></span>·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode"><span·class="id"·title="var">s</span>=<span·class="id"·title="var">true</span></span>, |
Offset 15, 28 lines modified | Offset 15, 28 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab345"></a><h1·class="section">Finite·sets·library·:·conversion·to·old·<span·class="inlinecode"><span·class="id"·title="var">Finite_sets</span></span></h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Sets.Ensembles.html#"><span·class="id"·title="library">Ensembles</span></a>·<a·class="idref"·href="Coq.Sets.Finite_sets.html#"><span·class="id"·title="library">Finite_sets</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Sets.Ensembles.html#"><span·class="id"·title="library">Ensembles</span></a>·<a·class="idref"·href="Coq.Sets.Finite_sets.html#"><span·class="id"·title="library">Finite_sets</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.FSets.FSetInterface.html#"><span·class="id"·title="library">FSetInterface</span></a>·<a·class="idref"·href="Coq.FSets.FSetProperties.html#"><span·class="id"·title="library">FSetProperties</span></a>·<a·class="idref"·href="Coq.Structures.OrderedTypeEx.html#"><span·class="id"·title="library">OrderedTypeEx</span></a>·<a·class="idref"·href="Coq.Structures.DecidableTypeEx.html#"><span·class="id"·title="library">DecidableTypeEx</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.FSets.FSetInterface.html#"><span·class="id"·title="library">FSetInterface</span></a>·<a·class="idref"·href="Coq.FSets.FSetProperties.html#"><span·class="id"·title="library">FSetProperties</span></a>·<a·class="idref"·href="Coq.Structures.OrderedTypeEx.html#"><span·class="id"·title="library">OrderedTypeEx</span></a>·<a·class="idref"·href="Coq.Structures.DecidableTypeEx.html#"><span·class="id"·title="library">DecidableTypeEx</span></a>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab346"></a><h1·class="section">Going·from·<span·class="inlinecode"><span·class="id"·title="var">FSets</span></span>·with·usual·Leibniz·equality</h1> |
29 | ····to·the·good·old·<span·class="inlinecode"><span·class="id"·title="var">Ensembles</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Finite_sets</span></span>·theory.· | 29 | ····to·the·good·old·<span·class="inlinecode"><span·class="id"·title="var">Ensembles</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Finite_sets</span></span>·theory.· |
30 | </div> | 30 | </div> |
31 | <div·class="code"> | 31 | <div·class="code"> |
32 | <br/> | 32 | <br/> |
33 | <span·class="id"·title="keyword">Module</span>·<a·id="WS_to_Finite_set"·class="idref"·href="#WS_to_Finite_set"><span·class="id"·title="module">WS_to_Finite_set</span></a>·(<span·class="id"·title="var">U</span>:<a·class="idref"·href="Coq.Structures.DecidableTypeEx.html#UsualDecidableType"><span·class="id"·title="module">UsualDecidableType</span></a>)(<span·class="id"·title="var">M</span>:·<a·class="idref"·href="Coq.FSets.FSetInterface.html#WSfun"><span·class="id"·title="module">WSfun</span></a>·<a·class="idref"·href="Coq.FSets.FSetToFiniteSet.html#U"><span·class="id"·title="module">U</span></a>).<br/> | 33 | <span·class="id"·title="keyword">Module</span>·<a·id="WS_to_Finite_set"·class="idref"·href="#WS_to_Finite_set"><span·class="id"·title="module">WS_to_Finite_set</span></a>·(<span·class="id"·title="var">U</span>:<a·class="idref"·href="Coq.Structures.DecidableTypeEx.html#UsualDecidableType"><span·class="id"·title="module">UsualDecidableType</span></a>)(<span·class="id"·title="var">M</span>:·<a·class="idref"·href="Coq.FSets.FSetInterface.html#WSfun"><span·class="id"·title="module">WSfun</span></a>·<a·class="idref"·href="Coq.FSets.FSetToFiniteSet.html#U"><span·class="id"·title="module">U</span></a>).<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab402"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·proposes·an·implementation·of·the·non-dependent | 21 | ·This·file·proposes·an·implementation·of·the·non-dependent |
22 | ····interface·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.WS</span></span>·using·lists·without·redundancy.· | 22 | ····interface·<span·class="inlinecode"><span·class="id"·title="var">FSetInterface.WS</span></span>·using·lists·without·redundancy.· |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Int63.html#"><span·class="id"·title="library">Int63</span></a>·<a·class="idref"·href="Coq.Floats.SpecFloat.html#"><span·class="id"·title="library">SpecFloat</span></a>·<a·class="idref"·href="Coq.Floats.PrimFloat.html#"><span·class="id"·title="library">PrimFloat</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#"><span·class="id"·title="library">FloatOps</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Int63.html#"><span·class="id"·title="library">Int63</span></a>·<a·class="idref"·href="Coq.Floats.SpecFloat.html#"><span·class="id"·title="library">SpecFloat</span></a>·<a·class="idref"·href="Coq.Floats.PrimFloat.html#"><span·class="id"·title="library">PrimFloat</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#"><span·class="id"·title="library">FloatOps</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab165"></a><h1·class="section">Properties·of·the·primitive·operators·for·the·Binary64·format</h1> |
24 | </div> | 24 | </div> |
25 | <div·class="code"> | 25 | <div·class="code"> |
26 | <br/> | 26 | <br/> |
27 | <span·class="id"·title="keyword">Notation</span>·<a·id="valid_binary"·class="idref"·href="#valid_binary"><span·class="id"·title="abbreviation">valid_binary</span></a>·:=·(<a·class="idref"·href="Coq.Floats.SpecFloat.html#valid_binary"><span·class="id"·title="definition">valid_binary</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#prec"><span·class="id"·title="definition">prec</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#emax"><span·class="id"·title="definition">emax</span></a>).<br/> | 27 | <span·class="id"·title="keyword">Notation</span>·<a·id="valid_binary"·class="idref"·href="#valid_binary"><span·class="id"·title="abbreviation">valid_binary</span></a>·:=·(<a·class="idref"·href="Coq.Floats.SpecFloat.html#valid_binary"><span·class="id"·title="definition">valid_binary</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#prec"><span·class="id"·title="definition">prec</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#emax"><span·class="id"·title="definition">emax</span></a>).<br/> |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Int63.html#"><span·class="id"·title="library">Int63</span></a>·<a·class="idref"·href="Coq.Floats.SpecFloat.html#"><span·class="id"·title="library">SpecFloat</span></a>·<a·class="idref"·href="Coq.Floats.PrimFloat.html#"><span·class="id"·title="library">PrimFloat</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#"><span·class="id"·title="library">FloatOps</span></a>·<a·class="idref"·href="Coq.Floats.FloatAxioms.html#"><span·class="id"·title="library">FloatAxioms</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Int63.html#"><span·class="id"·title="library">Int63</span></a>·<a·class="idref"·href="Coq.Floats.SpecFloat.html#"><span·class="id"·title="library">SpecFloat</span></a>·<a·class="idref"·href="Coq.Floats.PrimFloat.html#"><span·class="id"·title="library">PrimFloat</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#"><span·class="id"·title="library">FloatOps</span></a>·<a·class="idref"·href="Coq.Floats.FloatAxioms.html#"><span·class="id"·title="library">FloatAxioms</span></a>.<br/> |
20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Psatz.html#"><span·class="id"·title="library">Psatz</span></a>.<br/> | 20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Psatz.html#"><span·class="id"·title="library">Psatz</span></a>.<br/> |
21 | <br/> | 21 | <br/> |
22 | </div> | 22 | </div> |
23 | <div·class="doc"> | 23 | <div·class="doc"> |
24 | <a·id="lab | 24 | <a·id="lab153"></a><h1·class="section">Support·results·involving·frexp·and·ldexp</h1> |
25 | </div> | 25 | </div> |
26 | <div·class="code"> | 26 | <div·class="code"> |
27 | <br/> | 27 | <br/> |
28 | <span·class="id"·title="keyword">Lemma</span>·<a·id="shift_value"·class="idref"·href="#shift_value"><span·class="id"·title="lemma">shift_value</span></a>·:·<a·class="idref"·href="Coq.Floats.FloatOps.html#shift"><span·class="id"·title="definition">shift</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·(2<a·class="idref"·href="Coq.ZArith.BinInt.html#d3ea1afb7d81263dc23c4eb0da2a3c4e"><span·class="id"·title="notation">*</span></a><a·class="idref"·href="Coq.Floats.FloatOps.html#emax"><span·class="id"·title="definition">emax</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#46584eddd5fdb16176a10a2843177d3a"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#prec"><span·class="id"·title="definition">prec</span></a>)%<span·class="id"·title="var">Z</span>.<br/> | 28 | <span·class="id"·title="keyword">Lemma</span>·<a·id="shift_value"·class="idref"·href="#shift_value"><span·class="id"·title="lemma">shift_value</span></a>·:·<a·class="idref"·href="Coq.Floats.FloatOps.html#shift"><span·class="id"·title="definition">shift</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·(2<a·class="idref"·href="Coq.ZArith.BinInt.html#d3ea1afb7d81263dc23c4eb0da2a3c4e"><span·class="id"·title="notation">*</span></a><a·class="idref"·href="Coq.Floats.FloatOps.html#emax"><span·class="id"·title="definition">emax</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#46584eddd5fdb16176a10a2843177d3a"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Floats.FloatOps.html#prec"><span·class="id"·title="definition">prec</span></a>)%<span·class="id"·title="var">Z</span>.<br/> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Int63.html#"><span·class="id"·title="library">Int63</span></a>·<a·class="idref"·href="Coq.Floats.SpecFloat.html#"><span·class="id"·title="library">SpecFloat</span></a>·<a·class="idref"·href="Coq.Floats.PrimFloat.html#"><span·class="id"·title="library">PrimFloat</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Int63.html#"><span·class="id"·title="library">Int63</span></a>·<a·class="idref"·href="Coq.Floats.SpecFloat.html#"><span·class="id"·title="library">SpecFloat</span></a>·<a·class="idref"·href="Coq.Floats.PrimFloat.html#"><span·class="id"·title="library">PrimFloat</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab152"></a><h1·class="section">Derived·operations·and·mapping·between·primitive·<span·class="inlinecode"><span·class="id"·title="var">float</span></span>s·and·<span·class="inlinecode"><span·class="id"·title="var">spec_float</span></span>s</h1> |
24 | </div> | 24 | </div> |
25 | <div·class="code"> | 25 | <div·class="code"> |
26 | <br/> | 26 | <br/> |
27 | <span·class="id"·title="keyword">Definition</span>·<a·id="prec"·class="idref"·href="#prec"><span·class="id"·title="definition">prec</span></a>·:=·53%<span·class="id"·title="var">Z</span>.<br/> | 27 | <span·class="id"·title="keyword">Definition</span>·<a·id="prec"·class="idref"·href="#prec"><span·class="id"·title="definition">prec</span></a>·:=·53%<span·class="id"·title="var">Z</span>.<br/> |
28 | <span·class="id"·title="keyword">Definition</span>·<a·id="emax"·class="idref"·href="#emax"><span·class="id"·title="definition">emax</span></a>·:=·1024%<span·class="id"·title="var">Z</span>.<br/> | 28 | <span·class="id"·title="keyword">Definition</span>·<a·id="emax"·class="idref"·href="#emax"><span·class="id"·title="definition">emax</span></a>·:=·1024%<span·class="id"·title="var">Z</span>.<br/> |
Offset 18, 59 lines modified | Offset 18, 59 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Int63.html#"><span·class="id"·title="library">Int63</span></a>·<a·class="idref"·href="Coq.Floats.FloatClass.html#"><span·class="id"·title="library">FloatClass</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Int63.html#"><span·class="id"·title="library">Int63</span></a>·<a·class="idref"·href="Coq.Floats.FloatClass.html#"><span·class="id"·title="library">FloatClass</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab154"></a><h1·class="section">Definition·of·the·interface·for·primitive·floating-point·arithmetic</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | This·interface·provides·processor·operators·for·the·Binary64·format·of·the | 25 | This·interface·provides·processor·operators·for·the·Binary64·format·of·the |
26 | IEEE·754-2008·standard.· | 26 | IEEE·754-2008·standard.· |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | <a·id="lab | 28 | <a·id="lab155"></a><h2·class="section">Type·definition·for·the·co-domain·of·<span·class="inlinecode"><span·class="id"·title="var">compare</span></span></h2> |
29 | </div> | 29 | </div> |
30 | <div·class="code"> | 30 | <div·class="code"> |
31 | <span·class="id"·title="keyword">Variant</span>·<a·id="float_comparison"·class="idref"·href="#float_comparison"><span·class="id"·title="inductive">float_comparison</span></a>·:·<span·class="id"·title="keyword">Set</span>·:=·<a·id="FEq"·class="idref"·href="#FEq"><span·class="id"·title="constructor">FEq</span></a>·|·<a·id="FLt"·class="idref"·href="#FLt"><span·class="id"·title="constructor">FLt</span></a>·|·<a·id="FGt"·class="idref"·href="#FGt"><span·class="id"·title="constructor">FGt</span></a>·|·<a·id="FNotComparable"·class="idref"·href="#FNotComparable"><span·class="id"·title="constructor">FNotComparable</span></a>.<br/> | 31 | <span·class="id"·title="keyword">Variant</span>·<a·id="float_comparison"·class="idref"·href="#float_comparison"><span·class="id"·title="inductive">float_comparison</span></a>·:·<span·class="id"·title="keyword">Set</span>·:=·<a·id="FEq"·class="idref"·href="#FEq"><span·class="id"·title="constructor">FEq</span></a>·|·<a·id="FLt"·class="idref"·href="#FLt"><span·class="id"·title="constructor">FLt</span></a>·|·<a·id="FGt"·class="idref"·href="#FGt"><span·class="id"·title="constructor">FGt</span></a>·|·<a·id="FNotComparable"·class="idref"·href="#FNotComparable"><span·class="id"·title="constructor">FNotComparable</span></a>.<br/> |
32 | <br/> | 32 | <br/> |
33 | <br/> | 33 | <br/> |
34 | <br/> | 34 | <br/> |
35 | </div> | 35 | </div> |
36 | <div·class="doc"> | 36 | <div·class="doc"> |
37 | <a·id="lab | 37 | <a·id="lab156"></a><h2·class="section">The·main·type</h2> |
38 | ·<span·class="inlinecode"><span·class="id"·title="var">float</span></span>:·primitive·type·for·Binary64·floating-point·numbers.· | 38 | ·<span·class="inlinecode"><span·class="id"·title="var">float</span></span>:·primitive·type·for·Binary64·floating-point·numbers.· |
39 | </div> | 39 | </div> |
40 | <div·class="code"> | 40 | <div·class="code"> |
41 | <br/> | 41 | <br/> |
42 | </div> | 42 | </div> |
43 | <div·class="doc"> | 43 | <div·class="doc"> |
44 | <a·id="lab | 44 | <a·id="lab157"></a><h2·class="section">Syntax·support</h2> |
45 | </div> | 45 | </div> |
46 | <div·class="code"> | 46 | <div·class="code"> |
47 | <span·class="id"·title="keyword">Delimit</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">float_scope</span>·<span·class="id"·title="keyword">with</span>·<span·class="id"·title="var">float</span>.<br/> | 47 | <span·class="id"·title="keyword">Delimit</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">float_scope</span>·<span·class="id"·title="keyword">with</span>·<span·class="id"·title="var">float</span>.<br/> |
48 | <br/> | 48 | <br/> |
49 | <br/> | 49 | <br/> |
50 | </div> | 50 | </div> |
51 | <div·class="doc"> | 51 | <div·class="doc"> |
52 | <a·id="lab | 52 | <a·id="lab158"></a><h2·class="section">Floating-point·operators</h2> |
53 | </div> | 53 | </div> |
54 | <div·class="code"> | 54 | <div·class="code"> |
55 | <br/> | 55 | <br/> |
56 | <br/> | 56 | <br/> |
Offset 18, 24 lines modified | Offset 18, 24 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Floats.FloatClass.html#"><span·class="id"·title="library">FloatClass</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>·<a·class="idref"·href="Coq.Floats.FloatClass.html#"><span·class="id"·title="library">FloatClass</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab148"></a><h1·class="section">Specification·of·floating-point·arithmetic</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | This·specification·is·mostly·borrowed·from·the·<span·class="inlinecode"><span·class="id"·title="var">IEEE754.Binary</span></span>·module | 25 | This·specification·is·mostly·borrowed·from·the·<span·class="inlinecode"><span·class="id"·title="var">IEEE754.Binary</span></span>·module |
26 | of·the·Flocq·library·(see·<a·href="http://flocq.gforge.inria.fr/">http://flocq.gforge.inria.fr/</a>)· | 26 | of·the·Flocq·library·(see·<a·href="http://flocq.gforge.inria.fr/">http://flocq.gforge.inria.fr/</a>)· |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | <a·id="lab | 28 | <a·id="lab149"></a><h2·class="section">Inductive·specification·of·floating-point·numbers</h2> |
29 | <div·class="paragraph">·</div> | 29 | <div·class="paragraph">·</div> |
30 | Similar·to·<span·class="inlinecode"><span·class="id"·title="var">Flocq.IEEE754.Binary.full_float</span></span>,·but·with·no·NaN·payload.· | 30 | Similar·to·<span·class="inlinecode"><span·class="id"·title="var">Flocq.IEEE754.Binary.full_float</span></span>,·but·with·no·NaN·payload.· |
31 | </div> | 31 | </div> |
32 | <div·class="code"> | 32 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab1 | 19 | <a·id="lab129"></a><h1·class="section">Bytes</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Ltac.html#"><span·class="id"·title="library">Coq.Init.Ltac</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Ltac.html#"><span·class="id"·title="library">Coq.Init.Ltac</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Datatypes.html#"><span·class="id"·title="library">Coq.Init.Datatypes</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Datatypes.html#"><span·class="id"·title="library">Coq.Init.Datatypes</span></a>.<br/> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Ltac.html#"><span·class="id"·title="library">Ltac</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Ltac.html#"><span·class="id"·title="library">Ltac</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Logic.html#"><span·class="id"·title="library">Logic</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Logic.html#"><span·class="id"·title="library">Logic</span></a>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab105"></a><h1·class="section">Datatypes·with·zero·and·one·element</h1> |
29 | <div·class="paragraph">·</div> | 29 | <div·class="paragraph">·</div> |
30 | ·<span·class="inlinecode"><span·class="id"·title="var">Empty_set</span></span>·is·a·datatype·with·no·inhabitant· | 30 | ·<span·class="inlinecode"><span·class="id"·title="var">Empty_set</span></span>·is·a·datatype·with·no·inhabitant· |
31 | </div> | 31 | </div> |
32 | <div·class="code"> | 32 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab104"></a><h1·class="section">Decimal·numbers</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·These·numbers·coded·in·base·10·will·be·used·for·parsing·and·printing | 21 | ·These·numbers·coded·in·base·10·will·be·used·for·parsing·and·printing |
22 | ····other·Coq·numeral·datatypes·in·an·human-readable·way. | 22 | ····other·Coq·numeral·datatypes·in·an·human-readable·way. |
23 | ····See·the·<span·class="inlinecode"><span·class="id"·title="var">Numeral</span></span>·<span·class="inlinecode"><span·class="id"·title="keyword">Notation</span></span>·command. | 23 | ····See·the·<span·class="inlinecode"><span·class="id"·title="var">Numeral</span></span>·<span·class="inlinecode"><span·class="id"·title="keyword">Notation</span></span>·command. |
24 | ····We·represent·numbers·in·base·10·as·lists·of·decimal·digits, | 24 | ····We·represent·numbers·in·base·10·as·lists·of·decimal·digits, |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab128"></a><h1·class="section">Hexadecimal·numbers</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·These·numbers·coded·in·base·16·will·be·used·for·parsing·and·printing | 21 | ·These·numbers·coded·in·base·16·will·be·used·for·parsing·and·printing |
22 | ····other·Coq·numeral·datatypes·in·an·human-readable·way. | 22 | ····other·Coq·numeral·datatypes·in·an·human-readable·way. |
23 | ····See·the·<span·class="inlinecode"><span·class="id"·title="var">Numeral</span></span>·<span·class="inlinecode"><span·class="id"·title="keyword">Notation</span></span>·command. | 23 | ····See·the·<span·class="inlinecode"><span·class="id"·title="var">Numeral</span></span>·<span·class="inlinecode"><span·class="id"·title="keyword">Notation</span></span>·command. |
24 | ····We·represent·numbers·in·base·16·as·lists·of·hexadecimal·digits, | 24 | ····We·represent·numbers·in·base·16·as·lists·of·hexadecimal·digits, |
Offset 25, 15 lines modified | Offset 25, 15 lines modified | ||
25 | <br/> | 25 | <br/> |
26 | <span·class="id"·title="keyword">Notation</span>·<a·id="::type_scope:x_'->'_x"·class="idref"·href="#::type_scope:x_'->'_x"><span·class="id"·title="notation">"</span></a>A·->·B"·:=·(<span·class="id"·title="keyword">forall</span>·(<span·class="id"·title="var">_</span>·:·<span·class="id"·title="var">A</span>),·<span·class="id"·title="var">B</span>)·:·<span·class="id"·title="var">type_scope</span>.<br/> | 26 | <span·class="id"·title="keyword">Notation</span>·<a·id="::type_scope:x_'->'_x"·class="idref"·href="#::type_scope:x_'->'_x"><span·class="id"·title="notation">"</span></a>A·->·B"·:=·(<span·class="id"·title="keyword">forall</span>·(<span·class="id"·title="var">_</span>·:·<span·class="id"·title="var">A</span>),·<span·class="id"·title="var">B</span>)·:·<span·class="id"·title="var">type_scope</span>.<br/> |
27 | <br/> | 27 | <br/> |
28 | </div> | 28 | </div> |
29 | <div·class="doc"> | 29 | <div·class="doc"> |
30 | <a·id="lab | 30 | <a·id="lab100"></a><h1·class="section">Propositional·connectives</h1> |
31 | <div·class="paragraph">·</div> | 31 | <div·class="paragraph">·</div> |
32 | ·<span·class="inlinecode"><span·class="id"·title="var">True</span></span>·is·the·always·true·proposition· | 32 | ·<span·class="inlinecode"><span·class="id"·title="var">True</span></span>·is·the·always·true·proposition· |
33 | </div> | 33 | </div> |
34 | <div·class="code"> | 34 | <div·class="code"> |
Offset 20, 15 lines modified | Offset 20, 15 lines modified | ||
20 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.Init.Decimal.html#"><span·class="id"·title="library">Decimal</span></a>·<a·class="idref"·href="Coq.Init.Hexadecimal.html#"><span·class="id"·title="library">Hexadecimal</span></a>·<a·class="idref"·href="Coq.Init.Numeral.html#"><span·class="id"·title="library">Numeral</span></a>.<br/> | 20 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.Init.Decimal.html#"><span·class="id"·title="library">Decimal</span></a>·<a·class="idref"·href="Coq.Init.Hexadecimal.html#"><span·class="id"·title="library">Hexadecimal</span></a>·<a·class="idref"·href="Coq.Init.Numeral.html#"><span·class="id"·title="library">Numeral</span></a>.<br/> |
21 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> | 21 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> |
22 | <br/> | 22 | <br/> |
23 | </div> | 23 | </div> |
24 | <div·class="doc"> | 24 | <div·class="doc"> |
25 | <a·id="lab1 | 25 | <a·id="lab111"></a><h1·class="section">Peano·natural·numbers,·definitions·of·operations</h1> |
26 | <div·class="paragraph">·</div> | 26 | <div·class="paragraph">·</div> |
27 | ·This·file·is·meant·to·be·used·as·a·whole·module, | 27 | ·This·file·is·meant·to·be·used·as·a·whole·module, |
28 | ····without·importing·it,·leading·to·qualified·definitions | 28 | ····without·importing·it,·leading·to·qualified·definitions |
29 | ····(e.g.·Nat.pred)· | 29 | ····(e.g.·Nat.pred)· |
30 | </div> | 30 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab127"></a><h1·class="section">Decimal·or·Hexadecimal·numbers</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Decimal.html#"><span·class="id"·title="library">Decimal</span></a>·<a·class="idref"·href="Coq.Init.Hexadecimal.html#"><span·class="id"·title="library">Hexadecimal</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Decimal.html#"><span·class="id"·title="library">Decimal</span></a>·<a·class="idref"·href="Coq.Init.Hexadecimal.html#"><span·class="id"·title="library">Hexadecimal</span></a>.<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Logic.html#"><span·class="id"·title="library">Logic</span></a>.<br/> | 21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Logic.html#"><span·class="id"·title="library">Logic</span></a>.<br/> |
22 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Specif.html#"><span·class="id"·title="library">Specif</span></a>.<br/> | 22 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Specif.html#"><span·class="id"·title="library">Specif</span></a>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab125"></a><h1·class="section">Useful·tactics</h1> |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | ·Ex·falso·quodlibet·:·a·tactic·for·proving·False·instead·of·the·current·goal. | 28 | ·Ex·falso·quodlibet·:·a·tactic·for·proving·False·instead·of·the·current·goal. |
29 | ····This·is·just·a·nicer·name·for·tactics·such·as·<span·class="inlinecode"><span·class="id"·title="tactic">elimtype</span></span>·<span·class="inlinecode"><span·class="id"·title="var">False</span></span> | 29 | ····This·is·just·a·nicer·name·for·tactics·such·as·<span·class="inlinecode"><span·class="id"·title="tactic">elimtype</span></span>·<span·class="inlinecode"><span·class="id"·title="var">False</span></span> |
30 | ····and·other·<span·class="inlinecode"><span·class="id"·title="tactic">cut</span></span>·<span·class="inlinecode"><span·class="id"·title="var">False</span></span>.· | 30 | ····and·other·<span·class="inlinecode"><span·class="id"·title="tactic">cut</span></span>·<span·class="inlinecode"><span·class="id"·title="var">False</span></span>.· |
31 | </div> | 31 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab99"></a><h1·class="section">The·tauto·and·intuition·tactics</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Notations.html#"><span·class="id"·title="library">Notations</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Notations.html#"><span·class="id"·title="library">Notations</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Ltac.html#"><span·class="id"·title="library">Ltac</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Ltac.html#"><span·class="id"·title="library">Ltac</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab98"></a><h1·class="section">This·module·proves·the·validity·of</h1> |
20 | <ul·class="doclist"> | 20 | <ul·class="doclist"> |
21 | <li>·well-founded·recursion·(also·known·as·course·of·values) | 21 | <li>·well-founded·recursion·(also·known·as·course·of·values) |
22 | </li> | 22 | </li> |
23 | <li>·well-founded·induction | 23 | <li>·well-founded·induction |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 23 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
24 | <br/> | 24 | <br/> |
25 | </div> | 25 | </div> |
26 | <div·class="doc"> | 26 | <div·class="doc"> |
27 | <a·id="lab | 27 | <a·id="lab949"></a><h1·class="section">Basics:·definition·of·polymorphic·lists·and·some·operations</h1> |
28 | <div·class="paragraph">·</div> | 28 | <div·class="paragraph">·</div> |
29 | ·The·definition·of·<span·class="inlinecode"><span·class="id"·title="var">list</span></span>·is·now·in·<span·class="inlinecode"><span·class="id"·title="var">Init</span>/<span·class="id"·title="var">Datatypes</span></span>, | 29 | ·The·definition·of·<span·class="inlinecode"><span·class="id"·title="var">list</span></span>·is·now·in·<span·class="inlinecode"><span·class="id"·title="var">Init</span>/<span·class="id"·title="var">Datatypes</span></span>, |
30 | ····as·well·as·the·definitions·of·<span·class="inlinecode"><span·class="id"·title="var">length</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">app</span></span>· | 30 | ····as·well·as·the·definitions·of·<span·class="inlinecode"><span·class="id"·title="var">length</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">app</span></span>· |
31 | </div> | 31 | </div> |
32 | <div·class="code"> | 32 | <div·class="code"> |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Lists.List.html#"><span·class="id"·title="library">List</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Lists.List.html#"><span·class="id"·title="library">List</span></a>.<br/> |
20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Sorting.Sorted.html#"><span·class="id"·title="library">Sorted</span></a>.<br/> | 20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Sorting.Sorted.html#"><span·class="id"·title="library">Sorted</span></a>.<br/> |
21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Program.Basics.html#"><span·class="id"·title="library">Basics</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>.<br/> | 21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Program.Basics.html#"><span·class="id"·title="library">Basics</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>.<br/> |
22 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 22 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
23 | </div> | 23 | </div> |
24 | <div·class="doc"> | 24 | <div·class="doc"> |
25 | <a·id="lab | 25 | <a·id="lab948"></a><h1·class="section">Logical·relations·over·lists·with·respect·to·a·setoid·equality</h1> |
26 | ······or·ordering.· | 26 | ······or·ordering.· |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | ·This·can·be·seen·as·a·complement·of·predicate·<span·class="inlinecode"><span·class="id"·title="var">lelistA</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">sort</span></span> | 28 | ·This·can·be·seen·as·a·complement·of·predicate·<span·class="inlinecode"><span·class="id"·title="var">lelistA</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">sort</span></span> |
29 | ····found·in·<span·class="inlinecode"><span·class="id"·title="var">Sorting</span></span>.· | 29 | ····found·in·<span·class="inlinecode"><span·class="id"·title="var">Sorting</span></span>.· |
30 | </div> | 30 | </div> |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Logic.Eqdep_dec.html#"><span·class="id"·title="library">Eqdep_dec</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Logic.Eqdep_dec.html#"><span·class="id"·title="library">Eqdep_dec</span></a>.<br/> |
20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Lists.Streams.html#"><span·class="id"·title="library">Streams</span></a>.<br/> | 20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Lists.Streams.html#"><span·class="id"·title="library">Streams</span></a>.<br/> |
21 | <br/> | 21 | <br/> |
22 | </div> | 22 | </div> |
23 | <div·class="doc"> | 23 | <div·class="doc"> |
24 | <a·id="lab | 24 | <a·id="lab947"></a><h1·class="section">Memoization</h1> |
25 | <div·class="paragraph">·</div> | 25 | <div·class="paragraph">·</div> |
26 | ·Successive·outputs·of·a·given·function·<span·class="inlinecode"><span·class="id"·title="var">f</span></span>·are·stored·in | 26 | ·Successive·outputs·of·a·given·function·<span·class="inlinecode"><span·class="id"·title="var">f</span></span>·are·stored·in |
27 | ····a·stream·in·order·to·avoid·duplicated·computations.· | 27 | ····a·stream·in·order·to·avoid·duplicated·computations.· |
28 | </div> | 28 | </div> |
29 | <div·class="code"> | 29 | <div·class="code"> |
Offset 16, 15 lines modified | Offset 16, 15 lines modified | ||
16 | <div·class="code"> | 16 | <div·class="code"> |
17 | <br/> | 17 | <br/> |
18 | </div> | 18 | </div> |
19 | <div·class="doc"> | 19 | <div·class="doc"> |
20 | Some·facts·and·definitions·concerning·choice·and·description·in | 20 | Some·facts·and·definitions·concerning·choice·and·description·in |
21 | ·······intuitionistic·logic.·<a·id="lab | 21 | ·······intuitionistic·logic.·<a·id="lab784"></a><h1·class="section">References:</h1> |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
23 | <span·class="inlinecode">[<span·class="id"·title="var">Bell</span>]</span>·John·L.·Bell,·Choice·principles·in·intuitionistic·set·theory, | 23 | <span·class="inlinecode">[<span·class="id"·title="var">Bell</span>]</span>·John·L.·Bell,·Choice·principles·in·intuitionistic·set·theory, |
24 | unpublished. | 24 | unpublished. |
25 | <div·class="paragraph">·</div> | 25 | <div·class="paragraph">·</div> |
Offset 99, 15 lines modified | Offset 99, 15 lines modified | ||
99 | <br/> | 99 | <br/> |
100 | <span·class="id"·title="keyword">Opaque</span>·<a·class="idref"·href="Coq.Logic.ClassicalEpsilon.html#epsilon"><span·class="id"·title="definition">epsilon</span></a>.<br/> | 100 | <span·class="id"·title="keyword">Opaque</span>·<a·class="idref"·href="Coq.Logic.ClassicalEpsilon.html#epsilon"><span·class="id"·title="definition">epsilon</span></a>.<br/> |
101 | <br/> | 101 | <br/> |
102 | </div> | 102 | </div> |
103 | <div·class="doc"> | 103 | <div·class="doc"> |
104 | <a·id="lab | 104 | <a·id="lab757"></a><h3·class="section">Weaker·lemmas·(compatibility·lemmas)</h3> |
105 | </div> | 105 | </div> |
106 | <div·class="code"> | 106 | <div·class="code"> |
107 | <br/> | 107 | <br/> |
108 | <span·class="id"·title="keyword">Theorem</span>·<a·id="choice"·class="idref"·href="#choice"><span·class="id"·title="lemma">choice</span></a>·:<br/> | 108 | <span·class="id"·title="keyword">Theorem</span>·<a·id="choice"·class="idref"·href="#choice"><span·class="id"·title="lemma">choice</span></a>·:<br/> |
109 | <span·class="id"·title="keyword">forall</span>·(<a·id="A:37"·class="idref"·href="#A:37"><span·class="id"·title="binder">A</span></a>·<a·id="B:38"·class="idref"·href="#B:38"><span·class="id"·title="binder">B</span></a>·:·<span·class="id"·title="keyword">Type</span>)·(<a·id="R:39"·class="idref"·href="#R:39"><span·class="id"·title="binder">R</span></a>·:·<a·class="idref"·href="Coq.Logic.ClassicalEpsilon.html#A:37"><span·class="id"·title="variable">A</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><a·class="idref"·href="Coq.Logic.ClassicalEpsilon.html#B:38"><span·class="id"·title="variable">B</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><span·class="id"·title="keyword">Prop</span>),<br/> | 109 | <span·class="id"·title="keyword">forall</span>·(<a·id="A:37"·class="idref"·href="#A:37"><span·class="id"·title="binder">A</span></a>·<a·id="B:38"·class="idref"·href="#B:38"><span·class="id"·title="binder">B</span></a>·:·<span·class="id"·title="keyword">Type</span>)·(<a·id="R:39"·class="idref"·href="#R:39"><span·class="id"·title="binder">R</span></a>·:·<a·class="idref"·href="Coq.Logic.ClassicalEpsilon.html#A:37"><span·class="id"·title="variable">A</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><a·class="idref"·href="Coq.Logic.ClassicalEpsilon.html#B:38"><span·class="id"·title="variable">B</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><span·class="id"·title="keyword">Prop</span>),<br/> |
Offset 80, 15 lines modified | Offset 80, 15 lines modified | ||
80 | <div·class="paragraph">·</div> | 80 | <div·class="paragraph">·</div> |
81 | 4.2·Classical·logic·=·choice·of·representatives·in·a·partition·of·bool | 81 | 4.2·Classical·logic·=·choice·of·representatives·in·a·partition·of·bool |
82 | <div·class="paragraph">·</div> | 82 | <div·class="paragraph">·</div> |
83 | <a·id="lab | 83 | <a·id="lab765"></a><h1·class="section">Prop·degeneracy·=·excluded-middle·+·prop·extensionality</h1> |
84 | <div·class="paragraph">·</div> | 84 | <div·class="paragraph">·</div> |
85 | ·i.e.········<span·class="inlinecode">(<span·class="id"·title="keyword">forall</span></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>,</span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>=<span·class="id"·title="var">True</span></span>·<span·class="inlinecode">\/</span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>=<span·class="id"·title="var">False</span>)</span> | 85 | ·i.e.········<span·class="inlinecode">(<span·class="id"·title="keyword">forall</span></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>,</span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>=<span·class="id"·title="var">True</span></span>·<span·class="inlinecode">\/</span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>=<span·class="id"·title="var">False</span>)</span> |
86 | ·························<span·class="inlinecode"><-></span> | 86 | ·························<span·class="inlinecode"><-></span> |
87 | ·······<span·class="inlinecode">(<span·class="id"·title="keyword">forall</span></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>,</span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>\/~<span·class="id"·title="var">A</span>)</span>·<span·class="inlinecode">/\</span>·<span·class="inlinecode">(<span·class="id"·title="keyword">forall</span></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·<span·class="inlinecode"><span·class="id"·title="var">B</span>,</span>·<span·class="inlinecode">(<span·class="id"·title="var">A</span><-><span·class="id"·title="var">B</span>)</span>·<span·class="inlinecode">-></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>=<span·class="id"·title="var">B</span>)</span> | 87 | ·······<span·class="inlinecode">(<span·class="id"·title="keyword">forall</span></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>,</span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>\/~<span·class="id"·title="var">A</span>)</span>·<span·class="inlinecode">/\</span>·<span·class="inlinecode">(<span·class="id"·title="keyword">forall</span></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·<span·class="inlinecode"><span·class="id"·title="var">B</span>,</span>·<span·class="inlinecode">(<span·class="id"·title="var">A</span><-><span·class="id"·title="var">B</span>)</span>·<span·class="inlinecode">-></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span>=<span·class="id"·title="var">B</span>)</span> |
Offset 74, 15 lines modified | Offset 74, 15 lines modified | ||
74 | <div·class="code"> | 74 | <div·class="code"> |
75 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.Logic.ClassicalFacts.html#"><span·class="id"·title="library">ClassicalFacts</span></a>·<a·class="idref"·href="Coq.Logic.ChoiceFacts.html#"><span·class="id"·title="library">ChoiceFacts</span></a>.<br/> | 75 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.Logic.ClassicalFacts.html#"><span·class="id"·title="library">ClassicalFacts</span></a>·<a·class="idref"·href="Coq.Logic.ChoiceFacts.html#"><span·class="id"·title="library">ChoiceFacts</span></a>.<br/> |
76 | <br/> | 76 | <br/> |
77 | </div> | 77 | </div> |
78 | <div·class="doc"> | 78 | <div·class="doc"> |
79 | <a·id="lab | 79 | <a·id="lab758"></a><h1·class="section">Pred.·Ext.·+·Rel.·Axiom·of·Choice·->·Excluded-Middle</h1> |
80 | </div> | 80 | </div> |
81 | <div·class="code"> | 81 | <div·class="code"> |
82 | <br/> | 82 | <br/> |
83 | <span·class="id"·title="keyword">Section</span>·<a·id="PredExt_RelChoice_imp_EM"·class="idref"·href="#PredExt_RelChoice_imp_EM"><span·class="id"·title="section">PredExt_RelChoice_imp_EM</span></a>.<br/> | 83 | <span·class="id"·title="keyword">Section</span>·<a·id="PredExt_RelChoice_imp_EM"·class="idref"·href="#PredExt_RelChoice_imp_EM"><span·class="id"·title="section">PredExt_RelChoice_imp_EM</span></a>.<br/> |
Offset 82, 15 lines modified | Offset 82, 15 lines modified | ||
82 | ···equalities·assuming·axiom·eq_rect_eq | 82 | ···equalities·assuming·axiom·eq_rect_eq |
83 | <div·class="paragraph">·</div> | 83 | <div·class="paragraph">·</div> |
84 | <div·class="paragraph">·</div> | 84 | <div·class="paragraph">·</div> |
85 | <a·id="lab | 85 | <a·id="lab753"></a><h1·class="section">Definition·of·dependent·equality·and·equivalence·with·equality·of·dependent·pairs</h1> |
86 | </div> | 86 | </div> |
87 | <div·class="code"> | 87 | <div·class="code"> |
88 | <br/> | 88 | <br/> |
89 | <span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">EqNotations</span>.<br/> | 89 | <span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">EqNotations</span>.<br/> |
Offset 54, 15 lines modified | Offset 54, 15 lines modified | ||
54 | ·····from·a·proof·of·decidability·of·equality·for·a·set·in·Set | 54 | ·····from·a·proof·of·decidability·of·equality·for·a·set·in·Set |
55 | <div·class="paragraph">·</div> | 55 | <div·class="paragraph">·</div> |
56 | <div·class="paragraph">·</div> | 56 | <div·class="paragraph">·</div> |
57 | <a·id="lab | 57 | <a·id="lab750"></a><h1·class="section">Streicher's·K·and·injectivity·of·dependent·pair·hold·on·decidable·types</h1> |
58 | </div> | 58 | </div> |
59 | <div·class="code"> | 59 | <div·class="code"> |
60 | <br/> | 60 | <br/> |
61 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 61 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
Offset 71, 15 lines modified | Offset 71, 15 lines modified | ||
71 | <br/> | 71 | <br/> |
72 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 72 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
73 | <br/> | 73 | <br/> |
74 | </div> | 74 | </div> |
75 | <div·class="doc"> | 75 | <div·class="doc"> |
76 | <a·id="lab | 76 | <a·id="lab761"></a><h1·class="section">Definitions</h1> |
77 | <div·class="paragraph">·</div> | 77 | <div·class="paragraph">·</div> |
78 | ·Being·an·inverse· | 78 | ·Being·an·inverse· |
79 | </div> | 79 | </div> |
80 | <div·class="code"> | 80 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab756"></a><h1·class="section">Functions·on·finite·domains</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·Main·result·:·for·functions·<span·class="inlinecode"><span·class="id"·title="var">f</span>:<span·class="id"·title="var">A</span>-><span·class="id"·title="var">A</span></span>·with·finite·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>, | 21 | ·Main·result·:·for·functions·<span·class="inlinecode"><span·class="id"·title="var">f</span>:<span·class="id"·title="var">A</span>-><span·class="id"·title="var">A</span></span>·with·finite·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>, |
22 | ····f·injective·<->·f·bijective·<->·f·surjective.· | 22 | ····f·injective·<->·f·bijective·<->·f·surjective.· |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
Offset 142, 15 lines modified | Offset 142, 15 lines modified | ||
142 | <br/> | 142 | <br/> |
143 | <br/> | 143 | <br/> |
144 | </div> | 144 | </div> |
145 | <div·class="doc"> | 145 | <div·class="doc"> |
146 | <a·id="lab | 146 | <a·id="lab711"></a><h1·class="section">A·modular·proof·of·Hurkens's·paradox.</h1> |
147 | <div·class="paragraph">·</div> | 147 | <div·class="paragraph">·</div> |
148 | ·It·relies·on·an·axiomatisation·of·a·shallow·embedding·of·system·U- | 148 | ·It·relies·on·an·axiomatisation·of·a·shallow·embedding·of·system·U- |
149 | ····(i.e.··types·of·U-·are·interpreted·by·types·of·Coq).·The | 149 | ····(i.e.··types·of·U-·are·interpreted·by·types·of·Coq).·The |
150 | ····universes·are·encoded·in·a·style,·due·to·Martin-Löf,·where·they | 150 | ····universes·are·encoded·in·a·style,·due·to·Martin-Löf,·where·they |
151 | ····are·given·by·a·set·of·names·and·a·family·<span·class="inlinecode"><span·class="id"·title="var">El</span>:<span·class="id"·title="var">Name</span>-><span·class="id"·title="keyword">Type</span></span>·which | 151 | ····are·given·by·a·set·of·names·and·a·family·<span·class="inlinecode"><span·class="id"·title="var">El</span>:<span·class="id"·title="var">Name</span>-><span·class="id"·title="keyword">Type</span></span>·which |
Offset 83, 15 lines modified | Offset 83, 15 lines modified | ||
83 | <br/> | 83 | <br/> |
84 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 84 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
85 | <br/> | 85 | <br/> |
86 | </div> | 86 | </div> |
87 | <div·class="doc"> | 87 | <div·class="doc"> |
88 | <a·id="lab | 88 | <a·id="lab779"></a><h1·class="section">Definitions</h1> |
89 | <div·class="paragraph">·</div> | 89 | <div·class="paragraph">·</div> |
90 | ·Propositional·extensionality· | 90 | ·Propositional·extensionality· |
91 | </div> | 91 | </div> |
92 | <div·class="code"> | 92 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab813"></a><h1·class="section">Basic·facts·about·Prop·as·a·type</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·An·intuitionistic·theorem·from·topos·theory·<span·class="inlinecode">[<span·class="id"·title="var">LambekScott</span>]</span> | 21 | ·An·intuitionistic·theorem·from·topos·theory·<span·class="inlinecode">[<span·class="id"·title="var">LambekScott</span>]</span> |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab749"></a><h1·class="section">The·Set·universe·seen·as·a·synonym·for·Type</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·After·loading·this·file,·Set·becomes·just·another·name·for·Type. | 21 | ·After·loading·this·file,·Set·becomes·just·another·name·for·Type. |
22 | ····This·allows·easily·performing·a·Set-to-Type·migration,·or·at·least | 22 | ····This·allows·easily·performing·a·Set-to-Type·migration,·or·at·least |
23 | ····test·whether·a·development·relies·or·not·on·specific·features·of | 23 | ····test·whether·a·development·relies·or·not·on·specific·features·of |
24 | ····Set:·simply·insert·some·Require·Export·of·this·file·at·starting | 24 | ····Set:·simply·insert·some·Require·Export·of·this·file·at·starting |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1119"></a><h1·class="section">MSetAVL·:·Implementation·of·MSetInterface·via·AVL·trees</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·module·implements·finite·sets·using·AVL·trees. | 21 | ·This·module·implements·finite·sets·using·AVL·trees. |
22 | ····It·follows·the·implementation·from·Ocaml's·standard·library, | 22 | ····It·follows·the·implementation·from·Ocaml's·standard·library, |
23 | <div·class="paragraph">·</div> | 23 | <div·class="paragraph">·</div> |
Offset 41, 15 lines modified | Offset 41, 15 lines modified | ||
41 | <span·class="id"·title="keyword">Module</span>·<a·id="WDecideOn"·class="idref"·href="#WDecideOn"><span·class="id"·title="module">WDecideOn</span></a>·(<span·class="id"·title="var">E</span>·:·<a·class="idref"·href="Coq.Structures.Equalities.html#DecidableType"><span·class="id"·title="module">DecidableType</span></a>)(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">M</span>·:·<a·class="idref"·href="Coq.MSets.MSetInterface.html#WSetsOn"><span·class="id"·title="module">WSetsOn</span></a>·<a·class="idref"·href="Coq.MSets.MSetDecide.html#E"><span·class="id"·title="module">E</span></a>).<br/> | 41 | <span·class="id"·title="keyword">Module</span>·<a·id="WDecideOn"·class="idref"·href="#WDecideOn"><span·class="id"·title="module">WDecideOn</span></a>·(<span·class="id"·title="var">E</span>·:·<a·class="idref"·href="Coq.Structures.Equalities.html#DecidableType"><span·class="id"·title="module">DecidableType</span></a>)(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">M</span>·:·<a·class="idref"·href="Coq.MSets.MSetInterface.html#WSetsOn"><span·class="id"·title="module">WSetsOn</span></a>·<a·class="idref"·href="Coq.MSets.MSetDecide.html#E"><span·class="id"·title="module">E</span></a>).<br/> |
42 | <span·class="id"·title="keyword">Module</span>·<a·id="WDecideOn.F"·class="idref"·href="#WDecideOn.F"><span·class="id"·title="module">F</span></a>·:=·<a·class="idref"·href="Coq.MSets.MSetFacts.html#WFactsOn"><span·class="id"·title="module">MSetFacts.WFactsOn</span></a>·<a·class="idref"·href="Coq.MSets.MSetDecide.html#E"><span·class="id"·title="module">E</span></a>·<a·class="idref"·href="Coq.MSets.MSetDecide.html#M"><span·class="id"·title="module">M</span></a>.<br/> | 42 | <span·class="id"·title="keyword">Module</span>·<a·id="WDecideOn.F"·class="idref"·href="#WDecideOn.F"><span·class="id"·title="module">F</span></a>·:=·<a·class="idref"·href="Coq.MSets.MSetFacts.html#WFactsOn"><span·class="id"·title="module">MSetFacts.WFactsOn</span></a>·<a·class="idref"·href="Coq.MSets.MSetDecide.html#E"><span·class="id"·title="module">E</span></a>·<a·class="idref"·href="Coq.MSets.MSetDecide.html#M"><span·class="id"·title="module">M</span></a>.<br/> |
43 | <br/> | 43 | <br/> |
44 | </div> | 44 | </div> |
45 | <div·class="doc"> | 45 | <div·class="doc"> |
46 | <a·id="lab | 46 | <a·id="lab1186"></a><h1·class="section">Overview</h1> |
47 | ····This·functor·defines·the·tactic·<span·class="inlinecode"><span·class="id"·title="var">fsetdec</span></span>,·which·will | 47 | ····This·functor·defines·the·tactic·<span·class="inlinecode"><span·class="id"·title="var">fsetdec</span></span>,·which·will |
48 | ····solve·any·valid·goal·of·the·form | 48 | ····solve·any·valid·goal·of·the·form |
49 | <pre> | 49 | <pre> |
50 | ····forall·s1·...·sn, | 50 | ····forall·s1·...·sn, |
51 | ····forall·x1·...·xm, | 51 | ····forall·x1·...·xm, |
52 | ····P1·->·...·->·Pk·->·P | 52 | ····P1·->·...·->·Pk·->·P |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1185"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·module·proves·many·properties·of·finite·sets·that | 21 | ·This·module·proves·many·properties·of·finite·sets·that |
22 | ····are·consequences·of·the·axiomatization·in·<span·class="inlinecode"><span·class="id"·title="var">FsetInterface</span></span> | 22 | ····are·consequences·of·the·axiomatization·in·<span·class="inlinecode"><span·class="id"·title="var">FsetInterface</span></span> |
23 | ····Contrary·to·the·functor·in·<span·class="inlinecode"><span·class="id"·title="var">FsetProperties</span></span>·it·uses | 23 | ····Contrary·to·the·functor·in·<span·class="inlinecode"><span·class="id"·title="var">FsetProperties</span></span>·it·uses |
24 | ····sets·operations·instead·of·predicates·over·sets,·i.e. | 24 | ····sets·operations·instead·of·predicates·over·sets,·i.e. |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1109"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·functor·derives·additional·facts·from·<span·class="inlinecode"><span·class="id"·title="var">MSetInterface.S</span></span>.·These | 21 | ·This·functor·derives·additional·facts·from·<span·class="inlinecode"><span·class="id"·title="var">MSetInterface.S</span></span>.·These |
22 | ··facts·are·mainly·the·specifications·of·<span·class="inlinecode"><span·class="id"·title="var">MSetInterface.S</span></span>·written·using | 22 | ··facts·are·mainly·the·specifications·of·<span·class="inlinecode"><span·class="id"·title="var">MSetInterface.S</span></span>·written·using |
23 | ··different·styles:·equivalence·and·boolean·equalities. | 23 | ··different·styles:·equivalence·and·boolean·equalities. |
24 | ··Moreover,·we·prove·that·<span·class="inlinecode"><span·class="id"·title="var">E.Eq</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Equal</span></span>·are·setoid·equalities. | 24 | ··Moreover,·we·prove·that·<span·class="inlinecode"><span·class="id"·title="var">E.Eq</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Equal</span></span>·are·setoid·equalities. |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1158"></a><h1·class="section">MSetGenTree·:·sets·via·generic·trees</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····This·module·factorizes·common·parts·in·implementations | 21 | ····This·module·factorizes·common·parts·in·implementations |
22 | ····of·finite·sets·as·AVL·trees·and·as·Red-Black·trees.·The·nodes | 22 | ····of·finite·sets·as·AVL·trees·and·as·Red-Black·trees.·The·nodes |
23 | ····of·the·trees·defined·here·include·an·generic·information | 23 | ····of·the·trees·defined·here·include·an·generic·information |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1102"></a><h1·class="section">Finite·set·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·Set·interfaces,·inspired·by·the·one·of·Ocaml.·When·compared·with | 21 | ·Set·interfaces,·inspired·by·the·one·of·Ocaml.·When·compared·with |
22 | ····Ocaml,·the·main·differences·are: | 22 | ····Ocaml,·the·main·differences·are: |
23 | <ul·class="doclist"> | 23 | <ul·class="doclist"> |
24 | <li>·the·lack·of·<span·class="inlinecode"><span·class="id"·title="var">iter</span></span>·function,·useless·since·Coq·is·purely·functional | 24 | <li>·the·lack·of·<span·class="inlinecode"><span·class="id"·title="var">iter</span></span>·function,·useless·since·Coq·is·purely·functional |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1114"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·proposes·an·implementation·of·the·non-dependent | 21 | ·This·file·proposes·an·implementation·of·the·non-dependent |
22 | ····interface·<span·class="inlinecode"><span·class="id"·title="var">MSetInterface.S</span></span>·using·strictly·ordered·list.· | 22 | ····interface·<span·class="inlinecode"><span·class="id"·title="var">MSetInterface.S</span></span>·using·strictly·ordered·list.· |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1046"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·functor·derives·additional·properties·from·<span·class="inlinecode"><span·class="id"·title="var">MSetInterface.S</span></span>. | 21 | ·This·functor·derives·additional·properties·from·<span·class="inlinecode"><span·class="id"·title="var">MSetInterface.S</span></span>. |
22 | ····Contrary·to·the·functor·in·<span·class="inlinecode"><span·class="id"·title="var">MSetEqProperties</span></span>·it·uses | 22 | ····Contrary·to·the·functor·in·<span·class="inlinecode"><span·class="id"·title="var">MSetEqProperties</span></span>·it·uses |
23 | ····predicates·over·sets·instead·of·sets·operations,·i.e. | 23 | ····predicates·over·sets·instead·of·sets·operations,·i.e. |
24 | ····<span·class="inlinecode"><span·class="id"·title="var">In</span></span>·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode"><span·class="id"·title="var">s</span></span>·instead·of·<span·class="inlinecode"><span·class="id"·title="var">mem</span></span>·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode"><span·class="id"·title="var">s</span>=<span·class="id"·title="var">true</span></span>, | 24 | ····<span·class="inlinecode"><span·class="id"·title="var">In</span></span>·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode"><span·class="id"·title="var">s</span></span>·instead·of·<span·class="inlinecode"><span·class="id"·title="var">mem</span></span>·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode"><span·class="id"·title="var">s</span>=<span·class="id"·title="var">true</span></span>, |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1060"></a><h1·class="section">MSetRBT·:·Implementation·of·MSetInterface·via·Red-Black·trees</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·Initial·author:·Andrew·W.·Appel,·2011. | 21 | ·Initial·author:·Andrew·W.·Appel,·2011. |
22 | ····Extra·modifications·by:·Pierre·Letouzey | 22 | ····Extra·modifications·by:·Pierre·Letouzey |
23 | <div·class="paragraph">·</div> | 23 | <div·class="paragraph">·</div> |
Offset 15, 28 lines modified | Offset 15, 28 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1044"></a><h1·class="section">Finite·sets·library·:·conversion·to·old·<span·class="inlinecode"><span·class="id"·title="var">Finite_sets</span></span></h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Sets.Ensembles.html#"><span·class="id"·title="library">Ensembles</span></a>·<a·class="idref"·href="Coq.Sets.Finite_sets.html#"><span·class="id"·title="library">Finite_sets</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Sets.Ensembles.html#"><span·class="id"·title="library">Ensembles</span></a>·<a·class="idref"·href="Coq.Sets.Finite_sets.html#"><span·class="id"·title="library">Finite_sets</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.MSets.MSetInterface.html#"><span·class="id"·title="library">MSetInterface</span></a>·<a·class="idref"·href="Coq.MSets.MSetProperties.html#"><span·class="id"·title="library">MSetProperties</span></a>·<a·class="idref"·href="Coq.Structures.OrdersEx.html#"><span·class="id"·title="library">OrdersEx</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.MSets.MSetInterface.html#"><span·class="id"·title="library">MSetInterface</span></a>·<a·class="idref"·href="Coq.MSets.MSetProperties.html#"><span·class="id"·title="library">MSetProperties</span></a>·<a·class="idref"·href="Coq.Structures.OrdersEx.html#"><span·class="id"·title="library">OrdersEx</span></a>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab1045"></a><h1·class="section">Going·from·<span·class="inlinecode"><span·class="id"·title="var">MSets</span></span>·with·usual·Leibniz·equality</h1> |
29 | ····to·the·good·old·<span·class="inlinecode"><span·class="id"·title="var">Ensembles</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Finite_sets</span></span>·theory.· | 29 | ····to·the·good·old·<span·class="inlinecode"><span·class="id"·title="var">Ensembles</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Finite_sets</span></span>·theory.· |
30 | </div> | 30 | </div> |
31 | <div·class="code"> | 31 | <div·class="code"> |
32 | <br/> | 32 | <br/> |
33 | <span·class="id"·title="keyword">Module</span>·<a·id="WS_to_Finite_set"·class="idref"·href="#WS_to_Finite_set"><span·class="id"·title="module">WS_to_Finite_set</span></a>·(<span·class="id"·title="var">U</span>:<a·class="idref"·href="Coq.Structures.Equalities.html#UsualDecidableType"><span·class="id"·title="module">UsualDecidableType</span></a>)(<span·class="id"·title="var">M</span>:·<a·class="idref"·href="Coq.MSets.MSetInterface.html#WSetsOn"><span·class="id"·title="module">WSetsOn</span></a>·<a·class="idref"·href="Coq.MSets.MSetToFiniteSet.html#U"><span·class="id"·title="module">U</span></a>).<br/> | 33 | <span·class="id"·title="keyword">Module</span>·<a·id="WS_to_Finite_set"·class="idref"·href="#WS_to_Finite_set"><span·class="id"·title="module">WS_to_Finite_set</span></a>·(<span·class="id"·title="var">U</span>:<a·class="idref"·href="Coq.Structures.Equalities.html#UsualDecidableType"><span·class="id"·title="module">UsualDecidableType</span></a>)(<span·class="id"·title="var">M</span>:·<a·class="idref"·href="Coq.MSets.MSetInterface.html#WSetsOn"><span·class="id"·title="module">WSetsOn</span></a>·<a·class="idref"·href="Coq.MSets.MSetToFiniteSet.html#U"><span·class="id"·title="module">U</span></a>).<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1153"></a><h1·class="section">Finite·sets·library</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·proposes·an·implementation·of·the·non-dependent | 21 | ·This·file·proposes·an·implementation·of·the·non-dependent |
22 | ····interface·<span·class="inlinecode"><span·class="id"·title="var">MSetWeakInterface.S</span></span>·using·lists·without·redundancy.· | 22 | ····interface·<span·class="inlinecode"><span·class="id"·title="var">MSetWeakInterface.S</span></span>·using·lists·without·redundancy.· |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <a·class="idref"·href="Coq.Structures.Equalities.html#"><span·class="id"·title="library">Equalities</span></a>·<a·class="idref"·href="Coq.Structures.OrdersFacts.html#"><span·class="id"·title="library">OrdersFacts</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#"><span·class="id"·title="library">NAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NMaxMin.html#"><span·class="id"·title="library">NMaxMin</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NProperties.html#"><span·class="id"·title="library">NProperties</span></a>.<br/> | 21 | <a·class="idref"·href="Coq.Structures.Equalities.html#"><span·class="id"·title="library">Equalities</span></a>·<a·class="idref"·href="Coq.Structures.OrdersFacts.html#"><span·class="id"·title="library">OrdersFacts</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#"><span·class="id"·title="library">NAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NMaxMin.html#"><span·class="id"·title="library">NMaxMin</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NProperties.html#"><span·class="id"·title="library">NProperties</span></a>.<br/> |
22 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.NArith.BinNatDef.html#"><span·class="id"·title="library">BinNatDef</span></a>.<br/> | 22 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.NArith.BinNatDef.html#"><span·class="id"·title="library">BinNatDef</span></a>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab1 | 26 | <a·id="lab1202"></a><h1·class="section">Binary·natural·numbers,·operations·and·properties</h1> |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | ·The·type·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>·and·its·constructors·<span·class="inlinecode"><span·class="id"·title="var">N0</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Npos</span></span>·are·now | 28 | ·The·type·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>·and·its·constructors·<span·class="inlinecode"><span·class="id"·title="var">N0</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Npos</span></span>·are·now |
29 | ····defined·in·<span·class="inlinecode"><span·class="id"·title="var">BinNums.v</span></span>· | 29 | ····defined·in·<span·class="inlinecode"><span·class="id"·title="var">BinNums.v</span></span>· |
30 | <div·class="paragraph">·</div> | 30 | <div·class="paragraph">·</div> |
Offset 24, 56 lines modified | Offset 24, 56 lines modified | ||
24 | <br/> | 24 | <br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab1 | 28 | <a·id="lab1206"></a><h1·class="section">Binary·natural·numbers,·definitions·of·operations</h1> |
29 | </div> | 29 | </div> |
30 | <div·class="code"> | 30 | <div·class="code"> |
31 | <br/> | 31 | <br/> |
32 | <span·class="id"·title="keyword">Module</span>·<a·id="N"·class="idref"·href="#N"><span·class="id"·title="module">N</span></a>.<br/> | 32 | <span·class="id"·title="keyword">Module</span>·<a·id="N"·class="idref"·href="#N"><span·class="id"·title="module">N</span></a>.<br/> |
33 | <br/> | 33 | <br/> |
34 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.t"·class="idref"·href="#N.t"><span·class="id"·title="definition">t</span></a>·:=·<a·class="idref"·href="Coq.Numbers.BinNums.html#N"><span·class="id"·title="inductive">N</span></a>.<br/> | 34 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.t"·class="idref"·href="#N.t"><span·class="id"·title="definition">t</span></a>·:=·<a·class="idref"·href="Coq.Numbers.BinNums.html#N"><span·class="id"·title="inductive">N</span></a>.<br/> |
35 | <br/> | 35 | <br/> |
36 | </div> | 36 | </div> |
37 | <div·class="doc"> | 37 | <div·class="doc"> |
38 | <a·id="lab1 | 38 | <a·id="lab1207"></a><h2·class="section">Nicer·name·<span·class="inlinecode"><span·class="id"·title="var">N.pos</span></span>·for·constructor·<span·class="inlinecode"><span·class="id"·title="var">Npos</span></span></h2> |
39 | </div> | 39 | </div> |
40 | <div·class="code"> | 40 | <div·class="code"> |
41 | <br/> | 41 | <br/> |
42 | <span·class="id"·title="keyword">Notation</span>·<a·id="N.pos"·class="idref"·href="#N.pos"><span·class="id"·title="abbreviation">pos</span></a>·:=·<a·class="idref"·href="Coq.Numbers.BinNums.html#Npos"><span·class="id"·title="constructor">Npos</span></a>.<br/> | 42 | <span·class="id"·title="keyword">Notation</span>·<a·id="N.pos"·class="idref"·href="#N.pos"><span·class="id"·title="abbreviation">pos</span></a>·:=·<a·class="idref"·href="Coq.Numbers.BinNums.html#Npos"><span·class="id"·title="constructor">Npos</span></a>.<br/> |
43 | <br/> | 43 | <br/> |
44 | </div> | 44 | </div> |
45 | <div·class="doc"> | 45 | <div·class="doc"> |
46 | <a·id="lab1 | 46 | <a·id="lab1208"></a><h2·class="section">Constants</h2> |
47 | </div> | 47 | </div> |
48 | <div·class="code"> | 48 | <div·class="code"> |
49 | <br/> | 49 | <br/> |
50 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.zero"·class="idref"·href="#N.zero"><span·class="id"·title="definition">zero</span></a>·:=·0.<br/> | 50 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.zero"·class="idref"·href="#N.zero"><span·class="id"·title="definition">zero</span></a>·:=·0.<br/> |
51 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.one"·class="idref"·href="#N.one"><span·class="id"·title="definition">one</span></a>·:=·1.<br/> | 51 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.one"·class="idref"·href="#N.one"><span·class="id"·title="definition">one</span></a>·:=·1.<br/> |
52 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.two"·class="idref"·href="#N.two"><span·class="id"·title="definition">two</span></a>·:=·2.<br/> | 52 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.two"·class="idref"·href="#N.two"><span·class="id"·title="definition">two</span></a>·:=·2.<br/> |
53 | <br/> | 53 | <br/> |
54 | </div> | 54 | </div> |
55 | <div·class="doc"> | 55 | <div·class="doc"> |
56 | <a·id="lab1 | 56 | <a·id="lab1209"></a><h2·class="section">Operation·<span·class="inlinecode"><span·class="id"·title="var">x</span></span>·<span·class="inlinecode">-></span>·<span·class="inlinecode">2*<span·class="id"·title="var">x</span>+1</span></h2> |
57 | </div> | 57 | </div> |
58 | <div·class="code"> | 58 | <div·class="code"> |
59 | <br/> | 59 | <br/> |
60 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.succ_double"·class="idref"·href="#N.succ_double"><span·class="id"·title="definition">succ_double</span></a>·<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>·:=<br/> | 60 | <span·class="id"·title="keyword">Definition</span>·<a·id="N.succ_double"·class="idref"·href="#N.succ_double"><span·class="id"·title="definition">succ_double</span></a>·<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>·:=<br/> |
61 | <span·class="id"·title="keyword">match</span>·<a·class="idref"·href="Coq.NArith.BinNatDef.html#x:1"><span·class="id"·title="variable">x</span></a>·<span·class="id"·title="keyword">with</span><br/> | 61 | <span·class="id"·title="keyword">match</span>·<a·class="idref"·href="Coq.NArith.BinNatDef.html#x:1"><span·class="id"·title="variable">x</span></a>·<span·class="id"·title="keyword">with</span><br/> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.PArith.BinPos.html#"><span·class="id"·title="library">BinPos</span></a>·<a·class="idref"·href="Coq.NArith.BinNat.html#"><span·class="id"·title="library">BinNat</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#"><span·class="id"·title="library">PeanoNat</span></a>·<a·class="idref"·href="Coq.PArith.Pnat.html#"><span·class="id"·title="library">Pnat</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.PArith.BinPos.html#"><span·class="id"·title="library">BinPos</span></a>·<a·class="idref"·href="Coq.NArith.BinNat.html#"><span·class="id"·title="library">BinNat</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#"><span·class="id"·title="library">PeanoNat</span></a>·<a·class="idref"·href="Coq.PArith.Pnat.html#"><span·class="id"·title="library">Pnat</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab1 | 23 | <a·id="lab1204"></a><h1·class="section">Conversions·from·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>·to·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span></h1> |
24 | </div> | 24 | </div> |
25 | <div·class="code"> | 25 | <div·class="code"> |
26 | <br/> | 26 | <br/> |
27 | <span·class="id"·title="keyword">Module</span>·<a·id="N2Nat"·class="idref"·href="#N2Nat"><span·class="id"·title="module">N2Nat</span></a>.<br/> | 27 | <span·class="id"·title="keyword">Module</span>·<a·id="N2Nat"·class="idref"·href="#N2Nat"><span·class="id"·title="module">N2Nat</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab203"></a><h1·class="section">Alternative·Binary·Numeral·Notations</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·Faster·but·less·safe·parsers·and·printers·of·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>.· | 21 | ·Faster·but·less·safe·parsers·and·printers·of·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>.· |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
23 | ·By·default,·literals·in·types·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·are·parsed·and | 23 | ·By·default,·literals·in·types·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·are·parsed·and |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab214"></a><h1·class="section">Binary·Numerical·Datatypes</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 23 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab169"></a><h1·class="section">Signature·and·specification·of·a·bounded·integer·structure</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·This·file·specifies·how·to·represent·<span·class="inlinecode"><span·class="id"·title="var">Z</span>/<span·class="id"·title="var">nZ</span></span>·when·<span·class="inlinecode"><span·class="id"·title="var">n</span>=2^<span·class="id"·title="var">d</span></span>, | 21 | ·This·file·specifies·how·to·represent·<span·class="inlinecode"><span·class="id"·title="var">Z</span>/<span·class="id"·title="var">nZ</span></span>·when·<span·class="inlinecode"><span·class="id"·title="var">n</span>=2^<span·class="id"·title="var">d</span></span>, |
22 | ····<span·class="inlinecode"><span·class="id"·title="var">d</span></span>·being·the·number·of·digits·of·these·bounded·integers.· | 22 | ····<span·class="inlinecode"><span·class="id"·title="var">d</span></span>·being·the·number·of·digits·of·these·bounded·integers.· |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Cyclic.Abstract.CyclicAxioms.html#"><span·class="id"·title="library">CyclicAxioms</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Cyclic.Abstract.CyclicAxioms.html#"><span·class="id"·title="library">CyclicAxioms</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Lia.html#"><span·class="id"·title="library">Lia</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Lia.html#"><span·class="id"·title="library">Lia</span></a>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab170"></a><h1·class="section">From·<span·class="inlinecode"><span·class="id"·title="var">CyclicType</span></span>·to·<span·class="inlinecode"><span·class="id"·title="var">NZAxiomsSig</span></span></h1> |
29 | <div·class="paragraph">·</div> | 29 | <div·class="paragraph">·</div> |
30 | ·A·<span·class="inlinecode"><span·class="id"·title="var">Z</span>/<span·class="id"·title="var">nZ</span></span>·representation·given·by·a·module·type·<span·class="inlinecode"><span·class="id"·title="var">CyclicType</span></span> | 30 | ·A·<span·class="inlinecode"><span·class="id"·title="var">Z</span>/<span·class="id"·title="var">nZ</span></span>·representation·given·by·a·module·type·<span·class="inlinecode"><span·class="id"·title="var">CyclicType</span></span> |
31 | ····implements·<span·class="inlinecode"><span·class="id"·title="var">NZAxiomsSig</span></span>,·e.g.·the·common·properties·between | 31 | ····implements·<span·class="inlinecode"><span·class="id"·title="var">NZAxiomsSig</span></span>,·e.g.·the·common·properties·between |
32 | ····N·and·Z·with·no·ordering.·Notice·that·the·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>·in·<span·class="inlinecode"><span·class="id"·title="var">Z</span>/<span·class="id"·title="var">nZ</span></span>·is | 32 | ····N·and·Z·with·no·ordering.·Notice·that·the·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>·in·<span·class="inlinecode"><span·class="id"·title="var">Z</span>/<span·class="id"·title="var">nZ</span></span>·is |
33 | ····a·power·of·2. | 33 | ····a·power·of·2. |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | </div> | 19 | </div> |
20 | <div·class="doc"> | 20 | <div·class="doc"> |
21 | This·library·has·been·deprecated·since·Coq·version·8.10.· | 21 | This·library·has·been·deprecated·since·Coq·version·8.10.· |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
23 | <a·id="lab | 23 | <a·id="lab171"></a><h1·class="section">Int31·numbers·defines·indeed·a·cyclic·structure·:·Z/(2^31)Z</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | <div·class="paragraph">·</div> | 25 | <div·class="paragraph">·</div> |
26 | Author:·Arnaud·Spiwack·(+·Pierre·Letouzey) | 26 | Author:·Arnaud·Spiwack·(+·Pierre·Letouzey) |
Offset 31, 15 lines modified | Offset 31, 15 lines modified | ||
31 | <br/> | 31 | <br/> |
32 | <br/> | 32 | <br/> |
33 | </div> | 33 | </div> |
34 | <div·class="doc"> | 34 | <div·class="doc"> |
35 | <a·id="lab | 35 | <a·id="lab184"></a><h1·class="section">31-bit·integers</h1> |
36 | <div·class="paragraph">·</div> | 36 | <div·class="paragraph">·</div> |
37 | ·This·file·contains·basic·definitions·of·a·31-bit·integer | 37 | ·This·file·contains·basic·definitions·of·a·31-bit·integer |
38 | ··arithmetic.·In·fact·it·is·more·general·than·that.·The·only·reason | 38 | ··arithmetic.·In·fact·it·is·more·general·than·that.·The·only·reason |
39 | ··for·this·use·of·31·is·the·underlying·mechanism·for·hardware-efficient | 39 | ··for·this·use·of·31·is·the·underlying·mechanism·for·hardware-efficient |
40 | ··computations·by·A.·Spiwack.·Apart·from·this,·a·switch·to,·say, | 40 | ··computations·by·A.·Spiwack.·Apart·from·this,·a·switch·to,·say, |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | </div> | 19 | </div> |
20 | <div·class="doc"> | 20 | <div·class="doc"> |
21 | This·library·has·been·deprecated·since·Coq·version·8.10.· | 21 | This·library·has·been·deprecated·since·Coq·version·8.10.· |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
23 | <a·id="lab | 23 | <a·id="lab193"></a><h1·class="section">Int31·numbers·defines·Z/(2^31)Z,·and·can·hence·be·equipped</h1> |
24 | ······with·a·ring·structure·and·a·ring·tactic· | 24 | ······with·a·ring·structure·and·a·ring·tactic· |
25 | </div> | 25 | </div> |
26 | <div·class="code"> | 26 | <div·class="code"> |
27 | <br/> | 27 | <br/> |
28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Lia.html#"><span·class="id"·title="library">Lia</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int31.Int31.html#"><span·class="id"·title="library">Int31</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int31.Cyclic31.html#"><span·class="id"·title="library">Cyclic31</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Abstract.CyclicAxioms.html#"><span·class="id"·title="library">CyclicAxioms</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Lia.html#"><span·class="id"·title="library">Lia</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int31.Int31.html#"><span·class="id"·title="library">Int31</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int31.Cyclic31.html#"><span·class="id"·title="library">Cyclic31</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Abstract.CyclicAxioms.html#"><span·class="id"·title="library">CyclicAxioms</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab194"></a><h1·class="section">Int63·numbers·defines·indeed·a·cyclic·structure·:·Z/(2^31)Z</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | <div·class="paragraph">·</div> | 21 | <div·class="paragraph">·</div> |
22 | Author:·Arnaud·Spiwack·(+·Pierre·Letouzey) | 22 | Author:·Arnaud·Spiwack·(+·Pierre·Letouzey) |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab195"></a><h1·class="section">Int63·numbers·defines·Z/(2^63)Z,·and·can·hence·be·equipped</h1> |
20 | ······with·a·ring·structure·and·a·ring·tactic· | 20 | ······with·a·ring·structure·and·a·ring·tactic· |
21 | </div> | 21 | </div> |
22 | <div·class="code"> | 22 | <div·class="code"> |
23 | <br/> | 23 | <br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Cyclic63.html#"><span·class="id"·title="library">Cyclic63</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Abstract.CyclicAxioms.html#"><span·class="id"·title="library">CyclicAxioms</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Cyclic.Int63.Cyclic63.html#"><span·class="id"·title="library">Cyclic63</span></a>·<a·class="idref"·href="Coq.Numbers.Cyclic.Abstract.CyclicAxioms.html#"><span·class="id"·title="library">CyclicAxioms</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab196"></a><h1·class="section">Type·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·viewed·modulo·a·particular·constant·corresponds·to·<span·class="inlinecode"><span·class="id"·title="var">Z</span>/<span·class="id"·title="var">nZ</span></span></h1> |
20 | ······as·defined·abstractly·in·CyclicAxioms.· | 20 | ······as·defined·abstractly·in·CyclicAxioms.· |
21 | <div·class="paragraph">·</div> | 21 | <div·class="paragraph">·</div> |
22 | ·Even·if·the·construction·provided·here·is·not·reused·for·building | 22 | ·Even·if·the·construction·provided·here·is·not·reused·for·building |
23 | ··the·efficient·arbitrary·precision·numbers,·it·provides·a·simple | 23 | ··the·efficient·arbitrary·precision·numbers,·it·provides·a·simple |
24 | ··implementation·of·CyclicAxioms,·hence·ensuring·its·coherence.· | 24 | ··implementation·of·CyclicAxioms,·hence·ensuring·its·coherence.· |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab167"></a><h1·class="section">DecimalFacts·:·some·facts·about·Decimal·numbers</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Decimal.html#"><span·class="id"·title="library">Decimal</span></a>·<a·class="idref"·href="Coq.Arith.Arith.html#"><span·class="id"·title="library">Arith</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Decimal.html#"><span·class="id"·title="library">Decimal</span></a>·<a·class="idref"·href="Coq.Arith.Arith.html#"><span·class="id"·title="library">Arith</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab239"></a><h1·class="section">DecimalN</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">N</span></span> | 21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">N</span></span> |
22 | ····are·bijections· | 22 | ····are·bijections· |
23 | </div> | 23 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab240"></a><h1·class="section">DecimalNat</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span> | 21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span> |
22 | ····are·bijections.· | 22 | ····are·bijections.· |
23 | </div> | 23 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab216"></a><h1·class="section">DecimalPos</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span> | 21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span> |
22 | ····are·bijections.· | 22 | ····are·bijections.· |
23 | </div> | 23 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab236"></a><h1·class="section">DecimalQ</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">Q</span></span> | 21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">Q</span></span> |
22 | ····are·bijections.· | 22 | ····are·bijections.· |
23 | </div> | 23 | </div> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Decimal.html#"><span·class="id"·title="library">Decimal</span></a>·<a·class="idref"·href="Coq.Strings.Ascii.html#"><span·class="id"·title="library">Ascii</span></a>·<a·class="idref"·href="Coq.Strings.String.html#"><span·class="id"·title="library">String</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Decimal.html#"><span·class="id"·title="library">Decimal</span></a>·<a·class="idref"·href="Coq.Strings.Ascii.html#"><span·class="id"·title="library">Ascii</span></a>·<a·class="idref"·href="Coq.Strings.String.html#"><span·class="id"·title="library">String</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab237"></a><h1·class="section">Conversion·between·decimal·numbers·and·Coq·strings</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | ·Pretty·straightforward,·which·is·precisely·the·point·of·the | 25 | ·Pretty·straightforward,·which·is·precisely·the·point·of·the |
26 | ····<span·class="inlinecode"><span·class="id"·title="var">Decimal.int</span></span>·datatype.·The·only·catch·is·<span·class="inlinecode"><span·class="id"·title="var">Decimal.Nil</span></span>·:·we·could | 26 | ····<span·class="inlinecode"><span·class="id"·title="var">Decimal.int</span></span>·datatype.·The·only·catch·is·<span·class="inlinecode"><span·class="id"·title="var">Decimal.Nil</span></span>·:·we·could |
27 | ····choose·to·convert·it·as·<span·class="inlinecode">""</span>·or·as·<span·class="inlinecode">"0"</span>.·In·the·first·case,·it·is | 27 | ····choose·to·convert·it·as·<span·class="inlinecode">""</span>·or·as·<span·class="inlinecode">"0"</span>.·In·the·first·case,·it·is |
28 | ····awkward·to·consider·""·(or·"-")·as·a·number,·while·in·the·second·case | 28 | ····awkward·to·consider·""·(or·"-")·as·a·number,·while·in·the·second·case |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab218"></a><h1·class="section">DecimalZ</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span> | 21 | ····Proofs·that·conversions·between·decimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span> |
22 | ····are·bijections.· | 22 | ····are·bijections.· |
23 | </div> | 23 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab213"></a><h1·class="section">HexadecimalFacts·:·some·facts·about·Hexadecimal·numbers</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Hexadecimal.html#"><span·class="id"·title="library">Hexadecimal</span></a>·<a·class="idref"·href="Coq.Arith.Arith.html#"><span·class="id"·title="library">Arith</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Hexadecimal.html#"><span·class="id"·title="library">Hexadecimal</span></a>·<a·class="idref"·href="Coq.Arith.Arith.html#"><span·class="id"·title="library">Arith</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab238"></a><h1·class="section">HexadecimalN</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">N</span></span> | 21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">N</span></span> |
22 | ····are·bijections· | 22 | ····are·bijections· |
23 | </div> | 23 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab235"></a><h1·class="section">HexadecimalNat</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span> | 21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span> |
22 | ····are·bijections.· | 22 | ····are·bijections.· |
23 | </div> | 23 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab204"></a><h1·class="section">HexadecimalPos</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span> | 21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span> |
22 | ····are·bijections.· | 22 | ····are·bijections.· |
23 | </div> | 23 | </div> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab215"></a><h1·class="section">HexadecimalQ</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">Q</span></span> | 21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">Q</span></span> |
22 | ····are·bijections.· | 22 | ····are·bijections.· |
23 | </div> | 23 | </div> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Hexadecimal.html#"><span·class="id"·title="library">Hexadecimal</span></a>·<a·class="idref"·href="Coq.Strings.Ascii.html#"><span·class="id"·title="library">Ascii</span></a>·<a·class="idref"·href="Coq.Strings.String.html#"><span·class="id"·title="library">String</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Init.Hexadecimal.html#"><span·class="id"·title="library">Hexadecimal</span></a>·<a·class="idref"·href="Coq.Strings.Ascii.html#"><span·class="id"·title="library">Ascii</span></a>·<a·class="idref"·href="Coq.Strings.String.html#"><span·class="id"·title="library">String</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab168"></a><h1·class="section">Conversion·between·hexadecimal·numbers·and·Coq·strings</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | ·Pretty·straightforward,·which·is·precisely·the·point·of·the | 25 | ·Pretty·straightforward,·which·is·precisely·the·point·of·the |
26 | ····<span·class="inlinecode"><span·class="id"·title="var">Hexadecimal.int</span></span>·datatype.·The·only·catch·is·<span·class="inlinecode"><span·class="id"·title="var">Hexadecimal.Nil</span></span>·:·we·could | 26 | ····<span·class="inlinecode"><span·class="id"·title="var">Hexadecimal.int</span></span>·datatype.·The·only·catch·is·<span·class="inlinecode"><span·class="id"·title="var">Hexadecimal.Nil</span></span>·:·we·could |
27 | ····choose·to·convert·it·as·<span·class="inlinecode">""</span>·or·as·<span·class="inlinecode">"0"</span>.·In·the·first·case,·it·is | 27 | ····choose·to·convert·it·as·<span·class="inlinecode">""</span>·or·as·<span·class="inlinecode">"0"</span>.·In·the·first·case,·it·is |
28 | ····awkward·to·consider·""·(or·"-")·as·a·number,·while·in·the·second·case | 28 | ····awkward·to·consider·""·(or·"-")·as·a·number,·while·in·the·second·case |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab166"></a><h1·class="section">HexadecimalZ</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span> | 21 | ····Proofs·that·conversions·between·hexadecimal·numbers·and·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span> |
22 | ····are·bijections.· | 22 | ····are·bijections.· |
23 | </div> | 23 | </div> |
Offset 430, 15 lines modified | Offset 430, 15 lines modified | ||
430 | <a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">exists</span></a>·<a·id="n:114"·class="idref"·href="#n:114"><span·class="id"·title="binder">n</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">,</span></a>·<span·class="id"·title="keyword">forall</span>·<a·id="m:115"·class="idref"·href="#m:115"><span·class="id"·title="binder">m</span></a>,·0<a·class="idref"·href="Coq.Structures.Orders.html#6733f1c73babd16d47d3db78628c74d6"><span·class="id"·title="notation"><=</span></a><a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:115"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#f:113"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:115"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#n:114"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZBits.html#08f35bb78d3f8b8e58903b9564c9213c"><span·class="id"·title="notation">.[</span></a><a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:115"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZBits.html#08f35bb78d3f8b8e58903b9564c9213c"><span·class="id"·title="notation">]</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation"><-></span></a><br/> | 430 | <a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">exists</span></a>·<a·id="n:114"·class="idref"·href="#n:114"><span·class="id"·title="binder">n</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">,</span></a>·<span·class="id"·title="keyword">forall</span>·<a·id="m:115"·class="idref"·href="#m:115"><span·class="id"·title="binder">m</span></a>,·0<a·class="idref"·href="Coq.Structures.Orders.html#6733f1c73babd16d47d3db78628c74d6"><span·class="id"·title="notation"><=</span></a><a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:115"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#f:113"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:115"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#n:114"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZBits.html#08f35bb78d3f8b8e58903b9564c9213c"><span·class="id"·title="notation">.[</span></a><a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:115"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZBits.html#08f35bb78d3f8b8e58903b9564c9213c"><span·class="id"·title="notation">]</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation"><-></span></a><br/> |
431 | <a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">exists</span></a>·<a·id="k:116"·class="idref"·href="#k:116"><span·class="id"·title="binder">k</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">,</span></a>·<span·class="id"·title="keyword">forall</span>·<a·id="m:117"·class="idref"·href="#m:117"><span·class="id"·title="binder">m</span></a>,·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#k:116"><span·class="id"·title="variable">k</span></a><a·class="idref"·href="Coq.Structures.Orders.html#6733f1c73babd16d47d3db78628c74d6"><span·class="id"·title="notation"><=</span></a><a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:117"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#f:113"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:117"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#f:113"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#k:116"><span·class="id"·title="variable">k</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">)</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">)</span></a>.<br/> | 431 | <a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">exists</span></a>·<a·id="k:116"·class="idref"·href="#k:116"><span·class="id"·title="binder">k</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">,</span></a>·<span·class="id"·title="keyword">forall</span>·<a·id="m:117"·class="idref"·href="#m:117"><span·class="id"·title="binder">m</span></a>,·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#k:116"><span·class="id"·title="variable">k</span></a><a·class="idref"·href="Coq.Structures.Orders.html#6733f1c73babd16d47d3db78628c74d6"><span·class="id"·title="notation"><=</span></a><a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:117"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#f:113"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#m:117"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#f:113"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZBits.html#k:116"><span·class="id"·title="variable">k</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">)</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">)</span></a>.<br/> |
432 | <br/> | 432 | <br/> |
433 | </div> | 433 | </div> |
434 | <div·class="doc"> | 434 | <div·class="doc"> |
435 | <a·id="lab | 435 | <a·id="lab234"></a><h1·class="section">Properties·of·shifts</h1> |
436 | <div·class="paragraph">·</div> | 436 | <div·class="paragraph">·</div> |
437 | ·First,·a·unified·specification·for·<span·class="inlinecode"><span·class="id"·title="var">shiftl</span></span>·:·the·<span·class="inlinecode"><span·class="id"·title="var">shiftl_spec</span></span> | 437 | ·First,·a·unified·specification·for·<span·class="inlinecode"><span·class="id"·title="var">shiftl</span></span>·:·the·<span·class="inlinecode"><span·class="id"·title="var">shiftl_spec</span></span> |
438 | ···below·(combined·with·<span·class="inlinecode"><span·class="id"·title="var">testbit_neg_r</span></span>)·is·equivalent·to | 438 | ···below·(combined·with·<span·class="inlinecode"><span·class="id"·title="var">testbit_neg_r</span></span>)·is·equivalent·to |
439 | ···<span·class="inlinecode"><span·class="id"·title="var">shiftl_spec_low</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">shiftl_spec_high</span></span>.· | 439 | ···<span·class="inlinecode"><span·class="id"·title="var">shiftl_spec_low</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">shiftl_spec_high</span></span>.· |
440 | </div> | 440 | </div> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZSgnAbs.html#"><span·class="id"·title="library">ZSgnAbs</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#"><span·class="id"·title="library">NZDiv</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZSgnAbs.html#"><span·class="id"·title="library">ZSgnAbs</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#"><span·class="id"·title="library">NZDiv</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab225"></a><h1·class="section">Euclidean·Division·for·integers,·Euclid·convention</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | ····We·use·here·the·"usual"·formulation·of·the·Euclid·Theorem | 25 | ····We·use·here·the·"usual"·formulation·of·the·Euclid·Theorem |
26 | ····<span·class="inlinecode"><span·class="id"·title="keyword">forall</span></span>·<span·class="inlinecode"><span·class="id"·title="var">a</span></span>·<span·class="inlinecode"><span·class="id"·title="var">b</span>,</span>·<span·class="inlinecode"><span·class="id"·title="var">b</span><>0</span>·<span·class="inlinecode">-></span>·<span·class="inlinecode"><span·class="id"·title="tactic">exists</span></span>·<span·class="inlinecode"><span·class="id"·title="var">r</span></span>·<span·class="inlinecode"><span·class="id"·title="var">q</span>,</span>·<span·class="inlinecode"><span·class="id"·title="var">a</span></span>·<span·class="inlinecode">=</span>·<span·class="inlinecode"><span·class="id"·title="var">b</span>*<span·class="id"·title="var">q</span>+<span·class="id"·title="var">r</span></span>·<span·class="inlinecode">/\</span>·<span·class="inlinecode">0</span>·<span·class="inlinecode"><=</span>·<span·class="inlinecode"><span·class="id"·title="var">r</span></span>·<span·class="inlinecode"><</span>·<span·class="inlinecode">|<span·class="id"·title="var">b</span>|</span>·<span·class="inlinecode"></span> | 26 | ····<span·class="inlinecode"><span·class="id"·title="keyword">forall</span></span>·<span·class="inlinecode"><span·class="id"·title="var">a</span></span>·<span·class="inlinecode"><span·class="id"·title="var">b</span>,</span>·<span·class="inlinecode"><span·class="id"·title="var">b</span><>0</span>·<span·class="inlinecode">-></span>·<span·class="inlinecode"><span·class="id"·title="tactic">exists</span></span>·<span·class="inlinecode"><span·class="id"·title="var">r</span></span>·<span·class="inlinecode"><span·class="id"·title="var">q</span>,</span>·<span·class="inlinecode"><span·class="id"·title="var">a</span></span>·<span·class="inlinecode">=</span>·<span·class="inlinecode"><span·class="id"·title="var">b</span>*<span·class="id"·title="var">q</span>+<span·class="id"·title="var">r</span></span>·<span·class="inlinecode">/\</span>·<span·class="inlinecode">0</span>·<span·class="inlinecode"><=</span>·<span·class="inlinecode"><span·class="id"·title="var">r</span></span>·<span·class="inlinecode"><</span>·<span·class="inlinecode">|<span·class="id"·title="var">b</span>|</span>·<span·class="inlinecode"></span> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZSgnAbs.html#"><span·class="id"·title="library">ZSgnAbs</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#"><span·class="id"·title="library">NZDiv</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZSgnAbs.html#"><span·class="id"·title="library">ZSgnAbs</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#"><span·class="id"·title="library">NZDiv</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab221"></a><h1·class="section">Euclidean·Division·for·integers·(Floor·convention)</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | ····We·use·here·the·convention·known·as·Floor,·or·Round-Toward-Bottom, | 25 | ····We·use·here·the·convention·known·as·Floor,·or·Round-Toward-Bottom, |
26 | ····where·<span·class="inlinecode"><span·class="id"·title="var">a</span>/<span·class="id"·title="var">b</span></span>·is·the·closest·integer·below·the·exact·fraction. | 26 | ····where·<span·class="inlinecode"><span·class="id"·title="var">a</span>/<span·class="id"·title="var">b</span></span>·is·the·closest·integer·below·the·exact·fraction. |
27 | ····It·can·be·summarized·by: | 27 | ····It·can·be·summarized·by: |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZSgnAbs.html#"><span·class="id"·title="library">ZSgnAbs</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#"><span·class="id"·title="library">NZDiv</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZSgnAbs.html#"><span·class="id"·title="library">ZSgnAbs</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#"><span·class="id"·title="library">NZDiv</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab230"></a><h1·class="section">Euclidean·Division·for·integers·(Trunc·convention)</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | ····We·use·here·the·convention·known·as·Trunc,·or·Round-Toward-Zero, | 25 | ····We·use·here·the·convention·known·as·Trunc,·or·Round-Toward-Zero, |
26 | ····where·<span·class="inlinecode"><span·class="id"·title="var">a</span>/<span·class="id"·title="var">b</span></span>·is·the·integer·with·the·largest·absolute·value·to | 26 | ····where·<span·class="inlinecode"><span·class="id"·title="var">a</span>/<span·class="id"·title="var">b</span></span>·is·the·integer·with·the·largest·absolute·value·to |
27 | ····be·between·zero·and·the·exact·fraction.·It·can·be·summarized·by: | 27 | ····be·between·zero·and·the·exact·fraction.·It·can·be·summarized·by: |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZSgnAbs.html#"><span·class="id"·title="library">ZSgnAbs</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZGcd.html#"><span·class="id"·title="library">ZGcd</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZDivTrunc.html#"><span·class="id"·title="library">ZDivTrunc</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZDivFloor.html#"><span·class="id"·title="library">ZDivFloor</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZSgnAbs.html#"><span·class="id"·title="library">ZSgnAbs</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZGcd.html#"><span·class="id"·title="library">ZGcd</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZDivTrunc.html#"><span·class="id"·title="library">ZDivTrunc</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZDivFloor.html#"><span·class="id"·title="library">ZDivFloor</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab220"></a><h1·class="section">Least·Common·Multiple</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | ·Unlike·other·functions·around,·we·will·define·lcm·below·instead·of | 25 | ·Unlike·other·functions·around,·we·will·define·lcm·below·instead·of |
26 | ··axiomatizing·it.·Indeed,·there·is·no·"prior·art"·about·lcm·in·the | 26 | ··axiomatizing·it.·Indeed,·there·is·no·"prior·art"·about·lcm·in·the |
27 | ··standard·library·to·be·compliant·with,·and·the·generic·definition | 27 | ··standard·library·to·be·compliant·with,·and·the·generic·definition |
28 | ··of·lcm·via·gcd·is·quite·reasonable. | 28 | ··of·lcm·via·gcd·is·quite·reasonable. |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#"><span·class="id"·title="library">ZMulOrder</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab229"></a><h1·class="section">Properties·of·minimum·and·maximum·specific·to·integer·numbers</h1> |
24 | </div> | 24 | </div> |
25 | <div·class="code"> | 25 | <div·class="code"> |
26 | <br/> | 26 | <br/> |
27 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="ZMaxMinProp"·class="idref"·href="#ZMaxMinProp"><span·class="id"·title="module">ZMaxMinProp</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">Z</span>·:·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#ZAxiomsMiniSig'"><span·class="id"·title="module">ZAxiomsMiniSig'</span></a>).<br/> | 27 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="ZMaxMinProp"·class="idref"·href="#ZMaxMinProp"><span·class="id"·title="module">ZMaxMinProp</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">Z</span>·:·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#ZAxiomsMiniSig'"><span·class="id"·title="module">ZAxiomsMiniSig'</span></a>).<br/> |
28 | <span·class="id"·title="keyword">Include</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#ZMulOrderProp"><span·class="id"·title="module">ZMulOrderProp</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMaxMin.html#Z"><span·class="id"·title="module">Z</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Include</span>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMulOrder.html#ZMulOrderProp"><span·class="id"·title="module">ZMulOrderProp</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZMaxMin.html#Z"><span·class="id"·title="module">Z</span></a>.<br/> |
Offset 35, 15 lines modified | Offset 35, 15 lines modified | ||
35 | <:·<a·class="idref"·href="Coq.Structures.Equalities.html#UsualDecidableTypeFull"><span·class="id"·title="module">UsualDecidableTypeFull</span></a><br/> | 35 | <:·<a·class="idref"·href="Coq.Structures.Equalities.html#UsualDecidableTypeFull"><span·class="id"·title="module">UsualDecidableTypeFull</span></a><br/> |
36 | :=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z"><span·class="id"·title="module">BinInt.Z</span></a>.<br/> | 36 | :=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z"><span·class="id"·title="module">BinInt.Z</span></a>.<br/> |
37 | <br/> | 37 | <br/> |
38 | </div> | 38 | </div> |
39 | <div·class="doc"> | 39 | <div·class="doc"> |
40 | <a·id="lab | 40 | <a·id="lab219"></a><h1·class="section">An·<span·class="inlinecode"><span·class="id"·title="var">order</span></span>·tactic·for·integers</h1> |
41 | </div> | 41 | </div> |
42 | <div·class="code"> | 42 | <div·class="code"> |
43 | <br/> | 43 | <br/> |
44 | <span·class="id"·title="keyword">Ltac</span>·<span·class="id"·title="var">z_order</span>·:=·<span·class="id"·title="var">Z.order</span>.<br/> | 44 | <span·class="id"·title="keyword">Ltac</span>·<span·class="id"·title="var">z_order</span>·:=·<span·class="id"·title="var">Z.order</span>.<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <br/> | 21 | <br/> |
22 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Lists.List.html#"><span·class="id"·title="library">List</span></a>.<br/> | 22 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Lists.List.html#"><span·class="id"·title="library">List</span></a>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab217"></a><h1·class="section">Generic·dependently-typed·operators·about·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>-ary·functions</h1> |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | ·The·type·of·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>-ary·function:·<span·class="inlinecode"><span·class="id"·title="var">nfun</span></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>·<span·class="inlinecode"><span·class="id"·title="var">B</span></span>·is | 28 | ·The·type·of·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>-ary·function:·<span·class="inlinecode"><span·class="id"·title="var">nfun</span></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>·<span·class="inlinecode"><span·class="id"·title="var">B</span></span>·is |
29 | ····<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·<span·class="inlinecode">-></span>·<span·class="inlinecode">...</span>·<span·class="inlinecode">-></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·<span·class="inlinecode">-></span>·<span·class="inlinecode"><span·class="id"·title="var">B</span></span>·with·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>·occurrences·of·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·in·this·type.· | 29 | ····<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·<span·class="inlinecode">-></span>·<span·class="inlinecode">...</span>·<span·class="inlinecode">-></span>·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·<span·class="inlinecode">-></span>·<span·class="inlinecode"><span·class="id"·title="var">B</span></span>·with·<span·class="inlinecode"><span·class="id"·title="var">n</span></span>·occurrences·of·<span·class="inlinecode"><span·class="id"·title="var">A</span></span>·in·this·type.· |
30 | </div> | 30 | </div> |
31 | <div·class="code"> | 31 | <div·class="code"> |
Offset 140, 15 lines modified | Offset 140, 15 lines modified | ||
140 | <br/> | 140 | <br/> |
141 | <span·class="id"·title="keyword">Theorem</span>·<a·id="NZDivProp.mod_small"·class="idref"·href="#NZDivProp.mod_small"><span·class="id"·title="lemma">mod_small</span></a>:·<span·class="id"·title="keyword">forall</span>·<a·id="a:37"·class="idref"·href="#a:37"><span·class="id"·title="binder">a</span></a>·<a·id="b:38"·class="idref"·href="#b:38"><span·class="id"·title="binder">b</span></a>,·0<a·class="idref"·href="Coq.Structures.Orders.html#62fc7208ddb2fa310e7ae9ec2d794c92"><span·class="id"·title="notation"><=</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:37"><span·class="id"·title="variable">a</span></a><a·class="idref"·href="Coq.Structures.Orders.html#62fc7208ddb2fa310e7ae9ec2d794c92"><span·class="id"·title="notation"><</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#b:38"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:37"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#DivModNotation.:::x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#b:38"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#a3a0575149632d194e420f6edb9b2362"><span·class="id"·title="notation">==</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:37"><span·class="id"·title="variable">a</span></a>.<br/> | 141 | <span·class="id"·title="keyword">Theorem</span>·<a·id="NZDivProp.mod_small"·class="idref"·href="#NZDivProp.mod_small"><span·class="id"·title="lemma">mod_small</span></a>:·<span·class="id"·title="keyword">forall</span>·<a·id="a:37"·class="idref"·href="#a:37"><span·class="id"·title="binder">a</span></a>·<a·id="b:38"·class="idref"·href="#b:38"><span·class="id"·title="binder">b</span></a>,·0<a·class="idref"·href="Coq.Structures.Orders.html#62fc7208ddb2fa310e7ae9ec2d794c92"><span·class="id"·title="notation"><=</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:37"><span·class="id"·title="variable">a</span></a><a·class="idref"·href="Coq.Structures.Orders.html#62fc7208ddb2fa310e7ae9ec2d794c92"><span·class="id"·title="notation"><</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#b:38"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:37"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#DivModNotation.:::x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#b:38"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#a3a0575149632d194e420f6edb9b2362"><span·class="id"·title="notation">==</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:37"><span·class="id"·title="variable">a</span></a>.<br/> |
142 | <br/> | 142 | <br/> |
143 | </div> | 143 | </div> |
144 | <div·class="doc"> | 144 | <div·class="doc"> |
145 | <a·id="lab | 145 | <a·id="lab207"></a><h1·class="section">Basic·values·of·divisions·and·modulo.</h1> |
146 | </div> | 146 | </div> |
147 | <div·class="code"> | 147 | <div·class="code"> |
148 | <br/> | 148 | <br/> |
149 | <span·class="id"·title="keyword">Lemma</span>·<a·id="NZDivProp.div_0_l"·class="idref"·href="#NZDivProp.div_0_l"><span·class="id"·title="lemma">div_0_l</span></a>:·<span·class="id"·title="keyword">forall</span>·<a·id="a:39"·class="idref"·href="#a:39"><span·class="id"·title="binder">a</span></a>,·0<a·class="idref"·href="Coq.Structures.Orders.html#LtNotation.:::x_'<'_x"><span·class="id"·title="notation"><</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:39"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·0<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#553b1e0c6dfeea0fb5d9a4a0a1c7f719"><span·class="id"·title="notation">/</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:39"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#a3a0575149632d194e420f6edb9b2362"><span·class="id"·title="notation">==</span></a>·0.<br/> | 149 | <span·class="id"·title="keyword">Lemma</span>·<a·id="NZDivProp.div_0_l"·class="idref"·href="#NZDivProp.div_0_l"><span·class="id"·title="lemma">div_0_l</span></a>:·<span·class="id"·title="keyword">forall</span>·<a·id="a:39"·class="idref"·href="#a:39"><span·class="id"·title="binder">a</span></a>,·0<a·class="idref"·href="Coq.Structures.Orders.html#LtNotation.:::x_'<'_x"><span·class="id"·title="notation"><</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:39"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·0<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#553b1e0c6dfeea0fb5d9a4a0a1c7f719"><span·class="id"·title="notation">/</span></a><a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#a:39"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#a3a0575149632d194e420f6edb9b2362"><span·class="id"·title="notation">==</span></a>·0.<br/> |
Offset 40, 15 lines modified | Offset 40, 15 lines modified | ||
40 | <span·class="id"·title="keyword">Module</span>·<a·id="NZDomainProp"·class="idref"·href="#NZDomainProp"><span·class="id"·title="module">NZDomainProp</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">NZ</span>:<a·class="idref"·href="Coq.Numbers.NatInt.NZAxioms.html#NZDomainSig'"><span·class="id"·title="module">NZDomainSig'</span></a>).<br/> | 40 | <span·class="id"·title="keyword">Module</span>·<a·id="NZDomainProp"·class="idref"·href="#NZDomainProp"><span·class="id"·title="module">NZDomainProp</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">NZ</span>:<a·class="idref"·href="Coq.Numbers.NatInt.NZAxioms.html#NZDomainSig'"><span·class="id"·title="module">NZDomainSig'</span></a>).<br/> |
41 | <span·class="id"·title="keyword">Include</span>·<a·class="idref"·href="Coq.Numbers.NatInt.NZBase.html#NZBaseProp"><span·class="id"·title="module">NZBaseProp</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDomain.html#NZ"><span·class="id"·title="module">NZ</span></a>.<br/> | 41 | <span·class="id"·title="keyword">Include</span>·<a·class="idref"·href="Coq.Numbers.NatInt.NZBase.html#NZBaseProp"><span·class="id"·title="module">NZBaseProp</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDomain.html#NZ"><span·class="id"·title="module">NZ</span></a>.<br/> |
42 | <br/> | 42 | <br/> |
43 | </div> | 43 | </div> |
44 | <div·class="doc"> | 44 | <div·class="doc"> |
45 | <a·id="lab | 45 | <a·id="lab210"></a><h1·class="section">Relationship·between·points·thanks·to·<span·class="inlinecode"><span·class="id"·title="var">succ</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">pred</span></span>.</h1> |
46 | <div·class="paragraph">·</div> | 46 | <div·class="paragraph">·</div> |
47 | ·For·any·two·points,·one·is·an·iterated·successor·of·the·other.· | 47 | ·For·any·two·points,·one·is·an·iterated·successor·of·the·other.· |
48 | </div> | 48 | </div> |
49 | <div·class="code"> | 49 | <div·class="code"> |
Offset 383, 15 lines modified | Offset 383, 15 lines modified | ||
383 | (<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">E</span>·:·<a·class="idref"·href="Coq.Numbers.NatInt.NZPow.html#NZPowProp"><span·class="id"·title="module">NZPowProp</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#A"><span·class="id"·title="module">A</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#B"><span·class="id"·title="module">B</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#D"><span·class="id"·title="module">D</span></a>)<br/> | 383 | (<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">E</span>·:·<a·class="idref"·href="Coq.Numbers.NatInt.NZPow.html#NZPowProp"><span·class="id"·title="module">NZPowProp</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#A"><span·class="id"·title="module">A</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#B"><span·class="id"·title="module">B</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#D"><span·class="id"·title="module">D</span></a>)<br/> |
384 | (<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">F</span>·:·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#NZLog2Prop"><span·class="id"·title="module">NZLog2Prop</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#A"><span·class="id"·title="module">A</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#B"><span·class="id"·title="module">B</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#C"><span·class="id"·title="module">C</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#D"><span·class="id"·title="module">D</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#E"><span·class="id"·title="module">E</span></a>).<br/> | 384 | (<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">F</span>·:·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#NZLog2Prop"><span·class="id"·title="module">NZLog2Prop</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#A"><span·class="id"·title="module">A</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#B"><span·class="id"·title="module">B</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#C"><span·class="id"·title="module">C</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#D"><span·class="id"·title="module">D</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZLog.html#E"><span·class="id"·title="module">E</span></a>).<br/> |
385 | <br/> | 385 | <br/> |
386 | </div> | 386 | </div> |
387 | <div·class="doc"> | 387 | <div·class="doc"> |
388 | <a·id="lab | 388 | <a·id="lab205"></a><h1·class="section"><span·class="inlinecode"><span·class="id"·title="var">log2_up</span></span>·:·a·binary·logarithm·that·rounds·up·instead·of·down</h1> |
389 | <div·class="paragraph">·</div> | 389 | <div·class="paragraph">·</div> |
390 | ·For·once,·we·define·instead·of·axiomatizing,·thanks·to·log2· | 390 | ·For·once,·we·define·instead·of·axiomatizing,·thanks·to·log2· |
391 | </div> | 391 | </div> |
392 | <div·class="code"> | 392 | <div·class="code"> |
Offset 312, 15 lines modified | Offset 312, 15 lines modified | ||
312 | (<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">C</span>·:·<a·class="idref"·href="Coq.Numbers.NatInt.NZMulOrder.html#NZMulOrderProp"><span·class="id"·title="module">NZMulOrderProp</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#A"><span·class="id"·title="module">A</span></a>)<br/> | 312 | (<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">C</span>·:·<a·class="idref"·href="Coq.Numbers.NatInt.NZMulOrder.html#NZMulOrderProp"><span·class="id"·title="module">NZMulOrderProp</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#A"><span·class="id"·title="module">A</span></a>)<br/> |
313 | (<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">D</span>·:·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#NZSqrtProp"><span·class="id"·title="module">NZSqrtProp</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#A"><span·class="id"·title="module">A</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#B"><span·class="id"·title="module">B</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#C"><span·class="id"·title="module">C</span></a>).<br/> | 313 | (<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">D</span>·:·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#NZSqrtProp"><span·class="id"·title="module">NZSqrtProp</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#A"><span·class="id"·title="module">A</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#B"><span·class="id"·title="module">B</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZSqrt.html#C"><span·class="id"·title="module">C</span></a>).<br/> |
314 | <br/> | 314 | <br/> |
315 | </div> | 315 | </div> |
316 | <div·class="doc"> | 316 | <div·class="doc"> |
317 | <a·id="lab | 317 | <a·id="lab206"></a><h1·class="section"><span·class="inlinecode"><span·class="id"·title="var">sqrt_up</span></span>·:·a·square·root·that·rounds·up·instead·of·down</h1> |
318 | </div> | 318 | </div> |
319 | <div·class="code"> | 319 | <div·class="code"> |
320 | <br/> | 320 | <br/> |
321 | <br/> | 321 | <br/> |
Offset 124, 15 lines modified | Offset 124, 15 lines modified | ||
124 | <br/> | 124 | <br/> |
125 | <span·class="id"·title="keyword">Theorem</span>·<a·id="NDivProp.mod_small"·class="idref"·href="#NDivProp.mod_small"><span·class="id"·title="lemma">mod_small</span></a>:·<span·class="id"·title="keyword">forall</span>·<a·id="a:25"·class="idref"·href="#a:25"><span·class="id"·title="binder">a</span></a>·<a·id="b:26"·class="idref"·href="#b:26"><span·class="id"·title="binder">b</span></a>,·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:25"><span·class="id"·title="variable">a</span></a><a·class="idref"·href="Coq.Structures.Orders.html#LtNotation.:::x_'<'_x"><span·class="id"·title="notation"><</span></a><a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#b:26"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:25"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#DivModNotation.:::x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#b:26"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#a3a0575149632d194e420f6edb9b2362"><span·class="id"·title="notation">==</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:25"><span·class="id"·title="variable">a</span></a>.<br/> | 125 | <span·class="id"·title="keyword">Theorem</span>·<a·id="NDivProp.mod_small"·class="idref"·href="#NDivProp.mod_small"><span·class="id"·title="lemma">mod_small</span></a>:·<span·class="id"·title="keyword">forall</span>·<a·id="a:25"·class="idref"·href="#a:25"><span·class="id"·title="binder">a</span></a>·<a·id="b:26"·class="idref"·href="#b:26"><span·class="id"·title="binder">b</span></a>,·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:25"><span·class="id"·title="variable">a</span></a><a·class="idref"·href="Coq.Structures.Orders.html#LtNotation.:::x_'<'_x"><span·class="id"·title="notation"><</span></a><a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#b:26"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:25"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#DivModNotation.:::x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#b:26"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#a3a0575149632d194e420f6edb9b2362"><span·class="id"·title="notation">==</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:25"><span·class="id"·title="variable">a</span></a>.<br/> |
126 | · | 126 | · |
127 | <br/> | 127 | <br/> |
128 | </div> | 128 | </div> |
129 | <div·class="doc"> | 129 | <div·class="doc"> |
130 | <a·id="lab | 130 | <a·id="lab198"></a><h1·class="section">Basic·values·of·divisions·and·modulo.</h1> |
131 | </div> | 131 | </div> |
132 | <div·class="code"> | 132 | <div·class="code"> |
133 | <br/> | 133 | <br/> |
134 | <span·class="id"·title="keyword">Lemma</span>·<a·id="NDivProp.div_0_l"·class="idref"·href="#NDivProp.div_0_l"><span·class="id"·title="lemma">div_0_l</span></a>:·<span·class="id"·title="keyword">forall</span>·<a·id="a:27"·class="idref"·href="#a:27"><span·class="id"·title="binder">a</span></a>,·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:27"><span·class="id"·title="variable">a</span></a><a·class="idref"·href="Coq.Structures.Equalities.html#9cff58ff8ba6db8841aeeecf7f406093"><span·class="id"·title="notation">~=</span></a>0·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·0<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#553b1e0c6dfeea0fb5d9a4a0a1c7f719"><span·class="id"·title="notation">/</span></a><a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:27"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#a3a0575149632d194e420f6edb9b2362"><span·class="id"·title="notation">==</span></a>·0.<br/> | 134 | <span·class="id"·title="keyword">Lemma</span>·<a·id="NDivProp.div_0_l"·class="idref"·href="#NDivProp.div_0_l"><span·class="id"·title="lemma">div_0_l</span></a>:·<span·class="id"·title="keyword">forall</span>·<a·id="a:27"·class="idref"·href="#a:27"><span·class="id"·title="binder">a</span></a>,·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:27"><span·class="id"·title="variable">a</span></a><a·class="idref"·href="Coq.Structures.Equalities.html#9cff58ff8ba6db8841aeeecf7f406093"><span·class="id"·title="notation">~=</span></a>0·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·0<a·class="idref"·href="Coq.Numbers.NatInt.NZDiv.html#553b1e0c6dfeea0fb5d9a4a0a1c7f719"><span·class="id"·title="notation">/</span></a><a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#a:27"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#a3a0575149632d194e420f6edb9b2362"><span·class="id"·title="notation">==</span></a>·0.<br/> |
135 | · | 135 | · |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#"><span·class="id"·title="library">NAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NSub.html#"><span·class="id"·title="library">NSub</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#"><span·class="id"·title="library">NDiv</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NGcd.html#"><span·class="id"·title="library">NGcd</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#"><span·class="id"·title="library">NAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NSub.html#"><span·class="id"·title="library">NSub</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NDiv.html#"><span·class="id"·title="library">NDiv</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NGcd.html#"><span·class="id"·title="library">NGcd</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab201"></a><h1·class="section">Least·Common·Multiple</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | ·Unlike·other·functions·around,·we·will·define·lcm·below·instead·of | 25 | ·Unlike·other·functions·around,·we·will·define·lcm·below·instead·of |
26 | ··axiomatizing·it.·Indeed,·there·is·no·"prior·art"·about·lcm·in·the | 26 | ··axiomatizing·it.·Indeed,·there·is·no·"prior·art"·about·lcm·in·the |
27 | ··standard·library·to·be·compliant·with,·and·the·generic·definition | 27 | ··standard·library·to·be·compliant·with,·and·the·generic·definition |
28 | ··of·lcm·via·gcd·is·quite·reasonable. | 28 | ··of·lcm·via·gcd·is·quite·reasonable. |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#"><span·class="id"·title="library">NAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NSub.html#"><span·class="id"·title="library">NSub</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#"><span·class="id"·title="library">NAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NSub.html#"><span·class="id"·title="library">NSub</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab202"></a><h1·class="section">Properties·of·minimum·and·maximum·specific·to·natural·numbers</h1> |
24 | </div> | 24 | </div> |
25 | <div·class="code"> | 25 | <div·class="code"> |
26 | <br/> | 26 | <br/> |
27 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="NMaxMinProp"·class="idref"·href="#NMaxMinProp"><span·class="id"·title="module">NMaxMinProp</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">N</span>·:·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#NAxiomsMiniSig'"><span·class="id"·title="module">NAxiomsMiniSig'</span></a>).<br/> | 27 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="NMaxMinProp"·class="idref"·href="#NMaxMinProp"><span·class="id"·title="module">NMaxMinProp</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">N</span>·:·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#NAxiomsMiniSig'"><span·class="id"·title="module">NAxiomsMiniSig'</span></a>).<br/> |
28 | <span·class="id"·title="keyword">Include</span>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NSub.html#NSubProp"><span·class="id"·title="module">NSubProp</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NMaxMin.html#N"><span·class="id"·title="module">N</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Include</span>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NSub.html#NSubProp"><span·class="id"·title="module">NSubProp</span></a>·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NMaxMin.html#N"><span·class="id"·title="module">N</span></a>.<br/> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | <br/> | 23 | <br/> |
24 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">N_scope</span>.<br/> | 24 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">N_scope</span>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab197"></a><h1·class="section"><span·class="inlinecode"><span·class="id"·title="var">BinNat.N</span></span>·already·implements·<span·class="inlinecode"><span·class="id"·title="var">NAxiomSig</span></span></h1> |
29 | </div> | 29 | </div> |
30 | <div·class="code"> | 30 | <div·class="code"> |
31 | <br/> | 31 | <br/> |
32 | <span·class="id"·title="keyword">Module</span>·<a·id="N"·class="idref"·href="#N"><span·class="id"·title="module">N</span></a>·<:·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#NAxiomsSig"><span·class="id"·title="module">NAxiomsSig</span></a>·:=·<a·class="idref"·href="Coq.NArith.BinNat.html#N"><span·class="id"·title="module">N</span></a>.<br/> | 32 | <span·class="id"·title="keyword">Module</span>·<a·id="N"·class="idref"·href="#N"><span·class="id"·title="module">N</span></a>·<:·<a·class="idref"·href="Coq.Numbers.Natural.Abstract.NAxioms.html#NAxiomsSig"><span·class="id"·title="module">NAxiomsSig</span></a>·:=·<a·class="idref"·href="Coq.NArith.BinNat.html#N"><span·class="id"·title="module">N</span></a>.<br/> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | <br/> | 23 | <br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.PArith.BinPosDef.html#"><span·class="id"·title="library">BinPosDef</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.PArith.BinPosDef.html#"><span·class="id"·title="library">BinPosDef</span></a>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab31"></a><h1·class="section">Binary·positive·numbers,·operations·and·properties</h1> |
29 | <div·class="paragraph">·</div> | 29 | <div·class="paragraph">·</div> |
30 | ·Initial·development·by·Pierre·Crégut,·CNET,·Lannion,·France· | 30 | ·Initial·development·by·Pierre·Crégut,·CNET,·Lannion,·France· |
31 | <div·class="paragraph">·</div> | 31 | <div·class="paragraph">·</div> |
32 | ·The·type·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>·and·its·constructors·<span·class="inlinecode"><span·class="id"·title="var">xI</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">xO</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">xH</span></span> | 32 | ·The·type·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>·and·its·constructors·<span·class="inlinecode"><span·class="id"·title="var">xI</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">xO</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">xH</span></span> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1"></a><h1·class="section">Binary·positive·numbers,·operations</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·Initial·development·by·Pierre·Crégut,·CNET,·Lannion,·France· | 21 | ·Initial·development·by·Pierre·Crégut,·CNET,·Lannion,·France· |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
23 | ·The·type·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>·and·its·constructors·<span·class="inlinecode"><span·class="id"·title="var">xI</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">xO</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">xH</span></span> | 23 | ·The·type·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>·and·its·constructors·<span·class="inlinecode"><span·class="id"·title="var">xI</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">xO</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">xH</span></span> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <br/> | 21 | <br/> |
22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">positive_scope</span>.<br/> | 22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">positive_scope</span>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab28"></a><h1·class="section">DecidableType·structure·for·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>·numbers</h1> |
27 | </div> | 27 | </div> |
28 | <div·class="code"> | 28 | <div·class="code"> |
29 | <br/> | 29 | <br/> |
30 | <span·class="id"·title="keyword">Module</span>·<a·id="Positive_as_DT"·class="idref"·href="#Positive_as_DT"><span·class="id"·title="module">Positive_as_DT</span></a>·<:·<a·class="idref"·href="Coq.Structures.Equalities.html#UsualDecidableTypeFull"><span·class="id"·title="module">UsualDecidableTypeFull</span></a>·:=·<a·class="idref"·href="Coq.PArith.BinPos.html#Pos"><span·class="id"·title="module">Pos</span></a>.<br/> | 30 | <span·class="id"·title="keyword">Module</span>·<a·id="Positive_as_DT"·class="idref"·href="#Positive_as_DT"><span·class="id"·title="module">Positive_as_DT</span></a>·<:·<a·class="idref"·href="Coq.Structures.Equalities.html#UsualDecidableTypeFull"><span·class="id"·title="module">UsualDecidableTypeFull</span></a>·:=·<a·class="idref"·href="Coq.PArith.BinPos.html#Pos"><span·class="id"·title="module">Pos</span></a>.<br/> |
Offset 13, 15 lines modified | Offset 13, 15 lines modified | ||
13 | <h1·class="libtitle">Library·Coq.Program.Combinators</h1> | 13 | <h1·class="libtitle">Library·Coq.Program.Combinators</h1> |
14 | <div·class="code"> | 14 | <div·class="code"> |
15 | </div> | 15 | </div> |
16 | <div·class="doc"> | 16 | <div·class="doc"> |
17 | <a·id="lab | 17 | <a·id="lab710"></a><h1·class="section">Proofs·about·standard·combinators,·exports·functional·extensionality.</h1> |
18 | <div·class="paragraph">·</div> | 18 | <div·class="paragraph">·</div> |
19 | ···Author:·Matthieu·Sozeau | 19 | ···Author:·Matthieu·Sozeau |
20 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud | 20 | ···Institution:·LRI,·CNRS·UMR·8623·-·University·Paris·Sud |
Offset 20, 15 lines modified | Offset 20, 15 lines modified | ||
20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.setoid_ring.ZArithRing.html#"><span·class="id"·title="library">ZArithRing</span></a>.<br/> | 20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.setoid_ring.ZArithRing.html#"><span·class="id"·title="library">ZArithRing</span></a>.<br/> |
21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>.<br/> | 21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>.<br/> |
22 | <br/> | 22 | <br/> |
23 | </div> | 23 | </div> |
24 | <div·class="doc"> | 24 | <div·class="doc"> |
25 | <a·id="lab | 25 | <a·id="lab133"></a><h1·class="section">Definition·of·<span·class="inlinecode"><span·class="id"·title="var">Q</span></span>·and·basic·properties</h1> |
26 | <div·class="paragraph">·</div> | 26 | <div·class="paragraph">·</div> |
27 | ·Rationals·are·pairs·of·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>·numbers.· | 27 | ·Rationals·are·pairs·of·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">positive</span></span>·numbers.· |
28 | </div> | 28 | </div> |
29 | <div·class="code"> | 29 | <div·class="code"> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <br/> | 21 | <br/> |
22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Q_scope</span>.<br/> | 22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Q_scope</span>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab130"></a><h1·class="section">DecidableType·structure·for·rational·numbers</h1> |
27 | </div> | 27 | </div> |
28 | <div·class="code"> | 28 | <div·class="code"> |
29 | <br/> | 29 | <br/> |
30 | <span·class="id"·title="keyword">Module</span>·<a·id="Q_as_DT"·class="idref"·href="#Q_as_DT"><span·class="id"·title="module">Q_as_DT</span></a>·<:·<a·class="idref"·href="Coq.Structures.Equalities.html#DecidableTypeFull"><span·class="id"·title="module">DecidableTypeFull</span></a>.<br/> | 30 | <span·class="id"·title="keyword">Module</span>·<a·id="Q_as_DT"·class="idref"·href="#Q_as_DT"><span·class="id"·title="module">Q_as_DT</span></a>·<:·<a·class="idref"·href="Coq.Structures.Equalities.html#DecidableTypeFull"><span·class="id"·title="module">DecidableTypeFull</span></a>.<br/> |
31 | <span·class="id"·title="keyword">Definition</span>·<a·id="Q_as_DT.t"·class="idref"·href="#Q_as_DT.t"><span·class="id"·title="definition">t</span></a>·:=·<a·class="idref"·href="Coq.QArith.QArith_base.html#Q"><span·class="id"·title="record">Q</span></a>.<br/> | 31 | <span·class="id"·title="keyword">Definition</span>·<a·id="Q_as_DT.t"·class="idref"·href="#Q_as_DT.t"><span·class="id"·title="definition">t</span></a>·:=·<a·class="idref"·href="Coq.QArith.QArith_base.html#Q"><span·class="id"·title="record">Q</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab144"></a><h1·class="section">An·absolute·value·for·normalized·rational·numbers.</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·Contributed·by·Cédric·Auger· | 21 | ·Contributed·by·Cédric·Auger· |
22 | </div> | 22 | </div> |
23 | <div·class="code"> | 23 | <div·class="code"> |
Offset 20, 15 lines modified | Offset 20, 15 lines modified | ||
20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.QArith.QArith_base.html#"><span·class="id"·title="library">QArith_base</span></a>.<br/> | 20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.QArith.QArith_base.html#"><span·class="id"·title="library">QArith_base</span></a>.<br/> |
21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.setoid_ring.NArithRing.html#"><span·class="id"·title="library">NArithRing</span></a>.<br/> | 21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.setoid_ring.NArithRing.html#"><span·class="id"·title="library">NArithRing</span></a>.<br/> |
22 | <br/> | 22 | <br/> |
23 | </div> | 23 | </div> |
24 | <div·class="doc"> | 24 | <div·class="doc"> |
25 | <a·id="lab | 25 | <a·id="lab145"></a><h1·class="section">field·and·ring·tactics·for·rational·numbers</h1> |
26 | </div> | 26 | </div> |
27 | <div·class="code"> | 27 | <div·class="code"> |
28 | <br/> | 28 | <br/> |
29 | <span·class="id"·title="keyword">Definition</span>·<a·id="Qsrt"·class="idref"·href="#Qsrt"><span·class="id"·title="definition">Qsrt</span></a>·:·<a·class="idref"·href="Coq.setoid_ring.Ring_theory.html#ring_theory"><span·class="id"·title="record">ring_theory</span></a>·0·1·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qplus"><span·class="id"·title="definition">Qplus</span></a>·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qmult"><span·class="id"·title="definition">Qmult</span></a>·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qminus"><span·class="id"·title="definition">Qminus</span></a>·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qopp"><span·class="id"·title="definition">Qopp</span></a>·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qeq"><span·class="id"·title="definition">Qeq</span></a>.<br/> | 29 | <span·class="id"·title="keyword">Definition</span>·<a·id="Qsrt"·class="idref"·href="#Qsrt"><span·class="id"·title="definition">Qsrt</span></a>·:·<a·class="idref"·href="Coq.setoid_ring.Ring_theory.html#ring_theory"><span·class="id"·title="record">ring_theory</span></a>·0·1·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qplus"><span·class="id"·title="definition">Qplus</span></a>·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qmult"><span·class="id"·title="definition">Qmult</span></a>·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qminus"><span·class="id"·title="definition">Qminus</span></a>·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qopp"><span·class="id"·title="definition">Qopp</span></a>·<a·class="idref"·href="Coq.QArith.QArith_base.html#Qeq"><span·class="id"·title="definition">Qeq</span></a>.<br/> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.QArith.QArith_base.html#"><span·class="id"·title="library">QArith_base</span></a>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>·<a·class="idref"·href="Coq.QArith.QOrderedType.html#"><span·class="id"·title="library">QOrderedType</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.QArith.QArith_base.html#"><span·class="id"·title="library">QArith_base</span></a>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>·<a·class="idref"·href="Coq.QArith.QOrderedType.html#"><span·class="id"·title="library">QOrderedType</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab146"></a><h1·class="section">Maximum·and·Minimum·of·two·rational·numbers</h1> |
24 | </div> | 24 | </div> |
25 | <div·class="code"> | 25 | <div·class="code"> |
26 | <br/> | 26 | <br/> |
27 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Q_scope</span>.<br/> | 27 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Q_scope</span>.<br/> |
Offset 24, 15 lines modified | Offset 24, 15 lines modified | ||
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.Max.html#"><span·class="id"·title="library">Max</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.Max.html#"><span·class="id"·title="library">Max</span></a>.<br/> |
25 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 25 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
26 | <br/> | 26 | <br/> |
27 | </div> | 27 | </div> |
28 | <div·class="doc"> | 28 | <div·class="doc"> |
29 | <a·id="lab | 29 | <a·id="lab467"></a><h1·class="section">Formalization·of·alternated·series</h1> |
30 | </div> | 30 | </div> |
31 | <div·class="code"> | 31 | <div·class="code"> |
32 | <span·class="id"·title="keyword">Definition</span>·<a·id="tg_alt"·class="idref"·href="#tg_alt"><span·class="id"·title="definition">tg_alt</span></a>·(<a·id="Un:1"·class="idref"·href="#Un:1"><span·class="id"·title="binder">Un</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·(<a·id="i:2"·class="idref"·href="#i:2"><span·class="id"·title="binder">i</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Rfunctions.html#1fc859ef9f60fc2e3a52c48371d07707"><span·class="id"·title="notation">(</span></a>-1<a·class="idref"·href="Coq.Reals.Rfunctions.html#1fc859ef9f60fc2e3a52c48371d07707"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#1fc859ef9f60fc2e3a52c48371d07707"><span·class="id"·title="notation">^</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#i:2"><span·class="id"·title="variable">i</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#Un:1"><span·class="id"·title="variable">Un</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#i:2"><span·class="id"·title="variable">i</span></a>.<br/> | 32 | <span·class="id"·title="keyword">Definition</span>·<a·id="tg_alt"·class="idref"·href="#tg_alt"><span·class="id"·title="definition">tg_alt</span></a>·(<a·id="Un:1"·class="idref"·href="#Un:1"><span·class="id"·title="binder">Un</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·(<a·id="i:2"·class="idref"·href="#i:2"><span·class="id"·title="binder">i</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Rfunctions.html#1fc859ef9f60fc2e3a52c48371d07707"><span·class="id"·title="notation">(</span></a>-1<a·class="idref"·href="Coq.Reals.Rfunctions.html#1fc859ef9f60fc2e3a52c48371d07707"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#1fc859ef9f60fc2e3a52c48371d07707"><span·class="id"·title="notation">^</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#i:2"><span·class="id"·title="variable">i</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#Un:1"><span·class="id"·title="variable">Un</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#i:2"><span·class="id"·title="variable">i</span></a>.<br/> |
33 | <span·class="id"·title="keyword">Definition</span>·<a·id="positivity_seq"·class="idref"·href="#positivity_seq"><span·class="id"·title="definition">positivity_seq</span></a>·(<a·id="Un:3"·class="idref"·href="#Un:3"><span·class="id"·title="binder">Un</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<span·class="id"·title="keyword">Prop</span>·:=·<span·class="id"·title="keyword">forall</span>·<a·id="n:4"·class="idref"·href="#n:4"><span·class="id"·title="binder">n</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·0·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#77d341fe206b2891763e25999ffddca2"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#Un:3"><span·class="id"·title="variable">Un</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#n:4"><span·class="id"·title="variable">n</span></a>.<br/> | 33 | <span·class="id"·title="keyword">Definition</span>·<a·id="positivity_seq"·class="idref"·href="#positivity_seq"><span·class="id"·title="definition">positivity_seq</span></a>·(<a·id="Un:3"·class="idref"·href="#Un:3"><span·class="id"·title="binder">Un</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<span·class="id"·title="keyword">Prop</span>·:=·<span·class="id"·title="keyword">forall</span>·<a·id="n:4"·class="idref"·href="#n:4"><span·class="id"·title="binder">n</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·0·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#77d341fe206b2891763e25999ffddca2"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#Un:3"><span·class="id"·title="variable">Un</span></a>·<a·class="idref"·href="Coq.Reals.AltSeries.html#n:4"><span·class="id"·title="variable">n</span></a>.<br/> |
34 | <br/> | 34 | <br/> |
Offset 205, 15 lines modified | Offset 205, 15 lines modified | ||
205 | <a·class="idref"·href="Coq.QArith.QArith_base.html#Qlt"><span·class="id"·title="definition">Qlt</span></a>·(2<a·class="idref"·href="Coq.QArith.QArith_base.html#90281ef6c291e34a6461b59eb05ad5cc"><span·class="id"·title="notation">#</span></a><a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#n:130"><span·class="id"·title="variable">n</span></a>)·(<a·class="idref"·href="Coq.QArith.Qabs.html#Qabs"><span·class="id"·title="definition">Qabs</span></a>·(<a·class="idref"·href="Coq.Init.Specif.html#proj1_sig"><span·class="id"·title="definition">proj1_sig</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#x:129"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#n:130"><span·class="id"·title="variable">n</span></a>))<br/> | 205 | <a·class="idref"·href="Coq.QArith.QArith_base.html#Qlt"><span·class="id"·title="definition">Qlt</span></a>·(2<a·class="idref"·href="Coq.QArith.QArith_base.html#90281ef6c291e34a6461b59eb05ad5cc"><span·class="id"·title="notation">#</span></a><a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#n:130"><span·class="id"·title="variable">n</span></a>)·(<a·class="idref"·href="Coq.QArith.Qabs.html#Qabs"><span·class="id"·title="definition">Qabs</span></a>·(<a·class="idref"·href="Coq.Init.Specif.html#proj1_sig"><span·class="id"·title="definition">proj1_sig</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#x:129"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#n:130"><span·class="id"·title="variable">n</span></a>))<br/> |
206 | <a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·0·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#d2ebceaf5a6beb2c620d48348f1f594f"><span·class="id"·title="notation">#</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#x:129"><span·class="id"·title="variable">x</span></a>.<br/> | 206 | <a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·0·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#d2ebceaf5a6beb2c620d48348f1f594f"><span·class="id"·title="notation">#</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#x:129"><span·class="id"·title="variable">x</span></a>.<br/> |
207 | <br/> | 207 | <br/> |
208 | </div> | 208 | </div> |
209 | <div·class="doc"> | 209 | <div·class="doc"> |
210 | <a·id="lab | 210 | <a·id="lab460"></a><h1·class="section">Field</h1> |
211 | </div> | 211 | </div> |
212 | <div·class="code"> | 212 | <div·class="code"> |
213 | <br/> | 213 | <br/> |
214 | <span·class="id"·title="keyword">Lemma</span>·<a·id="CRealArchimedean"·class="idref"·href="#CRealArchimedean"><span·class="id"·title="lemma">CRealArchimedean</span></a><br/> | 214 | <span·class="id"·title="keyword">Lemma</span>·<a·id="CRealArchimedean"·class="idref"·href="#CRealArchimedean"><span·class="id"·title="lemma">CRealArchimedean</span></a><br/> |
215 | :·<span·class="id"·title="keyword">forall</span>·<a·id="x:131"·class="idref"·href="#x:131"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#CReal"><span·class="id"·title="definition">CReal</span></a>,·<a·class="idref"·href="Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span·class="id"·title="notation">{</span></a>·<a·id="n:132"·class="idref"·href="#n:132"><span·class="id"·title="binder">n</span></a><a·class="idref"·href="Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span·class="id"·title="notation">:</span></a><a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>··<a·class="idref"·href="Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span·class="id"·title="notation">&</span></a>··<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#x:131"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#::CReal_scope:x_'<'_x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#inject_Q"><span·class="id"·title="definition">inject_Q</span></a>·(<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#n:132"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.QArith.QArith_base.html#90281ef6c291e34a6461b59eb05ad5cc"><span·class="id"·title="notation">#</span></a>1)·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#::CReal_scope:x_'<'_x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#x:131"><span·class="id"·title="variable">x</span></a><a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#be37424629ee4dc3c477f3466c818331"><span·class="id"·title="notation">+</span></a>2·<a·class="idref"·href="Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span·class="id"·title="notation">}</span></a>.<br/> | 215 | :·<span·class="id"·title="keyword">forall</span>·<a·id="x:131"·class="idref"·href="#x:131"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#CReal"><span·class="id"·title="definition">CReal</span></a>,·<a·class="idref"·href="Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span·class="id"·title="notation">{</span></a>·<a·id="n:132"·class="idref"·href="#n:132"><span·class="id"·title="binder">n</span></a><a·class="idref"·href="Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span·class="id"·title="notation">:</span></a><a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>··<a·class="idref"·href="Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span·class="id"·title="notation">&</span></a>··<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#x:131"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#::CReal_scope:x_'<'_x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#inject_Q"><span·class="id"·title="definition">inject_Q</span></a>·(<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#n:132"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.QArith.QArith_base.html#90281ef6c291e34a6461b59eb05ad5cc"><span·class="id"·title="notation">#</span></a>1)·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#::CReal_scope:x_'<'_x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#x:131"><span·class="id"·title="variable">x</span></a><a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#be37424629ee4dc3c477f3466c818331"><span·class="id"·title="notation">+</span></a>2·<a·class="idref"·href="Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span·class="id"·title="notation">}</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab423"></a><h1·class="section">Basic·lemmas·for·the·classical·real·numbers</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#"><span·class="id"·title="library">ConstructiveCauchyReals</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyReals.html#"><span·class="id"·title="library">ConstructiveCauchyReals</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#"><span·class="id"·title="library">ConstructiveCauchyRealsMult</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.Cauchy.ConstructiveCauchyRealsMult.html#"><span·class="id"·title="library">ConstructiveCauchyRealsMult</span></a>.<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <br/> | 21 | <br/> |
22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab493"></a><h1·class="section">DecidableType·structure·for·real·numbers</h1> |
27 | </div> | 27 | </div> |
28 | <div·class="code"> | 28 | <div·class="code"> |
29 | <br/> | 29 | <br/> |
30 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Req_dec"·class="idref"·href="#Req_dec"><span·class="id"·title="lemma">Req_dec</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="r1:1"·class="idref"·href="#r1:1"><span·class="id"·title="binder">r1</span></a>·<a·id="r2:2"·class="idref"·href="#r2:2"><span·class="id"·title="binder">r2</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Reals.ROrderedType.html#r1:1"><span·class="id"·title="variable">r1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Reals.ROrderedType.html#r2:2"><span·class="id"·title="variable">r2</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Reals.ROrderedType.html#r1:1"><span·class="id"·title="variable">r1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·<a·class="idref"·href="Coq.Reals.ROrderedType.html#r2:2"><span·class="id"·title="variable">r2</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>.<br/> | 30 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Req_dec"·class="idref"·href="#Req_dec"><span·class="id"·title="lemma">Req_dec</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="r1:1"·class="idref"·href="#r1:1"><span·class="id"·title="binder">r1</span></a>·<a·id="r2:2"·class="idref"·href="#r2:2"><span·class="id"·title="binder">r2</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Reals.ROrderedType.html#r1:1"><span·class="id"·title="variable">r1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Reals.ROrderedType.html#r2:2"><span·class="id"·title="variable">r2</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Reals.ROrderedType.html#r1:1"><span·class="id"·title="variable">r1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·<a·class="idref"·href="Coq.Reals.ROrderedType.html#r2:2"><span·class="id"·title="variable">r2</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>.<br/> |
Offset 28, 15 lines modified | Offset 28, 15 lines modified | ||
28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Ztac.html#"><span·class="id"·title="library">Ztac</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Ztac.html#"><span·class="id"·title="library">Ztac</span></a>.<br/> |
29 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 29 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
30 | <br/> | 30 | <br/> |
31 | </div> | 31 | </div> |
32 | <div·class="doc"> | 32 | <div·class="doc"> |
33 | <a·id="lab | 33 | <a·id="lab413"></a><h1·class="section">Fractional·part</h1> |
34 | <div·class="paragraph">·</div> | 34 | <div·class="paragraph">·</div> |
35 | </div> | 35 | </div> |
36 | <div·class="code"> | 36 | <div·class="code"> |
37 | <span·class="id"·title="keyword">Definition</span>·<a·id="Int_part"·class="idref"·href="#Int_part"><span·class="id"·title="definition">Int_part</span></a>·(<a·id="r:1"·class="idref"·href="#r:1"><span·class="id"·title="binder">r</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>·:=·(<a·class="idref"·href="Coq.Reals.Rdefinitions.html#up"><span·class="id"·title="definition">up</span></a>·<a·class="idref"·href="Coq.Reals.R_Ifp.html#r:1"><span·class="id"·title="variable">r</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·1)%<span·class="id"·title="var">Z</span>.<br/> | 37 | <span·class="id"·title="keyword">Definition</span>·<a·id="Int_part"·class="idref"·href="#Int_part"><span·class="id"·title="definition">Int_part</span></a>·(<a·id="r:1"·class="idref"·href="#r:1"><span·class="id"·title="binder">r</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>·:=·(<a·class="idref"·href="Coq.Reals.Rdefinitions.html#up"><span·class="id"·title="definition">up</span></a>·<a·class="idref"·href="Coq.Reals.R_Ifp.html#r:1"><span·class="id"·title="variable">r</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·1)%<span·class="id"·title="var">Z</span>.<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.Rsqrt_def.html#"><span·class="id"·title="library">Rsqrt_def</span></a>.<br/> | 21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.Rsqrt_def.html#"><span·class="id"·title="library">Rsqrt_def</span></a>.<br/> |
22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab511"></a><h1·class="section">Continuous·extension·of·Rsqrt·on·R</h1> |
27 | </div> | 27 | </div> |
28 | <div·class="code"> | 28 | <div·class="code"> |
29 | <span·class="id"·title="keyword">Definition</span>·<a·id="sqrt"·class="idref"·href="#sqrt"><span·class="id"·title="definition">sqrt</span></a>·(<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=<br/> | 29 | <span·class="id"·title="keyword">Definition</span>·<a·id="sqrt"·class="idref"·href="#sqrt"><span·class="id"·title="definition">sqrt</span></a>·(<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=<br/> |
30 | <span·class="id"·title="keyword">match</span>·<a·class="idref"·href="Coq.Reals.Rbasic_fun.html#Rcase_abs"><span·class="id"·title="lemma">Rcase_abs</span></a>·<a·class="idref"·href="Coq.Reals.R_sqrt.html#x:1"><span·class="id"·title="variable">x</span></a>·<span·class="id"·title="keyword">with</span><br/> | 30 | <span·class="id"·title="keyword">match</span>·<a·class="idref"·href="Coq.Reals.Rbasic_fun.html#Rcase_abs"><span·class="id"·title="lemma">Rcase_abs</span></a>·<a·class="idref"·href="Coq.Reals.R_sqrt.html#x:1"><span·class="id"·title="variable">x</span></a>·<span·class="id"·title="keyword">with</span><br/> |
31 | |·<a·class="idref"·href="Coq.Init.Specif.html#left"><span·class="id"·title="constructor">left</span></a>·<span·class="id"·title="var">_</span>·=>·0<br/> | 31 | |·<a·class="idref"·href="Coq.Init.Specif.html#left"><span·class="id"·title="constructor">left</span></a>·<span·class="id"·title="var">_</span>·=>·0<br/> |
32 | |·<a·class="idref"·href="Coq.Init.Specif.html#right"><span·class="id"·title="constructor">right</span></a>·<span·class="id"·title="var">a</span>·=>·<a·class="idref"·href="Coq.Reals.Rsqrt_def.html#Rsqrt"><span·class="id"·title="definition">Rsqrt</span></a>·(<a·class="idref"·href="Coq.Reals.RIneq.html#mknonnegreal"><span·class="id"·title="constructor">mknonnegreal</span></a>·<a·class="idref"·href="Coq.Reals.R_sqrt.html#x:1"><span·class="id"·title="variable">x</span></a>·(<a·class="idref"·href="Coq.Reals.RIneq.html#Rge_le"><span·class="id"·title="lemma">Rge_le</span></a>·<span·class="id"·title="var">_</span>·<span·class="id"·title="var">_</span>·<span·class="id"·title="var">a</span>))<br/> | 32 | |·<a·class="idref"·href="Coq.Init.Specif.html#right"><span·class="id"·title="constructor">right</span></a>·<span·class="id"·title="var">a</span>·=>·<a·class="idref"·href="Coq.Reals.Rsqrt_def.html#Rsqrt"><span·class="id"·title="definition">Rsqrt</span></a>·(<a·class="idref"·href="Coq.Reals.RIneq.html#mknonnegreal"><span·class="id"·title="constructor">mknonnegreal</span></a>·<a·class="idref"·href="Coq.Reals.R_sqrt.html#x:1"><span·class="id"·title="variable">x</span></a>·(<a·class="idref"·href="Coq.Reals.RIneq.html#Rge_le"><span·class="id"·title="lemma">Rge_le</span></a>·<span·class="id"·title="var">_</span>·<span·class="id"·title="var">_</span>·<span·class="id"·title="var">a</span>))<br/> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 23 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
24 | <span·class="id"·title="keyword">Implicit</span>·<span·class="id"·title="keyword">Type</span>·<span·class="id"·title="var">f</span>·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Implicit</span>·<span·class="id"·title="keyword">Type</span>·<span·class="id"·title="var">f</span>·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab543"></a><h1·class="section">Basic·operations·on·functions</h1> |
29 | </div> | 29 | </div> |
30 | <div·class="code"> | 30 | <div·class="code"> |
31 | <span·class="id"·title="keyword">Definition</span>·<a·id="plus_fct"·class="idref"·href="#plus_fct"><span·class="id"·title="definition">plus_fct</span></a>·<a·id="f1:1"·class="idref"·href="#f1:1"><span·class="id"·title="binder">f1</span></a>·<a·id="f2:2"·class="idref"·href="#f2:2"><span·class="id"·title="binder">f2</span></a>·(<a·id="x:3"·class="idref"·href="#x:3"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f1:1"><span·class="id"·title="variable">f1</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:3"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f2:2"><span·class="id"·title="variable">f2</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:3"><span·class="id"·title="variable">x</span></a>.<br/> | 31 | <span·class="id"·title="keyword">Definition</span>·<a·id="plus_fct"·class="idref"·href="#plus_fct"><span·class="id"·title="definition">plus_fct</span></a>·<a·id="f1:1"·class="idref"·href="#f1:1"><span·class="id"·title="binder">f1</span></a>·<a·id="f2:2"·class="idref"·href="#f2:2"><span·class="id"·title="binder">f2</span></a>·(<a·id="x:3"·class="idref"·href="#x:3"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f1:1"><span·class="id"·title="variable">f1</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:3"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f2:2"><span·class="id"·title="variable">f2</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:3"><span·class="id"·title="variable">x</span></a>.<br/> |
32 | <span·class="id"·title="keyword">Definition</span>·<a·id="opp_fct"·class="idref"·href="#opp_fct"><span·class="id"·title="definition">opp_fct</span></a>·<a·id="f:4"·class="idref"·href="#f:4"><span·class="id"·title="binder">f</span></a>·(<a·id="x:5"·class="idref"·href="#x:5"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f:4"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:5"><span·class="id"·title="variable">x</span></a>.<br/> | 32 | <span·class="id"·title="keyword">Definition</span>·<a·id="opp_fct"·class="idref"·href="#opp_fct"><span·class="id"·title="definition">opp_fct</span></a>·<a·id="f:4"·class="idref"·href="#f:4"><span·class="id"·title="binder">f</span></a>·(<a·id="x:5"·class="idref"·href="#x:5"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f:4"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:5"><span·class="id"·title="variable">x</span></a>.<br/> |
33 | <span·class="id"·title="keyword">Definition</span>·<a·id="mult_fct"·class="idref"·href="#mult_fct"><span·class="id"·title="definition">mult_fct</span></a>·<a·id="f1:6"·class="idref"·href="#f1:6"><span·class="id"·title="binder">f1</span></a>·<a·id="f2:7"·class="idref"·href="#f2:7"><span·class="id"·title="binder">f2</span></a>·(<a·id="x:8"·class="idref"·href="#x:8"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f1:6"><span·class="id"·title="variable">f1</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:8"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f2:7"><span·class="id"·title="variable">f2</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:8"><span·class="id"·title="variable">x</span></a>.<br/> | 33 | <span·class="id"·title="keyword">Definition</span>·<a·id="mult_fct"·class="idref"·href="#mult_fct"><span·class="id"·title="definition">mult_fct</span></a>·<a·id="f1:6"·class="idref"·href="#f1:6"><span·class="id"·title="binder">f1</span></a>·<a·id="f2:7"·class="idref"·href="#f2:7"><span·class="id"·title="binder">f2</span></a>·(<a·id="x:8"·class="idref"·href="#x:8"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f1:6"><span·class="id"·title="variable">f1</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:8"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f2:7"><span·class="id"·title="variable">f2</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:8"><span·class="id"·title="variable">x</span></a>.<br/> |
34 | <span·class="id"·title="keyword">Definition</span>·<a·id="mult_real_fct"·class="idref"·href="#mult_real_fct"><span·class="id"·title="definition">mult_real_fct</span></a>·(<a·id="a:9"·class="idref"·href="#a:9"><span·class="id"·title="binder">a</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·<a·id="f:10"·class="idref"·href="#f:10"><span·class="id"·title="binder">f</span></a>·(<a·id="x:11"·class="idref"·href="#x:11"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#a:9"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f:10"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:11"><span·class="id"·title="variable">x</span></a>.<br/> | 34 | <span·class="id"·title="keyword">Definition</span>·<a·id="mult_real_fct"·class="idref"·href="#mult_real_fct"><span·class="id"·title="definition">mult_real_fct</span></a>·(<a·id="a:9"·class="idref"·href="#a:9"><span·class="id"·title="binder">a</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·<a·id="f:10"·class="idref"·href="#f:10"><span·class="id"·title="binder">f</span></a>·(<a·id="x:11"·class="idref"·href="#x:11"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#a:9"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#f:10"><span·class="id"·title="variable">f</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis1.html#x:11"><span·class="id"·title="variable">x</span></a>.<br/> |
Offset 28, 15 lines modified | Offset 28, 15 lines modified | ||
28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Lra.html#"><span·class="id"·title="library">Lra</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Lra.html#"><span·class="id"·title="library">Lra</span></a>.<br/> |
29 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 29 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
30 | <br/> | 30 | <br/> |
31 | </div> | 31 | </div> |
32 | <div·class="doc"> | 32 | <div·class="doc"> |
33 | <a·id="lab | 33 | <a·id="lab485"></a><h1·class="section">Preliminaries·lemmas</h1> |
34 | </div> | 34 | </div> |
35 | <div·class="code"> | 35 | <div·class="code"> |
36 | <br/> | 36 | <br/> |
37 | <span·class="id"·title="keyword">Lemma</span>·<a·id="f_incr_implies_g_incr_interv"·class="idref"·href="#f_incr_implies_g_incr_interv"><span·class="id"·title="lemma">f_incr_implies_g_incr_interv</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="f:1"·class="idref"·href="#f:1"><span·class="id"·title="binder">f</span></a>·<a·id="g:2"·class="idref"·href="#g:2"><span·class="id"·title="binder">g</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<span·class="id"·title="keyword">forall</span>·<a·id="lb:3"·class="idref"·href="#lb:3"><span·class="id"·title="binder">lb</span></a>·<a·id="ub:4"·class="idref"·href="#ub:4"><span·class="id"·title="binder">ub</span></a>,<br/> | 37 | <span·class="id"·title="keyword">Lemma</span>·<a·id="f_incr_implies_g_incr_interv"·class="idref"·href="#f_incr_implies_g_incr_interv"><span·class="id"·title="lemma">f_incr_implies_g_incr_interv</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="f:1"·class="idref"·href="#f:1"><span·class="id"·title="binder">f</span></a>·<a·id="g:2"·class="idref"·href="#g:2"><span·class="id"·title="binder">g</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<span·class="id"·title="keyword">forall</span>·<a·id="lb:3"·class="idref"·href="#lb:3"><span·class="id"·title="binder">lb</span></a>·<a·id="ub:4"·class="idref"·href="#ub:4"><span·class="id"·title="binder">ub</span></a>,<br/> |
38 | <a·class="idref"·href="Coq.Reals.Ranalysis5.html#lb:3"><span·class="id"·title="variable">lb</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis5.html#ub:4"><span·class="id"·title="variable">ub</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><br/> | 38 | <a·class="idref"·href="Coq.Reals.Ranalysis5.html#lb:3"><span·class="id"·title="variable">lb</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Ranalysis5.html#ub:4"><span·class="id"·title="variable">ub</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><br/> |
Offset 34, 19 lines modified | Offset 34, 19 lines modified | ||
34 | <br/> | 34 | <br/> |
35 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 35 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
36 | <br/> | 36 | <br/> |
37 | </div> | 37 | </div> |
38 | <div·class="doc"> | 38 | <div·class="doc"> |
39 | <a·id="lab | 39 | <a·id="lab518"></a><h1·class="section">Preliminaries</h1> |
40 | <div·class="paragraph">·</div> | 40 | <div·class="paragraph">·</div> |
41 | <a·id="lab | 41 | <a·id="lab519"></a><h2·class="section">Various·generic·lemmas·which·probably·should·go·somewhere·else</h2> |
42 | </div> | 42 | </div> |
43 | <div·class="code"> | 43 | <div·class="code"> |
44 | <br/> | 44 | <br/> |
45 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Boule_half_to_interval"·class="idref"·href="#Boule_half_to_interval"><span·class="id"·title="lemma">Boule_half_to_interval</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>,<br/> | 45 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Boule_half_to_interval"·class="idref"·href="#Boule_half_to_interval"><span·class="id"·title="lemma">Boule_half_to_interval</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>,<br/> |
46 | <a·class="idref"·href="Coq.Reals.PSeries_reg.html#Boule"><span·class="id"·title="definition">Boule</span></a>·(<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>2)·<a·class="idref"·href="Coq.Reals.RIneq.html#posreal_half"><span·class="id"·title="definition">posreal_half</span></a>·<a·class="idref"·href="Coq.Reals.Ratan.html#x:1"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·0·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#fbdebc8c1a732d40499de973c18a9a13"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Reals.Ratan.html#x:1"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#fbdebc8c1a732d40499de973c18a9a13"><span·class="id"·title="notation"><=</span></a>·1.<br/> | 46 | <a·class="idref"·href="Coq.Reals.PSeries_reg.html#Boule"><span·class="id"·title="definition">Boule</span></a>·(<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>2)·<a·class="idref"·href="Coq.Reals.RIneq.html#posreal_half"><span·class="id"·title="definition">posreal_half</span></a>·<a·class="idref"·href="Coq.Reals.Ratan.html#x:1"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·0·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#fbdebc8c1a732d40499de973c18a9a13"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Reals.Ratan.html#x:1"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#fbdebc8c1a732d40499de973c18a9a13"><span·class="id"·title="notation"><=</span></a>·1.<br/> |
Offset 35, 19 lines modified | Offset 35, 19 lines modified | ||
35 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#"><span·class="id"·title="library">Rdefinitions</span></a>.<br/> | 35 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#"><span·class="id"·title="library">Rdefinitions</span></a>.<br/> |
36 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 36 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
37 | <br/> | 37 | <br/> |
38 | </div> | 38 | </div> |
39 | <div·class="doc"> | 39 | <div·class="doc"> |
40 | <a·id="lab | 40 | <a·id="lab496"></a><h1·class="section">Field·operations</h1> |
41 | <div·class="paragraph">·</div> | 41 | <div·class="paragraph">·</div> |
42 | <a·id="lab | 42 | <a·id="lab497"></a><h2·class="section">Addition</h2> |
43 | </div> | 43 | </div> |
44 | <div·class="code"> | 44 | <div·class="code"> |
45 | <br/> | 45 | <br/> |
46 | <span·class="id"·title="keyword">Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">CReal_scope</span>.<br/> | 46 | <span·class="id"·title="keyword">Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">CReal_scope</span>.<br/> |
Offset 31, 15 lines modified | Offset 31, 15 lines modified | ||
31 | <br/> | 31 | <br/> |
32 | <span·class="id"·title="keyword">Implicit</span>·<span·class="id"·title="keyword">Type</span>·<span·class="id"·title="var">r</span>·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>.<br/> | 32 | <span·class="id"·title="keyword">Implicit</span>·<span·class="id"·title="keyword">Type</span>·<span·class="id"·title="var">r</span>·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>.<br/> |
33 | <br/> | 33 | <br/> |
34 | </div> | 34 | </div> |
35 | <div·class="doc"> | 35 | <div·class="doc"> |
36 | <a·id="lab | 36 | <a·id="lab415"></a><h1·class="section">Rmin</h1> |
37 | <div·class="paragraph">·</div> | 37 | <div·class="paragraph">·</div> |
38 | </div> | 38 | </div> |
39 | <div·class="code"> | 39 | <div·class="code"> |
40 | <span·class="id"·title="keyword">Definition</span>·<a·id="Rmin"·class="idref"·href="#Rmin"><span·class="id"·title="definition">Rmin</span></a>·(<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>·<a·id="y:2"·class="idref"·href="#y:2"><span·class="id"·title="binder">y</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=<br/> | 40 | <span·class="id"·title="keyword">Definition</span>·<a·id="Rmin"·class="idref"·href="#Rmin"><span·class="id"·title="definition">Rmin</span></a>·(<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>·<a·id="y:2"·class="idref"·href="#y:2"><span·class="id"·title="binder">y</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=<br/> |
Offset 138, 15 lines modified | Offset 138, 15 lines modified | ||
138 | <span·class="id"·title="keyword">Notation</span>·<a·id="::R_scope:x_'<'_x_'<'_x"·class="idref"·href="#::R_scope:x_'<'_x_'<'_x"><span·class="id"·title="notation">"</span></a>x·<·y·<·z"···:=·(<span·class="id"·title="var">x</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>··<span·class="id"·title="var">y</span>·<a·class="idref"·href="Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span·class="id"·title="notation">/\</span></a>·<span·class="id"·title="var">y</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>··<span·class="id"·title="var">z</span>)·:·<span·class="id"·title="var">R_scope</span>.<br/> | 138 | <span·class="id"·title="keyword">Notation</span>·<a·id="::R_scope:x_'<'_x_'<'_x"·class="idref"·href="#::R_scope:x_'<'_x_'<'_x"><span·class="id"·title="notation">"</span></a>x·<·y·<·z"···:=·(<span·class="id"·title="var">x</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>··<span·class="id"·title="var">y</span>·<a·class="idref"·href="Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span·class="id"·title="notation">/\</span></a>·<span·class="id"·title="var">y</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>··<span·class="id"·title="var">z</span>)·:·<span·class="id"·title="var">R_scope</span>.<br/> |
139 | <span·class="id"·title="keyword">Notation</span>·<a·id="655439258f20e6256090528bc533ae29"·class="idref"·href="#655439258f20e6256090528bc533ae29"><span·class="id"·title="notation">"</span></a>x·<·y·<=·z"··:=·(<span·class="id"·title="var">x</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>··<span·class="id"·title="var">y</span>·<a·class="idref"·href="Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span·class="id"·title="notation">/\</span></a>·<span·class="id"·title="var">y</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#77d341fe206b2891763e25999ffddca2"><span·class="id"·title="notation"><=</span></a>·<span·class="id"·title="var">z</span>)·:·<span·class="id"·title="var">R_scope</span>.<br/> | 139 | <span·class="id"·title="keyword">Notation</span>·<a·id="655439258f20e6256090528bc533ae29"·class="idref"·href="#655439258f20e6256090528bc533ae29"><span·class="id"·title="notation">"</span></a>x·<·y·<=·z"··:=·(<span·class="id"·title="var">x</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>··<span·class="id"·title="var">y</span>·<a·class="idref"·href="Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span·class="id"·title="notation">/\</span></a>·<span·class="id"·title="var">y</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#77d341fe206b2891763e25999ffddca2"><span·class="id"·title="notation"><=</span></a>·<span·class="id"·title="var">z</span>)·:·<span·class="id"·title="var">R_scope</span>.<br/> |
140 | <br/> | 140 | <br/> |
141 | </div> | 141 | </div> |
142 | <div·class="doc"> | 142 | <div·class="doc"> |
143 | <a·id="lab | 143 | <a·id="lab466"></a><h1·class="section">Injection·from·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·to·<span·class="inlinecode"><span·class="id"·title="var">R</span></span></h1> |
144 | </div> | 144 | </div> |
145 | <div·class="code"> | 145 | <div·class="code"> |
146 | <br/> | 146 | <br/> |
147 | <span·class="id"·title="keyword">Fixpoint</span>·<a·id="IPR_2"·class="idref"·href="#IPR_2"><span·class="id"·title="definition">IPR_2</span></a>·(<a·id="p:50"·class="idref"·href="#p:50"><span·class="id"·title="binder">p</span></a>:<a·class="idref"·href="Coq.Numbers.BinNums.html#positive"><span·class="id"·title="inductive">positive</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#R"><span·class="id"·title="abbreviation">R</span></a>·:=<br/> | 147 | <span·class="id"·title="keyword">Fixpoint</span>·<a·id="IPR_2"·class="idref"·href="#IPR_2"><span·class="id"·title="definition">IPR_2</span></a>·(<a·id="p:50"·class="idref"·href="#p:50"><span·class="id"·title="binder">p</span></a>:<a·class="idref"·href="Coq.Numbers.BinNums.html#positive"><span·class="id"·title="inductive">positive</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#R"><span·class="id"·title="abbreviation">R</span></a>·:=<br/> |
148 | <span·class="id"·title="keyword">match</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#p:50"><span·class="id"·title="variable">p</span></a>·<span·class="id"·title="keyword">with</span><br/> | 148 | <span·class="id"·title="keyword">match</span>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#p:50"><span·class="id"·title="variable">p</span></a>·<span·class="id"·title="keyword">with</span><br/> |
Offset 40, 15 lines modified | Offset 40, 15 lines modified | ||
40 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> | 40 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">nat_scope</span>.<br/> |
41 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 41 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
42 | <br/> | 42 | <br/> |
43 | </div> | 43 | </div> |
44 | <div·class="doc"> | 44 | <div·class="doc"> |
45 | <a·id="lab | 45 | <a·id="lab406"></a><h1·class="section">Lemmas·about·factorial</h1> |
46 | </div> | 46 | </div> |
47 | <div·class="code"> | 47 | <div·class="code"> |
48 | <span·class="id"·title="keyword">Lemma</span>·<a·id="INR_fact_neq_0"·class="idref"·href="#INR_fact_neq_0"><span·class="id"·title="lemma">INR_fact_neq_0</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·<a·class="idref"·href="Coq.Reals.Raxioms.html#INR"><span·class="id"·title="definition">INR</span></a>·(<a·class="idref"·href="Coq.Arith.Factorial.html#fact"><span·class="id"·title="definition">fact</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#n:1"><span·class="id"·title="variable">n</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·0.<br/> | 48 | <span·class="id"·title="keyword">Lemma</span>·<a·id="INR_fact_neq_0"·class="idref"·href="#INR_fact_neq_0"><span·class="id"·title="lemma">INR_fact_neq_0</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·<a·class="idref"·href="Coq.Reals.Raxioms.html#INR"><span·class="id"·title="definition">INR</span></a>·(<a·class="idref"·href="Coq.Arith.Factorial.html#fact"><span·class="id"·title="definition">fact</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#n:1"><span·class="id"·title="variable">n</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·0.<br/> |
49 | <br/> | 49 | <br/> |
50 | <span·class="id"·title="keyword">Lemma</span>·<a·id="fact_simpl"·class="idref"·href="#fact_simpl"><span·class="id"·title="lemma">fact_simpl</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="n:2"·class="idref"·href="#n:2"><span·class="id"·title="binder">n</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·<a·class="idref"·href="Coq.Arith.Factorial.html#fact"><span·class="id"·title="definition">fact</span></a>·(<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#n:2"><span·class="id"·title="variable">n</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·(<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#n:2"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#ea2ff3d561159081cea6fb2e8113cc54"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Arith.Factorial.html#fact"><span·class="id"·title="definition">fact</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#n:2"><span·class="id"·title="variable">n</span></a>)%<span·class="id"·title="var">nat</span>.<br/> | 50 | <span·class="id"·title="keyword">Lemma</span>·<a·id="fact_simpl"·class="idref"·href="#fact_simpl"><span·class="id"·title="lemma">fact_simpl</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="n:2"·class="idref"·href="#n:2"><span·class="id"·title="binder">n</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·<a·class="idref"·href="Coq.Arith.Factorial.html#fact"><span·class="id"·title="definition">fact</span></a>·(<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#n:2"><span·class="id"·title="variable">n</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·(<a·class="idref"·href="Coq.Init.Datatypes.html#S"><span·class="id"·title="constructor">S</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#n:2"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#ea2ff3d561159081cea6fb2e8113cc54"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Arith.Factorial.html#fact"><span·class="id"·title="definition">fact</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#n:2"><span·class="id"·title="variable">n</span></a>)%<span·class="id"·title="var">nat</span>.<br/> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.R_sqrt.html#"><span·class="id"·title="library">R_sqrt</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.R_sqrt.html#"><span·class="id"·title="library">R_sqrt</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 24 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab473"></a><h1·class="section">Distance</h1> |
29 | </div> | 29 | </div> |
30 | <div·class="code"> | 30 | <div·class="code"> |
31 | <br/> | 31 | <br/> |
32 | <span·class="id"·title="keyword">Definition</span>·<a·id="dist_euc"·class="idref"·href="#dist_euc"><span·class="id"·title="definition">dist_euc</span></a>·(<a·id="x0:1"·class="idref"·href="#x0:1"><span·class="id"·title="binder">x0</span></a>·<a·id="y0:2"·class="idref"·href="#y0:2"><span·class="id"·title="binder">y0</span></a>·<a·id="x1:3"·class="idref"·href="#x1:3"><span·class="id"·title="binder">x1</span></a>·<a·id="y1:4"·class="idref"·href="#y1:4"><span·class="id"·title="binder">y1</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=<br/> | 32 | <span·class="id"·title="keyword">Definition</span>·<a·id="dist_euc"·class="idref"·href="#dist_euc"><span·class="id"·title="definition">dist_euc</span></a>·(<a·id="x0:1"·class="idref"·href="#x0:1"><span·class="id"·title="binder">x0</span></a>·<a·id="y0:2"·class="idref"·href="#y0:2"><span·class="id"·title="binder">y0</span></a>·<a·id="x1:3"·class="idref"·href="#x1:3"><span·class="id"·title="binder">x1</span></a>·<a·id="y1:4"·class="idref"·href="#y1:4"><span·class="id"·title="binder">y1</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·:=<br/> |
33 | <a·class="idref"·href="Coq.Reals.R_sqrt.html#sqrt"><span·class="id"·title="definition">sqrt</span></a>·(<a·class="idref"·href="Coq.Reals.RIneq.html#Rsqr"><span·class="id"·title="definition">Rsqr</span></a>·(<a·class="idref"·href="Coq.Reals.Rgeom.html#x0:1"><span·class="id"·title="variable">x0</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rgeom.html#x1:3"><span·class="id"·title="variable">x1</span></a>)·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.RIneq.html#Rsqr"><span·class="id"·title="definition">Rsqr</span></a>·(<a·class="idref"·href="Coq.Reals.Rgeom.html#y0:2"><span·class="id"·title="variable">y0</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rgeom.html#y1:4"><span·class="id"·title="variable">y1</span></a>)).<br/> | 33 | <a·class="idref"·href="Coq.Reals.R_sqrt.html#sqrt"><span·class="id"·title="definition">sqrt</span></a>·(<a·class="idref"·href="Coq.Reals.RIneq.html#Rsqr"><span·class="id"·title="definition">Rsqr</span></a>·(<a·class="idref"·href="Coq.Reals.Rgeom.html#x0:1"><span·class="id"·title="variable">x0</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rgeom.html#x1:3"><span·class="id"·title="variable">x1</span></a>)·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.RIneq.html#Rsqr"><span·class="id"·title="definition">Rsqr</span></a>·(<a·class="idref"·href="Coq.Reals.Rgeom.html#y0:2"><span·class="id"·title="variable">y0</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rgeom.html#y1:4"><span·class="id"·title="variable">y1</span></a>)).<br/> |
Offset 27, 15 lines modified | Offset 27, 15 lines modified | ||
27 | <br/> | 27 | <br/> |
28 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 28 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
29 | <br/> | 29 | <br/> |
30 | </div> | 30 | </div> |
31 | <div·class="doc"> | 31 | <div·class="doc"> |
32 | <a·id="lab | 32 | <a·id="lab461"></a><h1·class="section">Each·bounded·subset·of·N·has·a·maximal·element</h1> |
33 | </div> | 33 | </div> |
34 | <div·class="code"> | 34 | <div·class="code"> |
35 | <br/> | 35 | <br/> |
36 | <span·class="id"·title="keyword">Definition</span>·<a·id="Nbound"·class="idref"·href="#Nbound"><span·class="id"·title="definition">Nbound</span></a>·(<a·id="I:1"·class="idref"·href="#I:1"><span·class="id"·title="binder">I</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>)·:·<span·class="id"·title="keyword">Prop</span>·:=<br/> | 36 | <span·class="id"·title="keyword">Definition</span>·<a·id="Nbound"·class="idref"·href="#Nbound"><span·class="id"·title="definition">Nbound</span></a>·(<a·id="I:1"·class="idref"·href="#I:1"><span·class="id"·title="binder">I</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>)·:·<span·class="id"·title="keyword">Prop</span>·:=<br/> |
37 | <a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">exists</span></a>·<a·id="n:2"·class="idref"·href="#n:2"><span·class="id"·title="binder">n</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">,</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">(</span></a><span·class="id"·title="keyword">forall</span>·<a·id="i:3"·class="idref"·href="#i:3"><span·class="id"·title="binder">i</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·<a·class="idref"·href="Coq.Reals.RiemannInt_SF.html#I:1"><span·class="id"·title="variable">I</span></a>·<a·class="idref"·href="Coq.Reals.RiemannInt_SF.html#i:3"><span·class="id"·title="variable">i</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·(<a·class="idref"·href="Coq.Reals.RiemannInt_SF.html#i:3"><span·class="id"·title="variable">i</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Reals.RiemannInt_SF.html#n:2"><span·class="id"·title="variable">n</span></a>)%<span·class="id"·title="var">nat</span><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">)</span></a>.<br/> | 37 | <a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">exists</span></a>·<a·id="n:2"·class="idref"·href="#n:2"><span·class="id"·title="binder">n</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">,</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">(</span></a><span·class="id"·title="keyword">forall</span>·<a·id="i:3"·class="idref"·href="#i:3"><span·class="id"·title="binder">i</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>,·<a·class="idref"·href="Coq.Reals.RiemannInt_SF.html#I:1"><span·class="id"·title="variable">I</span></a>·<a·class="idref"·href="Coq.Reals.RiemannInt_SF.html#i:3"><span·class="id"·title="variable">i</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·(<a·class="idref"·href="Coq.Reals.RiemannInt_SF.html#i:3"><span·class="id"·title="variable">i</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Reals.RiemannInt_SF.html#n:2"><span·class="id"·title="variable">n</span></a>)%<span·class="id"·title="var">nat</span><a·class="idref"·href="Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span·class="id"·title="notation">)</span></a>.<br/> |
Offset 29, 15 lines modified | Offset 29, 15 lines modified | ||
29 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Lra.html#"><span·class="id"·title="library">Lra</span></a>.<br/> | 29 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.micromega.Lra.html#"><span·class="id"·title="library">Lra</span></a>.<br/> |
30 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 30 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
31 | <br/> | 31 | <br/> |
32 | </div> | 32 | </div> |
33 | <div·class="doc"> | 33 | <div·class="doc"> |
34 | <a·id="lab | 34 | <a·id="lab418"></a><h1·class="section">Calculus</h1> |
35 | </div> | 35 | </div> |
36 | <div·class="code"> | 36 | <div·class="code"> |
37 | <span·class="id"·title="keyword">Lemma</span>·<a·id="eps2_Rgt_R0"·class="idref"·href="#eps2_Rgt_R0"><span·class="id"·title="lemma">eps2_Rgt_R0</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="eps:1"·class="idref"·href="#eps:1"><span·class="id"·title="binder">eps</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:1"><span·class="id"·title="variable">eps</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·0·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:1"><span·class="id"·title="variable">eps</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>·2·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·0.<br/> | 37 | <span·class="id"·title="keyword">Lemma</span>·<a·id="eps2_Rgt_R0"·class="idref"·href="#eps2_Rgt_R0"><span·class="id"·title="lemma">eps2_Rgt_R0</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="eps:1"·class="idref"·href="#eps:1"><span·class="id"·title="binder">eps</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:1"><span·class="id"·title="variable">eps</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·0·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:1"><span·class="id"·title="variable">eps</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>·2·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·0.<br/> |
38 | <br/> | 38 | <br/> |
39 | <span·class="id"·title="keyword">Lemma</span>·<a·id="eps2"·class="idref"·href="#eps2"><span·class="id"·title="lemma">eps2</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="eps:2"·class="idref"·href="#eps:2"><span·class="id"·title="binder">eps</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:2"><span·class="id"·title="variable">eps</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>·2·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:2"><span·class="id"·title="variable">eps</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>·2·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:2"><span·class="id"·title="variable">eps</span></a>.<br/> | 39 | <span·class="id"·title="keyword">Lemma</span>·<a·id="eps2"·class="idref"·href="#eps2"><span·class="id"·title="lemma">eps2</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="eps:2"·class="idref"·href="#eps:2"><span·class="id"·title="binder">eps</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:2"><span·class="id"·title="variable">eps</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>·2·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:2"><span·class="id"·title="variable">eps</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>·2·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Reals.Rlimit.html#eps:2"><span·class="id"·title="variable">eps</span></a>.<br/> |
Offset 41, 15 lines modified | Offset 41, 15 lines modified | ||
41 | <br/> | 41 | <br/> |
42 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.RIneq.html#"><span·class="id"·title="library">RIneq</span></a>.<br/> | 42 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.RIneq.html#"><span·class="id"·title="library">RIneq</span></a>.<br/> |
43 | <br/> | 43 | <br/> |
44 | </div> | 44 | </div> |
45 | <div·class="doc"> | 45 | <div·class="doc"> |
46 | <a·id="lab | 46 | <a·id="lab403"></a><h1·class="section">Decidability·of·arithmetical·statements</h1> |
47 | <div·class="paragraph">·</div> | 47 | <div·class="paragraph">·</div> |
48 | ·One·can·iterate·this·lemma·and·use·classical·logic·to·decide·any | 48 | ·One·can·iterate·this·lemma·and·use·classical·logic·to·decide·any |
49 | statement·in·the·arithmetical·hierarchy.· | 49 | statement·in·the·arithmetical·hierarchy.· |
50 | </div> | 50 | </div> |
51 | <div·class="code"> | 51 | <div·class="code"> |
Offset 18, 15 lines modified | Offset 18, 15 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>·<a·class="idref"·href="Coq.Reals.Rbase.html#"><span·class="id"·title="library">Rbase</span></a>·<a·class="idref"·href="Coq.Reals.Rbasic_fun.html#"><span·class="id"·title="library">Rbasic_fun</span></a>·<a·class="idref"·href="Coq.Reals.ROrderedType.html#"><span·class="id"·title="library">ROrderedType</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>·<a·class="idref"·href="Coq.Reals.Rbase.html#"><span·class="id"·title="library">Rbase</span></a>·<a·class="idref"·href="Coq.Reals.Rbasic_fun.html#"><span·class="id"·title="library">Rbasic_fun</span></a>·<a·class="idref"·href="Coq.Reals.ROrderedType.html#"><span·class="id"·title="library">ROrderedType</span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#"><span·class="id"·title="library">GenericMinMax</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab491"></a><h1·class="section">Maximum·and·Minimum·of·two·real·numbers</h1> |
24 | </div> | 24 | </div> |
25 | <div·class="code"> | 25 | <div·class="code"> |
26 | <br/> | 26 | <br/> |
27 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 27 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
Offset 40, 15 lines modified | Offset 40, 15 lines modified | ||
40 | <br/> | 40 | <br/> |
41 | <span·class="id"·title="keyword">Lemma</span>·<a·id="exp_le_3"·class="idref"·href="#exp_le_3"><span·class="id"·title="lemma">exp_le_3</span></a>·:·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#exp"><span·class="id"·title="definition">exp</span></a>·1·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#77d341fe206b2891763e25999ffddca2"><span·class="id"·title="notation"><=</span></a>·3.<br/> | 41 | <span·class="id"·title="keyword">Lemma</span>·<a·id="exp_le_3"·class="idref"·href="#exp_le_3"><span·class="id"·title="lemma">exp_le_3</span></a>·:·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#exp"><span·class="id"·title="definition">exp</span></a>·1·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#77d341fe206b2891763e25999ffddca2"><span·class="id"·title="notation"><=</span></a>·3.<br/> |
42 | <br/> | 42 | <br/> |
43 | </div> | 43 | </div> |
44 | <div·class="doc"> | 44 | <div·class="doc"> |
45 | <a·id="lab | 45 | <a·id="lab480"></a><h1·class="section">Properties·of··Exp</h1> |
46 | </div> | 46 | </div> |
47 | <div·class="code"> | 47 | <div·class="code"> |
48 | <br/> | 48 | <br/> |
49 | <span·class="id"·title="keyword">Theorem</span>·<a·id="exp_increasing"·class="idref"·href="#exp_increasing"><span·class="id"·title="lemma">exp_increasing</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="x:14"·class="idref"·href="#x:14"><span·class="id"·title="binder">x</span></a>·<a·id="y:15"·class="idref"·href="#y:15"><span·class="id"·title="binder">y</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rpower.html#x:14"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Rpower.html#y:15"><span·class="id"·title="variable">y</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#exp"><span·class="id"·title="definition">exp</span></a>·<a·class="idref"·href="Coq.Reals.Rpower.html#x:14"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#exp"><span·class="id"·title="definition">exp</span></a>·<a·class="idref"·href="Coq.Reals.Rpower.html#y:15"><span·class="id"·title="variable">y</span></a>.<br/> | 49 | <span·class="id"·title="keyword">Theorem</span>·<a·id="exp_increasing"·class="idref"·href="#exp_increasing"><span·class="id"·title="lemma">exp_increasing</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="x:14"·class="idref"·href="#x:14"><span·class="id"·title="binder">x</span></a>·<a·id="y:15"·class="idref"·href="#y:15"><span·class="id"·title="binder">y</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rpower.html#x:14"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Rpower.html#y:15"><span·class="id"·title="variable">y</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#exp"><span·class="id"·title="definition">exp</span></a>·<a·class="idref"·href="Coq.Reals.Rpower.html#x:14"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#exp"><span·class="id"·title="definition">exp</span></a>·<a·class="idref"·href="Coq.Reals.Rpower.html#y:15"><span·class="id"·title="variable">y</span></a>.<br/> |
Offset 24, 15 lines modified | Offset 24, 15 lines modified | ||
24 | <br/> | 24 | <br/> |
25 | <span·class="id"·title="keyword">Implicit</span>·<span·class="id"·title="keyword">Type</span>·<span·class="id"·title="var">r</span>·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>.<br/> | 25 | <span·class="id"·title="keyword">Implicit</span>·<span·class="id"·title="keyword">Type</span>·<span·class="id"·title="var">r</span>·:·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>.<br/> |
26 | <br/> | 26 | <br/> |
27 | </div> | 27 | </div> |
28 | <div·class="doc"> | 28 | <div·class="doc"> |
29 | <a·id="lab | 29 | <a·id="lab516"></a><h1·class="section">Definition·of·sequence·and·properties</h1> |
30 | </div> | 30 | </div> |
31 | <div·class="code"> | 31 | <div·class="code"> |
32 | <br/> | 32 | <br/> |
33 | <span·class="id"·title="keyword">Section</span>·<a·id="sequence"·class="idref"·href="#sequence"><span·class="id"·title="section">sequence</span></a>.<br/> | 33 | <span·class="id"·title="keyword">Section</span>·<a·id="sequence"·class="idref"·href="#sequence"><span·class="id"·title="section">sequence</span></a>.<br/> |
Offset 25, 15 lines modified | Offset 25, 15 lines modified | ||
25 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Logic.Classical_Pred_Type.html#"><span·class="id"·title="library">Classical_Pred_Type</span></a>.<br/> | 25 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Logic.Classical_Pred_Type.html#"><span·class="id"·title="library">Classical_Pred_Type</span></a>.<br/> |
26 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 26 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
27 | <br/> | 27 | <br/> |
28 | </div> | 28 | </div> |
29 | <div·class="doc"> | 29 | <div·class="doc"> |
30 | <a·id="lab | 30 | <a·id="lab470"></a><h1·class="section">General·definitions·and·propositions</h1> |
31 | </div> | 31 | </div> |
32 | <div·class="code"> | 32 | <div·class="code"> |
33 | <br/> | 33 | <br/> |
34 | <span·class="id"·title="keyword">Definition</span>·<a·id="included"·class="idref"·href="#included"><span·class="id"·title="definition">included</span></a>·(<a·id="D1:1"·class="idref"·href="#D1:1"><span·class="id"·title="binder">D1</span></a>·<a·id="D2:2"·class="idref"·href="#D2:2"><span·class="id"·title="binder">D2</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>)·:·<span·class="id"·title="keyword">Prop</span>·:=·<span·class="id"·title="keyword">forall</span>·<a·id="x:3"·class="idref"·href="#x:3"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rtopology.html#D1:1"><span·class="id"·title="variable">D1</span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#x:3"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#D2:2"><span·class="id"·title="variable">D2</span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#x:3"><span·class="id"·title="variable">x</span></a>.<br/> | 34 | <span·class="id"·title="keyword">Definition</span>·<a·id="included"·class="idref"·href="#included"><span·class="id"·title="definition">included</span></a>·(<a·id="D1:1"·class="idref"·href="#D1:1"><span·class="id"·title="binder">D1</span></a>·<a·id="D2:2"·class="idref"·href="#D2:2"><span·class="id"·title="binder">D2</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>)·:·<span·class="id"·title="keyword">Prop</span>·:=·<span·class="id"·title="keyword">forall</span>·<a·id="x:3"·class="idref"·href="#x:3"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rtopology.html#D1:1"><span·class="id"·title="variable">D1</span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#x:3"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#D2:2"><span·class="id"·title="variable">D2</span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#x:3"><span·class="id"·title="variable">x</span></a>.<br/> |
35 | <span·class="id"·title="keyword">Definition</span>·<a·id="disc"·class="idref"·href="#disc"><span·class="id"·title="definition">disc</span></a>·(<a·id="x:4"·class="idref"·href="#x:4"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·(<a·id="delta:5"·class="idref"·href="#delta:5"><span·class="id"·title="binder">delta</span></a>:<a·class="idref"·href="Coq.Reals.RIneq.html#posreal"><span·class="id"·title="record">posreal</span></a>)·(<a·id="y:6"·class="idref"·href="#y:6"><span·class="id"·title="binder">y</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<span·class="id"·title="keyword">Prop</span>·:=·<a·class="idref"·href="Coq.Reals.Rbasic_fun.html#Rabs"><span·class="id"·title="definition">Rabs</span></a>·(<a·class="idref"·href="Coq.Reals.Rtopology.html#y:6"><span·class="id"·title="variable">y</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#x:4"><span·class="id"·title="variable">x</span></a>)·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#delta:5"><span·class="id"·title="variable">delta</span></a>.<br/> | 35 | <span·class="id"·title="keyword">Definition</span>·<a·id="disc"·class="idref"·href="#disc"><span·class="id"·title="definition">disc</span></a>·(<a·id="x:4"·class="idref"·href="#x:4"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·(<a·id="delta:5"·class="idref"·href="#delta:5"><span·class="id"·title="binder">delta</span></a>:<a·class="idref"·href="Coq.Reals.RIneq.html#posreal"><span·class="id"·title="record">posreal</span></a>)·(<a·id="y:6"·class="idref"·href="#y:6"><span·class="id"·title="binder">y</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<span·class="id"·title="keyword">Prop</span>·:=·<a·class="idref"·href="Coq.Reals.Rbasic_fun.html#Rabs"><span·class="id"·title="definition">Rabs</span></a>·(<a·class="idref"·href="Coq.Reals.Rtopology.html#y:6"><span·class="id"·title="variable">y</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#x:4"><span·class="id"·title="variable">x</span></a>)·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.Reals.Rtopology.html#delta:5"><span·class="id"·title="variable">delta</span></a>.<br/> |
Offset 130, 15 lines modified | Offset 130, 15 lines modified | ||
130 | 1·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:52"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#y:53"><span·class="id"·title="variable">y</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·0·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><br/> | 130 | 1·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:52"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#y:53"><span·class="id"·title="variable">y</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<>'_x"><span·class="id"·title="notation"><></span></a>·0·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a><br/> |
131 | <a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·(<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:52"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#y:53"><span·class="id"·title="variable">y</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:52"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#y:53"><span·class="id"·title="variable">y</span></a><a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">/</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">(</span></a>1·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:52"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#y:53"><span·class="id"·title="variable">y</span></a><a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">)</span></a>.<br/> | 131 | <a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·(<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:52"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#y:53"><span·class="id"·title="variable">y</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:52"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3e57074ab0a6a36b253e873a1bdac6ad"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#y:53"><span·class="id"·title="variable">y</span></a><a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">/</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">(</span></a>1·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#::R_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:52"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#tan"><span·class="id"·title="definition">tan</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#y:53"><span·class="id"·title="variable">y</span></a><a·class="idref"·href="Coq.Reals.Rdefinitions.html#3942bfc45fbeaeee49010b741755982b"><span·class="id"·title="notation">)</span></a>.<br/> |
132 | <br/> | 132 | <br/> |
133 | </div> | 133 | </div> |
134 | <div·class="doc"> | 134 | <div·class="doc"> |
135 | <a·id="lab | 135 | <a·id="lab477"></a><h1·class="section">Some·properties·of·cos,·sin·and·tan</h1> |
136 | </div> | 136 | </div> |
137 | <div·class="code"> | 137 | <div·class="code"> |
138 | <br/> | 138 | <br/> |
139 | <span·class="id"·title="keyword">Lemma</span>·<a·id="sin_2a"·class="idref"·href="#sin_2a"><span·class="id"·title="lemma">sin_2a</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="x:54"·class="idref"·href="#x:54"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#sin"><span·class="id"·title="definition">sin</span></a>·(2·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:54"><span·class="id"·title="variable">x</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·2·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#sin"><span·class="id"·title="definition">sin</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:54"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#cos"><span·class="id"·title="definition">cos</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:54"><span·class="id"·title="variable">x</span></a>.<br/> | 139 | <span·class="id"·title="keyword">Lemma</span>·<a·id="sin_2a"·class="idref"·href="#sin_2a"><span·class="id"·title="lemma">sin_2a</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="x:54"·class="idref"·href="#x:54"><span·class="id"·title="binder">x</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>,·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#sin"><span·class="id"·title="definition">sin</span></a>·(2·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:54"><span·class="id"·title="variable">x</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·2·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#sin"><span·class="id"·title="definition">sin</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:54"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#cos"><span·class="id"·title="definition">cos</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo1.html#x:54"><span·class="id"·title="variable">x</span></a>.<br/> |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.Rbase.html#"><span·class="id"·title="library">Rbase</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#"><span·class="id"·title="library">Rfunctions</span></a>·<a·class="idref"·href="Coq.Reals.SeqSeries.html#"><span·class="id"·title="library">SeqSeries</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_fun.html#"><span·class="id"·title="library">Rtrigo_fun</span></a>·<a·class="idref"·href="Coq.Arith.Max.html#"><span·class="id"·title="library">Max</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Reals.Rbase.html#"><span·class="id"·title="library">Rbase</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#"><span·class="id"·title="library">Rfunctions</span></a>·<a·class="idref"·href="Coq.Reals.SeqSeries.html#"><span·class="id"·title="library">SeqSeries</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_fun.html#"><span·class="id"·title="library">Rtrigo_fun</span></a>·<a·class="idref"·href="Coq.Arith.Max.html#"><span·class="id"·title="library">Max</span></a>.<br/> |
20 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 20 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
21 | <br/> | 21 | <br/> |
22 | </div> | 22 | </div> |
23 | <div·class="doc"> | 23 | <div·class="doc"> |
24 | <a·id="lab | 24 | <a·id="lab513"></a><h1·class="section">Definition·of·exponential</h1> |
25 | </div> | 25 | </div> |
26 | <div·class="code"> | 26 | <div·class="code"> |
27 | <span·class="id"·title="keyword">Definition</span>·<a·id="exp_in"·class="idref"·href="#exp_in"><span·class="id"·title="definition">exp_in</span></a>·(<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>·<a·id="l:2"·class="idref"·href="#l:2"><span·class="id"·title="binder">l</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<span·class="id"·title="keyword">Prop</span>·:=<br/> | 27 | <span·class="id"·title="keyword">Definition</span>·<a·id="exp_in"·class="idref"·href="#exp_in"><span·class="id"·title="definition">exp_in</span></a>·(<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>·<a·id="l:2"·class="idref"·href="#l:2"><span·class="id"·title="binder">l</span></a>:<a·class="idref"·href="Coq.Reals.Rdefinitions.html#RbaseSymbolsImpl.R"><span·class="id"·title="axiom">R</span></a>)·:·<span·class="id"·title="keyword">Prop</span>·:=<br/> |
28 | <a·class="idref"·href="Coq.Reals.Rfunctions.html#infinite_sum"><span·class="id"·title="definition">infinite_sum</span></a>·(<span·class="id"·title="keyword">fun</span>·<a·id="i:3"·class="idref"·href="#i:3"><span·class="id"·title="binder">i</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·=>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>·<a·class="idref"·href="Coq.Reals.Raxioms.html#INR"><span·class="id"·title="definition">INR</span></a>·(<a·class="idref"·href="Coq.Arith.Factorial.html#fact"><span·class="id"·title="definition">fact</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#i:3"><span·class="id"·title="variable">i</span></a>)·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#x:1"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#1fc859ef9f60fc2e3a52c48371d07707"><span·class="id"·title="notation">^</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#i:3"><span·class="id"·title="variable">i</span></a>)·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#l:2"><span·class="id"·title="variable">l</span></a>.<br/> | 28 | <a·class="idref"·href="Coq.Reals.Rfunctions.html#infinite_sum"><span·class="id"·title="definition">infinite_sum</span></a>·(<span·class="id"·title="keyword">fun</span>·<a·id="i:3"·class="idref"·href="#i:3"><span·class="id"·title="binder">i</span></a>:<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·=>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#2299a6ef56270a66cc1b95489d0f6e3a"><span·class="id"·title="notation">/</span></a>·<a·class="idref"·href="Coq.Reals.Raxioms.html#INR"><span·class="id"·title="definition">INR</span></a>·(<a·class="idref"·href="Coq.Arith.Factorial.html#fact"><span·class="id"·title="definition">fact</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#i:3"><span·class="id"·title="variable">i</span></a>)·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#e1dae7ed53bffa765009199d058dd327"><span·class="id"·title="notation">*</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#x:1"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Reals.Rfunctions.html#1fc859ef9f60fc2e3a52c48371d07707"><span·class="id"·title="notation">^</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#i:3"><span·class="id"·title="variable">i</span></a>)·<a·class="idref"·href="Coq.Reals.Rtrigo_def.html#l:2"><span·class="id"·title="variable">l</span></a>.<br/> |
29 | <br/> | 29 | <br/> |
Offset 27, 15 lines modified | Offset 27, 15 lines modified | ||
27 | <br/> | 27 | <br/> |
28 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> | 28 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">R_scope</span>.<br/> |
29 | <br/> | 29 | <br/> |
30 | </div> | 30 | </div> |
31 | <div·class="doc"> | 31 | <div·class="doc"> |
32 | <a·id="lab | 32 | <a·id="lab505"></a><h1·class="section">Bounds·of·expressions·with·trigonometric·functions</h1> |
33 | </div> | 33 | </div> |
34 | <div·class="code"> | 34 | <div·class="code"> |
35 | <br/> | 35 | <br/> |
36 | <span·class="id"·title="keyword">Lemma</span>·<a·id="sin2_bound"·class="idref"·href="#sin2_bound"><span·class="id"·title="lemma">sin2_bound</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>,<br/> | 36 | <span·class="id"·title="keyword">Lemma</span>·<a·id="sin2_bound"·class="idref"·href="#sin2_bound"><span·class="id"·title="lemma">sin2_bound</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>,<br/> |
37 | 0·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#fbdebc8c1a732d40499de973c18a9a13"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Reals.RIneq.html#2774338496db27b8a3a3c51e5609a509"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Reals.Rtrigo_def.html#sin"><span·class="id"·title="definition">sin</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_facts.html#x:1"><span·class="id"·title="variable">x</span></a><a·class="idref"·href="Coq.Reals.RIneq.html#2774338496db27b8a3a3c51e5609a509"><span·class="id"·title="notation">)²</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#fbdebc8c1a732d40499de973c18a9a13"><span·class="id"·title="notation"><=</span></a>·1.<br/> | 37 | 0·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#fbdebc8c1a732d40499de973c18a9a13"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.Reals.RIneq.html#2774338496db27b8a3a3c51e5609a509"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.Reals.Rtrigo_def.html#sin"><span·class="id"·title="definition">sin</span></a>·<a·class="idref"·href="Coq.Reals.Rtrigo_facts.html#x:1"><span·class="id"·title="variable">x</span></a><a·class="idref"·href="Coq.Reals.RIneq.html#2774338496db27b8a3a3c51e5609a509"><span·class="id"·title="notation">)²</span></a>·<a·class="idref"·href="Coq.Reals.Rdefinitions.html#fbdebc8c1a732d40499de973c18a9a13"><span·class="id"·title="notation"><=</span></a>·1.<br/> |
Offset 15, 16 lines modified | Offset 15, 16 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1022"></a><h1·class="section">Some·properties·of·the·operators·on·relations</h1> |
20 | <a·id="lab | 20 | <a·id="lab1023"></a><h1·class="section">Initial·version·by·Bruno·Barras</h1> |
21 | </div> | 21 | </div> |
22 | <div·class="code"> | 22 | <div·class="code"> |
23 | <br/> | 23 | <br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Relations.Relation_Definitions.html#"><span·class="id"·title="library">Relation_Definitions</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Relations.Relation_Definitions.html#"><span·class="id"·title="library">Relation_Definitions</span></a>.<br/> |
25 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Relations.Relation_Operators.html#"><span·class="id"·title="library">Relation_Operators</span></a>.<br/> | 25 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Relations.Relation_Operators.html#"><span·class="id"·title="library">Relation_Operators</span></a>.<br/> |
Offset 15, 34 lines modified | Offset 15, 34 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab1026"></a><h1·class="section">Some·operators·on·relations</h1> |
20 | <a·id="lab | 20 | <a·id="lab1027"></a><h1·class="section">Initial·authors:·Bruno·Barras,·Cristina·Cornes</h1> |
21 | <a·id="lab | 21 | <a·id="lab1028"></a><h1·class="section">···································································</h1> |
22 | <a·id="lab | 22 | <a·id="lab1029"></a><h1·class="section">Some·of·the·initial·definitions·were·taken·from·:</h1> |
23 | <a·id="lab | 23 | <a·id="lab1030"></a><h1·class="section">Constructing·Recursion·Operators·in·Type·Theory</h1> |
24 | <a·id="lab31 | 24 | <a·id="lab1031"></a><h1·class="section">L.·Paulson··JSC·(1986)·2,·325-355</h1> |
25 | <a·id="lab | 25 | <a·id="lab1032"></a><h1·class="section">···································································</h1> |
26 | <a·id="lab | 26 | <a·id="lab1033"></a><h1·class="section">Further·extensions·by·Pierre·Castéran</h1> |
27 | </div> | 27 | </div> |
28 | <div·class="code"> | 28 | <div·class="code"> |
29 | <br/> | 29 | <br/> |
30 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Relations.Relation_Definitions.html#"><span·class="id"·title="library">Relation_Definitions</span></a>.<br/> | 30 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Relations.Relation_Definitions.html#"><span·class="id"·title="library">Relation_Definitions</span></a>.<br/> |
31 | <br/> | 31 | <br/> |
32 | </div> | 32 | </div> |
33 | <div·class="doc"> | 33 | <div·class="doc"> |
34 | <a·id="lab | 34 | <a·id="lab1034"></a><h2·class="section">Transitive·closure</h2> |
35 | </div> | 35 | </div> |
36 | <div·class="code"> | 36 | <div·class="code"> |
37 | <br/> | 37 | <br/> |
38 | <span·class="id"·title="keyword">Section</span>·<a·id="Transitive_Closure"·class="idref"·href="#Transitive_Closure"><span·class="id"·title="section">Transitive_Closure</span></a>.<br/> | 38 | <span·class="id"·title="keyword">Section</span>·<a·id="Transitive_Closure"·class="idref"·href="#Transitive_Closure"><span·class="id"·title="section">Transitive_Closure</span></a>.<br/> |
39 | <span·class="id"·title="keyword">Variable</span>·<a·id="Transitive_Closure.A"·class="idref"·href="#Transitive_Closure.A"><span·class="id"·title="variable">A</span></a>·:·<span·class="id"·title="keyword">Type</span>.<br/> | 39 | <span·class="id"·title="keyword">Variable</span>·<a·id="Transitive_Closure.A"·class="idref"·href="#Transitive_Closure.A"><span·class="id"·title="variable">A</span></a>·:·<span·class="id"·title="keyword">Type</span>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab640"></a><h1·class="section">Circular·Shifts·(aka·Cyclic·Permutations)</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·The·main·inductive·<span·class="inlinecode"><span·class="id"·title="var">CPermutation</span></span>·relates·lists·up·to·circular·shifts·of·their·elements. | 21 | ·The·main·inductive·<span·class="inlinecode"><span·class="id"·title="var">CPermutation</span></span>·relates·lists·up·to·circular·shifts·of·their·elements. |
22 | <div·class="paragraph">·</div> | 22 | <div·class="paragraph">·</div> |
Offset 36, 19 lines modified | Offset 36, 19 lines modified | ||
36 | <br/> | 36 | <br/> |
37 | <span·class="id"·title="keyword">Section</span>·<a·id="defs"·class="idref"·href="#defs"><span·class="id"·title="section">defs</span></a>.<br/> | 37 | <span·class="id"·title="keyword">Section</span>·<a·id="defs"·class="idref"·href="#defs"><span·class="id"·title="section">defs</span></a>.<br/> |
38 | <br/> | 38 | <br/> |
39 | </div> | 39 | </div> |
40 | <div·class="doc"> | 40 | <div·class="doc"> |
41 | <a·id="lab | 41 | <a·id="lab630"></a><h1·class="section">Trees·and·heap·trees</h1> |
42 | <div·class="paragraph">·</div> | 42 | <div·class="paragraph">·</div> |
43 | <a·id="lab | 43 | <a·id="lab631"></a><h2·class="section">Definition·of·trees·over·an·ordered·set</h2> |
44 | </div> | 44 | </div> |
45 | <div·class="code"> | 45 | <div·class="code"> |
46 | <br/> | 46 | <br/> |
47 | <span·class="id"·title="keyword">Variable</span>·<a·id="defs.A"·class="idref"·href="#defs.A"><span·class="id"·title="variable">A</span></a>·:·<span·class="id"·title="keyword">Type</span>.<br/> | 47 | <span·class="id"·title="keyword">Variable</span>·<a·id="defs.A"·class="idref"·href="#defs.A"><span·class="id"·title="variable">A</span></a>·:·<span·class="id"·title="keyword">Type</span>.<br/> |
48 | <span·class="id"·title="keyword">Variable</span>·<a·id="defs.leA"·class="idref"·href="#defs.leA"><span·class="id"·title="variable">leA</span></a>·:·<a·class="idref"·href="Coq.Relations.Relation_Definitions.html#relation"><span·class="id"·title="definition">relation</span></a>·<a·class="idref"·href="Coq.Sorting.Heap.html#defs.A"><span·class="id"·title="variable">A</span></a>.<br/> | 48 | <span·class="id"·title="keyword">Variable</span>·<a·id="defs.leA"·class="idref"·href="#defs.leA"><span·class="id"·title="variable">leA</span></a>·:·<a·class="idref"·href="Coq.Relations.Relation_Definitions.html#relation"><span·class="id"·title="definition">relation</span></a>·<a·class="idref"·href="Coq.Sorting.Heap.html#defs.A"><span·class="id"·title="variable">A</span></a>.<br/> |
Offset 53, 15 lines modified | Offset 53, 15 lines modified | ||
53 | <br/> | 53 | <br/> |
54 | <span·class="id"·title="keyword">Section</span>·<a·id="Permut"·class="idref"·href="#Permut"><span·class="id"·title="section">Permut</span></a>.<br/> | 54 | <span·class="id"·title="keyword">Section</span>·<a·id="Permut"·class="idref"·href="#Permut"><span·class="id"·title="section">Permut</span></a>.<br/> |
55 | <br/> | 55 | <br/> |
56 | </div> | 56 | </div> |
57 | <div·class="doc"> | 57 | <div·class="doc"> |
58 | <a·id="lab | 58 | <a·id="lab627"></a><h1·class="section">From·lists·to·multisets</h1> |
59 | </div> | 59 | </div> |
60 | <div·class="code"> | 60 | <div·class="code"> |
61 | <br/> | 61 | <br/> |
62 | <span·class="id"·title="keyword">Variable</span>·<a·id="Permut.A"·class="idref"·href="#Permut.A"><span·class="id"·title="variable">A</span></a>·:·<span·class="id"·title="keyword">Type</span>.<br/> | 62 | <span·class="id"·title="keyword">Variable</span>·<a·id="Permut.A"·class="idref"·href="#Permut.A"><span·class="id"·title="variable">A</span></a>·:·<span·class="id"·title="keyword">Type</span>.<br/> |
63 | <span·class="id"·title="keyword">Variable</span>·<a·id="Permut.eqA"·class="idref"·href="#Permut.eqA"><span·class="id"·title="variable">eqA</span></a>·:·<a·class="idref"·href="Coq.Relations.Relation_Definitions.html#relation"><span·class="id"·title="definition">relation</span></a>·<a·class="idref"·href="Coq.Sorting.PermutSetoid.html#Permut.A"><span·class="id"·title="variable">A</span></a>.<br/> | 63 | <span·class="id"·title="keyword">Variable</span>·<a·id="Permut.eqA"·class="idref"·href="#Permut.eqA"><span·class="id"·title="variable">eqA</span></a>·:·<a·class="idref"·href="Coq.Relations.Relation_Definitions.html#relation"><span·class="id"·title="definition">relation</span></a>·<a·class="idref"·href="Coq.Sorting.PermutSetoid.html#Permut.A"><span·class="id"·title="variable">A</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab626"></a><h1·class="section">List·permutations·as·a·composition·of·adjacent·transpositions</h1> |
20 | </div> | 20 | </div> |
21 | <div·class="code"> | 21 | <div·class="code"> |
22 | <br/> | 22 | <br/> |
23 | <br/> | 23 | <br/> |
Offset 27, 15 lines modified | Offset 27, 15 lines modified | ||
27 | <br/> | 27 | <br/> |
28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>·<a·class="idref"·href="Coq.PArith.BinPos.html#"><span·class="id"·title="library">BinPos</span></a>·<a·class="idref"·href="Coq.NArith.BinNat.html#"><span·class="id"·title="library">BinNat</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#"><span·class="id"·title="library">PeanoNat</span></a>·<a·class="idref"·href="Coq.NArith.Nnat.html#"><span·class="id"·title="library">Nnat</span></a>·<a·class="idref"·href="Coq.Strings.Byte.html#"><span·class="id"·title="library">Coq.Strings.Byte</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>·<a·class="idref"·href="Coq.PArith.BinPos.html#"><span·class="id"·title="library">BinPos</span></a>·<a·class="idref"·href="Coq.NArith.BinNat.html#"><span·class="id"·title="library">BinNat</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#"><span·class="id"·title="library">PeanoNat</span></a>·<a·class="idref"·href="Coq.NArith.Nnat.html#"><span·class="id"·title="library">Nnat</span></a>·<a·class="idref"·href="Coq.Strings.Byte.html#"><span·class="id"·title="library">Coq.Strings.Byte</span></a>.<br/> |
29 | <br/> | 29 | <br/> |
30 | </div> | 30 | </div> |
31 | <div·class="doc"> | 31 | <div·class="doc"> |
32 | <a·id="lab | 32 | <a·id="lab612"></a><h1·class="section">Definition·of·ascii·characters</h1> |
33 | <div·class="paragraph">·</div> | 33 | <div·class="paragraph">·</div> |
34 | ·Definition·of·ascii·character·as·a·8·bits·constructor· | 34 | ·Definition·of·ascii·character·as·a·8·bits·constructor· |
35 | </div> | 35 | </div> |
36 | <div·class="code"> | 36 | <div·class="code"> |
Offset 30, 15 lines modified | Offset 30, 15 lines modified | ||
30 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>.<br/> | 30 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Bool.Bool.html#"><span·class="id"·title="library">Bool</span></a>.<br/> |
31 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Strings.Byte.html#"><span·class="id"·title="library">Coq.Strings.Byte</span></a>.<br/> | 31 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Strings.Byte.html#"><span·class="id"·title="library">Coq.Strings.Byte</span></a>.<br/> |
32 | <br/> | 32 | <br/> |
33 | </div> | 33 | </div> |
34 | <div·class="doc"> | 34 | <div·class="doc"> |
35 | <a·id="lab | 35 | <a·id="lab615"></a><h3·class="section">Definition·of·strings</h3> |
36 | <div·class="paragraph">·</div> | 36 | <div·class="paragraph">·</div> |
37 | ·Implementation·of·string·as·list·of·ascii·characters· | 37 | ·Implementation·of·string·as·list·of·ascii·characters· |
38 | </div> | 38 | </div> |
39 | <div·class="code"> | 39 | <div·class="code"> |
Offset 26, 39 lines modified | Offset 26, 39 lines modified | ||
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | NB:·This·file·is·here·only·for·compatibility·with·earlier·version·of | 28 | NB:·This·file·is·here·only·for·compatibility·with·earlier·version·of |
29 | ····<span·class="inlinecode"><span·class="id"·title="var">FSets</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">FMap</span></span>.·Please·use·<span·class="inlinecode"><span·class="id"·title="var">Structures</span>/<span·class="id"·title="var">Equalities.v</span></span>·directly·now.· | 29 | ····<span·class="inlinecode"><span·class="id"·title="var">FSets</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">FMap</span></span>.·Please·use·<span·class="inlinecode"><span·class="id"·title="var">Structures</span>/<span·class="id"·title="var">Equalities.v</span></span>·directly·now.· |
30 | <div·class="paragraph">·</div> | 30 | <div·class="paragraph">·</div> |
31 | <a·id="lab | 31 | <a·id="lab580"></a><h1·class="section">Types·with·Equalities,·and·nothing·more·(for·subtyping·purpose)</h1> |
32 | </div> | 32 | </div> |
33 | <div·class="code"> | 33 | <div·class="code"> |
34 | <br/> | 34 | <br/> |
35 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="EqualityType"·class="idref"·href="#EqualityType"><span·class="id"·title="module">EqualityType</span></a>·:=·<a·class="idref"·href="Coq.Structures.Equalities.html#EqualityTypeOrig"><span·class="id"·title="module">Equalities.EqualityTypeOrig</span></a>.<br/> | 35 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="EqualityType"·class="idref"·href="#EqualityType"><span·class="id"·title="module">EqualityType</span></a>·:=·<a·class="idref"·href="Coq.Structures.Equalities.html#EqualityTypeOrig"><span·class="id"·title="module">Equalities.EqualityTypeOrig</span></a>.<br/> |
36 | <br/> | 36 | <br/> |
37 | </div> | 37 | </div> |
38 | <div·class="doc"> | 38 | <div·class="doc"> |
39 | <a·id="lab | 39 | <a·id="lab581"></a><h1·class="section">Types·with·decidable·Equalities·(but·no·ordering)</h1> |
40 | </div> | 40 | </div> |
41 | <div·class="code"> | 41 | <div·class="code"> |
42 | <br/> | 42 | <br/> |
43 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="DecidableType"·class="idref"·href="#DecidableType"><span·class="id"·title="module">DecidableType</span></a>·:=·<a·class="idref"·href="Coq.Structures.Equalities.html#DecidableTypeOrig"><span·class="id"·title="module">Equalities.DecidableTypeOrig</span></a>.<br/> | 43 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="DecidableType"·class="idref"·href="#DecidableType"><span·class="id"·title="module">DecidableType</span></a>·:=·<a·class="idref"·href="Coq.Structures.Equalities.html#DecidableTypeOrig"><span·class="id"·title="module">Equalities.DecidableTypeOrig</span></a>.<br/> |
44 | <br/> | 44 | <br/> |
45 | </div> | 45 | </div> |
46 | <div·class="doc"> | 46 | <div·class="doc"> |
47 | <a·id="lab | 47 | <a·id="lab582"></a><h1·class="section">Additional·notions·about·keys·and·datas·used·in·FMap</h1> |
48 | </div> | 48 | </div> |
49 | <div·class="code"> | 49 | <div·class="code"> |
50 | <br/> | 50 | <br/> |
51 | <span·class="id"·title="keyword">Module</span>·<a·id="KeyDecidableType"·class="idref"·href="#KeyDecidableType"><span·class="id"·title="module">KeyDecidableType</span></a>(<span·class="id"·title="var">D</span>:<a·class="idref"·href="Coq.Structures.DecidableType.html#DecidableType"><span·class="id"·title="module">DecidableType</span></a>).<br/> | 51 | <span·class="id"·title="keyword">Module</span>·<a·id="KeyDecidableType"·class="idref"·href="#KeyDecidableType"><span·class="id"·title="module">KeyDecidableType</span></a>(<span·class="id"·title="var">D</span>:<a·class="idref"·href="Coq.Structures.DecidableType.html#DecidableType"><span·class="id"·title="module">DecidableType</span></a>).<br/> |
52 | <span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">D</span>.<br/> | 52 | <span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">D</span>.<br/> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | </div> | 23 | </div> |
24 | <div·class="doc"> | 24 | <div·class="doc"> |
25 | NB:·This·file·is·here·only·for·compatibility·with·earlier·version·of | 25 | NB:·This·file·is·here·only·for·compatibility·with·earlier·version·of |
26 | ····<span·class="inlinecode"><span·class="id"·title="var">FSets</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">FMap</span></span>.·Please·use·<span·class="inlinecode"><span·class="id"·title="var">Structures</span>/<span·class="id"·title="var">Equalities.v</span></span>·directly·now.· | 26 | ····<span·class="inlinecode"><span·class="id"·title="var">FSets</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">FMap</span></span>.·Please·use·<span·class="inlinecode"><span·class="id"·title="var">Structures</span>/<span·class="id"·title="var">Equalities.v</span></span>·directly·now.· |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | <a·id="lab | 28 | <a·id="lab558"></a><h1·class="section">Examples·of·Decidable·Type·structures.</h1> |
29 | <div·class="paragraph">·</div> | 29 | <div·class="paragraph">·</div> |
30 | ·A·particular·case·of·<span·class="inlinecode"><span·class="id"·title="var">DecidableType</span></span>·where | 30 | ·A·particular·case·of·<span·class="inlinecode"><span·class="id"·title="var">DecidableType</span></span>·where |
31 | ····the·equality·is·the·usual·one·of·Coq.· | 31 | ····the·equality·is·the·usual·one·of·Coq.· |
32 | </div> | 32 | </div> |
33 | <div·class="code"> | 33 | <div·class="code"> |
Offset 35, 29 lines modified | Offset 35, 29 lines modified | ||
35 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="Nop"·class="idref"·href="#Nop"><span·class="id"·title="module">Nop</span></a>.<br/> | 35 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="Nop"·class="idref"·href="#Nop"><span·class="id"·title="module">Nop</span></a>.<br/> |
36 | <span·class="id"·title="keyword">End</span>·<a·class="idref"·href="Coq.Structures.Equalities.html#Nop"><span·class="id"·title="module">Nop</span></a>.<br/> | 36 | <span·class="id"·title="keyword">End</span>·<a·class="idref"·href="Coq.Structures.Equalities.html#Nop"><span·class="id"·title="module">Nop</span></a>.<br/> |
37 | <br/> | 37 | <br/> |
38 | </div> | 38 | </div> |
39 | <div·class="doc"> | 39 | <div·class="doc"> |
40 | <a·id="lab | 40 | <a·id="lab559"></a><h1·class="section">Structure·with·just·a·base·type·<span·class="inlinecode"><span·class="id"·title="var">t</span></span></h1> |
41 | </div> | 41 | </div> |
42 | <div·class="code"> | 42 | <div·class="code"> |
43 | <br/> | 43 | <br/> |
44 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="Typ"·class="idref"·href="#Typ"><span·class="id"·title="module">Typ</span></a>.<br/> | 44 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="Typ"·class="idref"·href="#Typ"><span·class="id"·title="module">Typ</span></a>.<br/> |
45 | <span·class="id"·title="keyword">Parameter</span>·<span·class="id"·title="keyword">Inline</span>(10)·<a·id="Typ.t"·class="idref"·href="#Typ.t"><span·class="id"·title="axiom">t</span></a>·:·<span·class="id"·title="keyword">Type</span>.<br/> | 45 | <span·class="id"·title="keyword">Parameter</span>·<span·class="id"·title="keyword">Inline</span>(10)·<a·id="Typ.t"·class="idref"·href="#Typ.t"><span·class="id"·title="axiom">t</span></a>·:·<span·class="id"·title="keyword">Type</span>.<br/> |
46 | <span·class="id"·title="keyword">End</span>·<a·class="idref"·href="Coq.Structures.Equalities.html#Typ"><span·class="id"·title="module">Typ</span></a>.<br/> | 46 | <span·class="id"·title="keyword">End</span>·<a·class="idref"·href="Coq.Structures.Equalities.html#Typ"><span·class="id"·title="module">Typ</span></a>.<br/> |
47 | <br/> | 47 | <br/> |
48 | </div> | 48 | </div> |
49 | <div·class="doc"> | 49 | <div·class="doc"> |
50 | <a·id="lab | 50 | <a·id="lab560"></a><h1·class="section">Structure·with·an·equality·relation·<span·class="inlinecode"><span·class="id"·title="var">eq</span></span></h1> |
51 | </div> | 51 | </div> |
52 | <div·class="code"> | 52 | <div·class="code"> |
53 | <br/> | 53 | <br/> |
54 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="HasEq"·class="idref"·href="#HasEq"><span·class="id"·title="module">HasEq</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">T</span>:<a·class="idref"·href="Coq.Structures.Equalities.html#Typ"><span·class="id"·title="module">Typ</span></a>).<br/> | 54 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="HasEq"·class="idref"·href="#HasEq"><span·class="id"·title="module">HasEq</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">T</span>:<a·class="idref"·href="Coq.Structures.Equalities.html#Typ"><span·class="id"·title="module">Typ</span></a>).<br/> |
55 | <span·class="id"·title="keyword">Parameter</span>·<span·class="id"·title="keyword">Inline</span>(30)·<a·id="HasEq.eq"·class="idref"·href="#HasEq.eq"><span·class="id"·title="axiom">eq</span></a>·:·<a·class="idref"·href="Coq.Structures.Equalities.html#T.t"><span·class="id"·title="axiom">t</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#T.t"><span·class="id"·title="axiom">t</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>.<br/> | 55 | <span·class="id"·title="keyword">Parameter</span>·<span·class="id"·title="keyword">Inline</span>(30)·<a·id="HasEq.eq"·class="idref"·href="#HasEq.eq"><span·class="id"·title="axiom">eq</span></a>·:·<a·class="idref"·href="Coq.Structures.Equalities.html#T.t"><span·class="id"·title="axiom">t</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#T.t"><span·class="id"·title="axiom">t</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>.<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <br/> | 21 | <br/> |
22 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 22 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab610"></a><h1·class="section">Keys·and·datas·used·in·the·future·MMaps</h1> |
27 | </div> | 27 | </div> |
28 | <div·class="code"> | 28 | <div·class="code"> |
29 | <br/> | 29 | <br/> |
30 | <span·class="id"·title="keyword">Module</span>·<a·id="KeyDecidableType"·class="idref"·href="#KeyDecidableType"><span·class="id"·title="module">KeyDecidableType</span></a>(<span·class="id"·title="var">D</span>:<a·class="idref"·href="Coq.Structures.Equalities.html#DecidableType"><span·class="id"·title="module">DecidableType</span></a>).<br/> | 30 | <span·class="id"·title="keyword">Module</span>·<a·id="KeyDecidableType"·class="idref"·href="#KeyDecidableType"><span·class="id"·title="module">KeyDecidableType</span></a>(<span·class="id"·title="var">D</span>:<a·class="idref"·href="Coq.Structures.Equalities.html#DecidableType"><span·class="id"·title="module">DecidableType</span></a>).<br/> |
Offset 18, 19 lines modified | Offset 18, 19 lines modified | ||
18 | <br/> | 18 | <br/> |
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>·<a·class="idref"·href="Coq.Structures.OrdersTac.html#"><span·class="id"·title="library">OrdersTac</span></a>·<a·class="idref"·href="Coq.Structures.OrdersFacts.html#"><span·class="id"·title="library">OrdersFacts</span></a>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.Program.Basics.html#"><span·class="id"·title="library">Basics</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>·<a·class="idref"·href="Coq.Structures.OrdersTac.html#"><span·class="id"·title="library">OrdersTac</span></a>·<a·class="idref"·href="Coq.Structures.OrdersFacts.html#"><span·class="id"·title="library">OrdersFacts</span></a>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.Program.Basics.html#"><span·class="id"·title="library">Basics</span></a>.<br/> |
20 | <br/> | 20 | <br/> |
21 | </div> | 21 | </div> |
22 | <div·class="doc"> | 22 | <div·class="doc"> |
23 | <a·id="lab | 23 | <a·id="lab571"></a><h1·class="section">A·Generic·construction·of·min·and·max</h1> |
24 | <div·class="paragraph">·</div> | 24 | <div·class="paragraph">·</div> |
25 | <a·id="lab | 25 | <a·id="lab572"></a><h2·class="section">First,·an·interface·for·types·with·<span·class="inlinecode"><span·class="id"·title="var">max</span></span>·and/or·<span·class="inlinecode"><span·class="id"·title="var">min</span></span></h2> |
26 | </div> | 26 | </div> |
27 | <div·class="code"> | 27 | <div·class="code"> |
28 | <br/> | 28 | <br/> |
29 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="HasMax"·class="idref"·href="#HasMax"><span·class="id"·title="module">HasMax</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">E</span>:<a·class="idref"·href="Coq.Structures.Orders.html#EqLe'"><span·class="id"·title="module">EqLe'</span></a>).<br/> | 29 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="HasMax"·class="idref"·href="#HasMax"><span·class="id"·title="module">HasMax</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">E</span>:<a·class="idref"·href="Coq.Structures.Orders.html#EqLe'"><span·class="id"·title="module">EqLe'</span></a>).<br/> |
30 | <span·class="id"·title="keyword">Parameter</span>·<span·class="id"·title="keyword">Inline</span>·<a·id="HasMax.max"·class="idref"·href="#HasMax.max"><span·class="id"·title="axiom">max</span></a>·:·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#E.t"><span·class="id"·title="axiom">t</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#E.t"><span·class="id"·title="axiom">t</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#E.t"><span·class="id"·title="axiom">t</span></a>.<br/> | 30 | <span·class="id"·title="keyword">Parameter</span>·<span·class="id"·title="keyword">Inline</span>·<a·id="HasMax.max"·class="idref"·href="#HasMax.max"><span·class="id"·title="axiom">max</span></a>·:·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#E.t"><span·class="id"·title="axiom">t</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#E.t"><span·class="id"·title="axiom">t</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.GenericMinMax.html#E.t"><span·class="id"·title="axiom">t</span></a>.<br/> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | </div> | 23 | </div> |
24 | <div·class="doc"> | 24 | <div·class="doc"> |
25 | NB:·This·file·is·here·only·for·compatibility·with·earlier·version·of | 25 | NB:·This·file·is·here·only·for·compatibility·with·earlier·version·of |
26 | ·····<span·class="inlinecode"><span·class="id"·title="var">FSets</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">FMap</span></span>.·Please·use·<span·class="inlinecode"><span·class="id"·title="var">Structures</span>/<span·class="id"·title="var">Orders.v</span></span>·directly·now.· | 26 | ·····<span·class="inlinecode"><span·class="id"·title="var">FSets</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">FMap</span></span>.·Please·use·<span·class="inlinecode"><span·class="id"·title="var">Structures</span>/<span·class="id"·title="var">Orders.v</span></span>·directly·now.· |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | <a·id="lab | 28 | <a·id="lab590"></a><h1·class="section">Ordered·types</h1> |
29 | </div> | 29 | </div> |
30 | <div·class="code"> | 30 | <div·class="code"> |
31 | <br/> | 31 | <br/> |
32 | <span·class="id"·title="keyword">Inductive</span>·<a·id="Compare"·class="idref"·href="#Compare"><span·class="id"·title="inductive">Compare</span></a>·(<a·id="X:1"·class="idref"·href="#X:1"><span·class="id"·title="binder">X</span></a>·:·<span·class="id"·title="keyword">Type</span>)·(<a·id="lt:2"·class="idref"·href="#lt:2"><span·class="id"·title="binder">lt</span></a>·<a·id="eq:3"·class="idref"·href="#eq:3"><span·class="id"·title="binder">eq</span></a>·:·<a·class="idref"·href="Coq.Structures.OrderedType.html#X:1"><span·class="id"·title="variable">X</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#X:1"><span·class="id"·title="variable">X</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>)·(<a·id="x:4"·class="idref"·href="#x:4"><span·class="id"·title="binder">x</span></a>·<a·id="y:5"·class="idref"·href="#y:5"><span·class="id"·title="binder">y</span></a>·:·<a·class="idref"·href="Coq.Structures.OrderedType.html#X:1"><span·class="id"·title="variable">X</span></a>)·:·<span·class="id"·title="keyword">Type</span>·:=<br/> | 32 | <span·class="id"·title="keyword">Inductive</span>·<a·id="Compare"·class="idref"·href="#Compare"><span·class="id"·title="inductive">Compare</span></a>·(<a·id="X:1"·class="idref"·href="#X:1"><span·class="id"·title="binder">X</span></a>·:·<span·class="id"·title="keyword">Type</span>)·(<a·id="lt:2"·class="idref"·href="#lt:2"><span·class="id"·title="binder">lt</span></a>·<a·id="eq:3"·class="idref"·href="#eq:3"><span·class="id"·title="binder">eq</span></a>·:·<a·class="idref"·href="Coq.Structures.OrderedType.html#X:1"><span·class="id"·title="variable">X</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#X:1"><span·class="id"·title="variable">X</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<span·class="id"·title="keyword">Prop</span>)·(<a·id="x:4"·class="idref"·href="#x:4"><span·class="id"·title="binder">x</span></a>·<a·id="y:5"·class="idref"·href="#y:5"><span·class="id"·title="binder">y</span></a>·:·<a·class="idref"·href="Coq.Structures.OrderedType.html#X:1"><span·class="id"·title="variable">X</span></a>)·:·<span·class="id"·title="keyword">Type</span>·:=<br/> |
33 | |·<a·id="LT"·class="idref"·href="#LT"><span·class="id"·title="constructor">LT</span></a>·:·<a·class="idref"·href="Coq.Structures.OrderedType.html#lt:2"><span·class="id"·title="variable">lt</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#x:4"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#y:5"><span·class="id"·title="variable">y</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#Compare:6"><span·class="id"·title="inductive">Compare</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#lt:2"><span·class="id"·title="variable">lt</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#eq:3"><span·class="id"·title="variable">eq</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#x:4"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#y:5"><span·class="id"·title="variable">y</span></a><br/> | 33 | |·<a·id="LT"·class="idref"·href="#LT"><span·class="id"·title="constructor">LT</span></a>·:·<a·class="idref"·href="Coq.Structures.OrderedType.html#lt:2"><span·class="id"·title="variable">lt</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#x:4"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#y:5"><span·class="id"·title="variable">y</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#Compare:6"><span·class="id"·title="inductive">Compare</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#lt:2"><span·class="id"·title="variable">lt</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#eq:3"><span·class="id"·title="variable">eq</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#x:4"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.Structures.OrderedType.html#y:5"><span·class="id"·title="variable">y</span></a><br/> |
Offset 16, 15 lines modified | Offset 16, 15 lines modified | ||
16 | <div·class="code"> | 16 | <div·class="code"> |
17 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.OrderedType.html#"><span·class="id"·title="library">OrderedType</span></a>.<br/> | 17 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.OrderedType.html#"><span·class="id"·title="library">OrderedType</span></a>.<br/> |
18 | <br/> | 18 | <br/> |
19 | </div> | 19 | </div> |
20 | <div·class="doc"> | 20 | <div·class="doc"> |
21 | <a·id="lab | 21 | <a·id="lab589"></a><h1·class="section">An·alternative·(but·equivalent)·presentation·for·an·Ordered·Type</h1> |
22 | ···inferface.· | 22 | ···inferface.· |
23 | <div·class="paragraph">·</div> | 23 | <div·class="paragraph">·</div> |
24 | ·NB:·<span·class="inlinecode"><span·class="id"·title="var">comparison</span></span>,·defined·in·<span·class="inlinecode"><span·class="id"·title="var">Datatypes.v</span></span>·is·<span·class="inlinecode"><span·class="id"·title="var">Eq</span>|<span·class="id"·title="var">Lt</span>|<span·class="id"·title="var">Gt</span></span> | 24 | ·NB:·<span·class="inlinecode"><span·class="id"·title="var">comparison</span></span>,·defined·in·<span·class="inlinecode"><span·class="id"·title="var">Datatypes.v</span></span>·is·<span·class="inlinecode"><span·class="id"·title="var">Eq</span>|<span·class="id"·title="var">Lt</span>|<span·class="id"·title="var">Gt</span></span> |
25 | whereas·<span·class="inlinecode"><span·class="id"·title="var">compare</span></span>,·defined·in·<span·class="inlinecode"><span·class="id"·title="var">OrderedType.v</span></span>·is·<span·class="inlinecode"><span·class="id"·title="var">EQ</span></span>·<span·class="inlinecode"><span·class="id"·title="var">_</span></span>·<span·class="inlinecode">|</span>·<span·class="inlinecode"><span·class="id"·title="var">LT</span></span>·<span·class="inlinecode"><span·class="id"·title="var">_</span></span>·<span·class="inlinecode">|</span>·<span·class="inlinecode"><span·class="id"·title="var">GT</span></span>·<span·class="inlinecode"><span·class="id"·title="var">_</span></span>·<span·class="inlinecode"></span> | 25 | whereas·<span·class="inlinecode"><span·class="id"·title="var">compare</span></span>,·defined·in·<span·class="inlinecode"><span·class="id"·title="var">OrderedType.v</span></span>·is·<span·class="inlinecode"><span·class="id"·title="var">EQ</span></span>·<span·class="inlinecode"><span·class="id"·title="var">_</span></span>·<span·class="inlinecode">|</span>·<span·class="inlinecode"><span·class="id"·title="var">LT</span></span>·<span·class="inlinecode"><span·class="id"·title="var">_</span></span>·<span·class="inlinecode">|</span>·<span·class="inlinecode"><span·class="id"·title="var">GT</span></span>·<span·class="inlinecode"><span·class="id"·title="var">_</span></span>·<span·class="inlinecode"></span> |
Offset 23, 15 lines modified | Offset 23, 15 lines modified | ||
23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.NArith.NArith.html#"><span·class="id"·title="library">NArith</span></a>·<a·class="idref"·href="Coq.NArith.Ndec.html#"><span·class="id"·title="library">Ndec</span></a>.<br/> | 23 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.NArith.NArith.html#"><span·class="id"·title="library">NArith</span></a>·<a·class="idref"·href="Coq.NArith.Ndec.html#"><span·class="id"·title="library">Ndec</span></a>.<br/> |
24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.Compare_dec.html#"><span·class="id"·title="library">Compare_dec</span></a>.<br/> | 24 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.Compare_dec.html#"><span·class="id"·title="library">Compare_dec</span></a>.<br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab | 28 | <a·id="lab570"></a><h1·class="section">Examples·of·Ordered·Type·structures.</h1> |
29 | <div·class="paragraph">·</div> | 29 | <div·class="paragraph">·</div> |
30 | ·First,·a·particular·case·of·<span·class="inlinecode"><span·class="id"·title="var">OrderedType</span></span>·where | 30 | ·First,·a·particular·case·of·<span·class="inlinecode"><span·class="id"·title="var">OrderedType</span></span>·where |
31 | ····the·equality·is·the·usual·one·of·Coq.· | 31 | ····the·equality·is·the·usual·one·of·Coq.· |
32 | </div> | 32 | </div> |
33 | <div·class="code"> | 33 | <div·class="code"> |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Relations.Relations.html#"><span·class="id"·title="library">Relations</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#"><span·class="id"·title="library">Equalities</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.Relations.Relations.html#"><span·class="id"·title="library">Relations</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#"><span·class="id"·title="library">Equalities</span></a>.<br/> |
20 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 20 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
21 | <br/> | 21 | <br/> |
22 | </div> | 22 | </div> |
23 | <div·class="doc"> | 23 | <div·class="doc"> |
24 | <a·id="lab | 24 | <a·id="lab603"></a><h1·class="section">Ordered·types</h1> |
25 | <div·class="paragraph">·</div> | 25 | <div·class="paragraph">·</div> |
26 | ·First,·signatures·with·only·the·order·relations· | 26 | ·First,·signatures·with·only·the·order·relations· |
27 | </div> | 27 | </div> |
28 | <div·class="code"> | 28 | <div·class="code"> |
Offset 21, 32 lines modified | Offset 21, 32 lines modified | ||
21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.OrderedType.html#"><span·class="id"·title="library">OrderedType</span></a>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>.<br/> | 21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.OrderedType.html#"><span·class="id"·title="library">OrderedType</span></a>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>.<br/> |
22 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 22 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab83 | 26 | <a·id="lab583"></a><h1·class="section">Some·alternative·(but·equivalent)·presentations·for·an·Ordered·Type</h1> |
27 | ···inferface.· | 27 | ···inferface.· |
28 | <div·class="paragraph">·</div> | 28 | <div·class="paragraph">·</div> |
29 | <a·id="lab | 29 | <a·id="lab584"></a><h2·class="section">The·original·interface</h2> |
30 | </div> | 30 | </div> |
31 | <div·class="code"> | 31 | <div·class="code"> |
32 | <br/> | 32 | <br/> |
33 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="OrderedTypeOrig"·class="idref"·href="#OrderedTypeOrig"><span·class="id"·title="module">OrderedTypeOrig</span></a>·:=·<a·class="idref"·href="Coq.Structures.OrderedType.html#OrderedType"><span·class="id"·title="module">OrderedType.OrderedType</span></a>.<br/> | 33 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="OrderedTypeOrig"·class="idref"·href="#OrderedTypeOrig"><span·class="id"·title="module">OrderedTypeOrig</span></a>·:=·<a·class="idref"·href="Coq.Structures.OrderedType.html#OrderedType"><span·class="id"·title="module">OrderedType.OrderedType</span></a>.<br/> |
34 | <br/> | 34 | <br/> |
35 | </div> | 35 | </div> |
36 | <div·class="doc"> | 36 | <div·class="doc"> |
37 | <a·id="lab | 37 | <a·id="lab585"></a><h2·class="section">An·interface·based·on·compare</h2> |
38 | </div> | 38 | </div> |
39 | <div·class="code"> | 39 | <div·class="code"> |
40 | <br/> | 40 | <br/> |
41 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="OrderedTypeAlt"·class="idref"·href="#OrderedTypeAlt"><span·class="id"·title="module">OrderedTypeAlt</span></a>.<br/> | 41 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="OrderedTypeAlt"·class="idref"·href="#OrderedTypeAlt"><span·class="id"·title="module">OrderedTypeAlt</span></a>.<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>·<a·class="idref"·href="Coq.Bool.BoolOrder.html#"><span·class="id"·title="library">BoolOrder</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#"><span·class="id"·title="library">PeanoNat</span></a>·<a·class="idref"·href="Coq.PArith.POrderedType.html#"><span·class="id"·title="library">POrderedType</span></a>·<a·class="idref"·href="Coq.NArith.BinNat.html#"><span·class="id"·title="library">BinNat</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#"><span·class="id"·title="library">BinInt</span></a><br/> | 21 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>·<a·class="idref"·href="Coq.Bool.BoolOrder.html#"><span·class="id"·title="library">BoolOrder</span></a>·<a·class="idref"·href="Coq.Arith.PeanoNat.html#"><span·class="id"·title="library">PeanoNat</span></a>·<a·class="idref"·href="Coq.PArith.POrderedType.html#"><span·class="id"·title="library">POrderedType</span></a>·<a·class="idref"·href="Coq.NArith.BinNat.html#"><span·class="id"·title="library">BinNat</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#"><span·class="id"·title="library">BinInt</span></a><br/> |
22 | <a·class="idref"·href="Coq.Classes.RelationPairs.html#"><span·class="id"·title="library">RelationPairs</span></a>·<a·class="idref"·href="Coq.Structures.EqualitiesFacts.html#"><span·class="id"·title="library">EqualitiesFacts</span></a>.<br/> | 22 | <a·class="idref"·href="Coq.Classes.RelationPairs.html#"><span·class="id"·title="library">RelationPairs</span></a>·<a·class="idref"·href="Coq.Structures.EqualitiesFacts.html#"><span·class="id"·title="library">EqualitiesFacts</span></a>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab596"></a><h1·class="section">Examples·of·Ordered·Type·structures.</h1> |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | ·Ordered·Type·for·<span·class="inlinecode"><span·class="id"·title="var">bool</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Positive</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·with·the·usual·order.· | 28 | ·Ordered·Type·for·<span·class="inlinecode"><span·class="id"·title="var">bool</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Positive</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">N</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·with·the·usual·order.· |
29 | </div> | 29 | </div> |
30 | <div·class="code"> | 30 | <div·class="code"> |
Offset 22, 15 lines modified | Offset 22, 15 lines modified | ||
22 | <br/> | 22 | <br/> |
23 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 23 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
24 | <br/> | 24 | <br/> |
25 | </div> | 25 | </div> |
26 | <div·class="doc"> | 26 | <div·class="doc"> |
27 | <a·id="lab | 27 | <a·id="lab597"></a><h1·class="section">Properties·of·<span·class="inlinecode"><span·class="id"·title="var">compare</span></span></h1> |
28 | </div> | 28 | </div> |
29 | <div·class="code"> | 29 | <div·class="code"> |
30 | <br/> | 30 | <br/> |
31 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="CompareFacts"·class="idref"·href="#CompareFacts"><span·class="id"·title="module">CompareFacts</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">O</span>:<a·class="idref"·href="Coq.Structures.Orders.html#DecStrOrder'"><span·class="id"·title="module">DecStrOrder'</span></a>).<br/> | 31 | <span·class="id"·title="keyword">Module</span>·<span·class="id"·title="keyword">Type</span>·<a·id="CompareFacts"·class="idref"·href="#CompareFacts"><span·class="id"·title="module">CompareFacts</span></a>·(<span·class="id"·title="keyword">Import</span>·<span·class="id"·title="var">O</span>:<a·class="idref"·href="Coq.Structures.Orders.html#DecStrOrder'"><span·class="id"·title="module">DecStrOrder'</span></a>).<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <br/> | 21 | <br/> |
22 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 22 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab568"></a><h1·class="section">Specialization·of·results·about·lists·modulo.</h1> |
27 | </div> | 27 | </div> |
28 | <div·class="code"> | 28 | <div·class="code"> |
29 | <br/> | 29 | <br/> |
30 | <span·class="id"·title="keyword">Module</span>·<a·id="OrderedTypeLists"·class="idref"·href="#OrderedTypeLists"><span·class="id"·title="module">OrderedTypeLists</span></a>·(<span·class="id"·title="var">O</span>:<a·class="idref"·href="Coq.Structures.Orders.html#OrderedType"><span·class="id"·title="module">OrderedType</span></a>).<br/> | 30 | <span·class="id"·title="keyword">Module</span>·<a·id="OrderedTypeLists"·class="idref"·href="#OrderedTypeLists"><span·class="id"·title="module">OrderedTypeLists</span></a>·(<span·class="id"·title="var">O</span>:<a·class="idref"·href="Coq.Structures.Orders.html#OrderedType"><span·class="id"·title="module">OrderedType</span></a>).<br/> |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.Program.Basics.html#"><span·class="id"·title="library">Basics</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#"><span·class="id"·title="library">Equalities</span></a>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Setoids.Setoid.html#"><span·class="id"·title="library">Setoid</span></a>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.Program.Basics.html#"><span·class="id"·title="library">Basics</span></a>·<a·class="idref"·href="Coq.Structures.Equalities.html#"><span·class="id"·title="library">Equalities</span></a>·<a·class="idref"·href="Coq.Structures.Orders.html#"><span·class="id"·title="library">Orders</span></a>.<br/> |
20 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> | 20 | <span·class="id"·title="keyword">Set·Implicit·Arguments</span>.<br/> |
21 | <br/> | 21 | <br/> |
22 | </div> | 22 | </div> |
23 | <div·class="doc"> | 23 | <div·class="doc"> |
24 | <a·id="lab | 24 | <a·id="lab592"></a><h1·class="section">The·order·tactic</h1> |
25 | <div·class="paragraph">·</div> | 25 | <div·class="paragraph">·</div> |
26 | ·This·tactic·is·designed·to·solve·systems·of·(in)equations | 26 | ·This·tactic·is·designed·to·solve·systems·of·(in)equations |
27 | ····involving·<span·class="inlinecode"><span·class="id"·title="var">eq</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">lt</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">le</span></span>·and·<span·class="inlinecode">~<span·class="id"·title="var">eq</span></span>·on·some·type.·This·tactic·is | 27 | ····involving·<span·class="inlinecode"><span·class="id"·title="var">eq</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">lt</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">le</span></span>·and·<span·class="inlinecode">~<span·class="id"·title="var">eq</span></span>·on·some·type.·This·tactic·is |
28 | ····domain-agnostic;·it·will·only·use·equivalence+order·axioms,·and | 28 | ····domain-agnostic;·it·will·only·use·equivalence+order·axioms,·and |
29 | ····not·analyze·elements·of·the·domain.·Hypothesis·or·goal·of·the·form | 29 | ····not·analyze·elements·of·the·domain.·Hypothesis·or·goal·of·the·form |
Offset 382, 15 lines modified | Offset 382, 15 lines modified | ||
382 | <span·class="id"·title="keyword">End</span>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#BASES"><span·class="id"·title="section">BASES</span></a>.<br/> | 382 | <span·class="id"·title="keyword">End</span>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#BASES"><span·class="id"·title="section">BASES</span></a>.<br/> |
383 | <br/> | 383 | <br/> |
384 | <span·class="id"·title="keyword">Section</span>·<a·id="ITERATORS"·class="idref"·href="#ITERATORS"><span·class="id"·title="section">ITERATORS</span></a>.<br/> | 384 | <span·class="id"·title="keyword">Section</span>·<a·id="ITERATORS"·class="idref"·href="#ITERATORS"><span·class="id"·title="section">ITERATORS</span></a>.<br/> |
385 | </div> | 385 | </div> |
386 | <div·class="doc"> | 386 | <div·class="doc"> |
387 | <a·id="lab | 387 | <a·id="lab96"></a><h1·class="section">Here·are·special·non·dependent·useful·instantiation·of·induction·schemes</h1> |
388 | <div·class="paragraph">·</div> | 388 | <div·class="paragraph">·</div> |
389 | ·Uniform·application·on·the·arguments·of·the·vector· | 389 | ·Uniform·application·on·the·arguments·of·the·vector· |
390 | </div> | 390 | </div> |
391 | <div·class="code"> | 391 | <div·class="code"> |
392 | <span·class="id"·title="keyword">Definition</span>·<a·id="map"·class="idref"·href="#map"><span·class="id"·title="definition">map</span></a>·{<a·id="A:196"·class="idref"·href="#A:196"><span·class="id"·title="binder">A</span></a>}·{<a·id="B:197"·class="idref"·href="#B:197"><span·class="id"·title="binder">B</span></a>}·(<a·id="f:198"·class="idref"·href="#f:198"><span·class="id"·title="binder">f</span></a>·:·<a·class="idref"·href="Coq.Vectors.VectorDef.html#A:196"><span·class="id"·title="variable">A</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#B:197"><span·class="id"·title="variable">B</span></a>)·:·<span·class="id"·title="keyword">forall</span>·{<a·id="n:199"·class="idref"·href="#n:199"><span·class="id"·title="binder">n</span></a>}·(<a·id="v:200"·class="idref"·href="#v:200"><span·class="id"·title="binder">v</span></a>:<a·class="idref"·href="Coq.Vectors.VectorDef.html#t"><span·class="id"·title="inductive">t</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#A:196"><span·class="id"·title="variable">A</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#n:199"><span·class="id"·title="variable">n</span></a>),·<a·class="idref"·href="Coq.Vectors.VectorDef.html#t"><span·class="id"·title="inductive">t</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#B:197"><span·class="id"·title="variable">B</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#n:199"><span·class="id"·title="variable">n</span></a>·:=<br/> | 392 | <span·class="id"·title="keyword">Definition</span>·<a·id="map"·class="idref"·href="#map"><span·class="id"·title="definition">map</span></a>·{<a·id="A:196"·class="idref"·href="#A:196"><span·class="id"·title="binder">A</span></a>}·{<a·id="B:197"·class="idref"·href="#B:197"><span·class="id"·title="binder">B</span></a>}·(<a·id="f:198"·class="idref"·href="#f:198"><span·class="id"·title="binder">f</span></a>·:·<a·class="idref"·href="Coq.Vectors.VectorDef.html#A:196"><span·class="id"·title="variable">A</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#B:197"><span·class="id"·title="variable">B</span></a>)·:·<span·class="id"·title="keyword">forall</span>·{<a·id="n:199"·class="idref"·href="#n:199"><span·class="id"·title="binder">n</span></a>}·(<a·id="v:200"·class="idref"·href="#v:200"><span·class="id"·title="binder">v</span></a>:<a·class="idref"·href="Coq.Vectors.VectorDef.html#t"><span·class="id"·title="inductive">t</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#A:196"><span·class="id"·title="variable">A</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#n:199"><span·class="id"·title="variable">n</span></a>),·<a·class="idref"·href="Coq.Vectors.VectorDef.html#t"><span·class="id"·title="inductive">t</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#B:197"><span·class="id"·title="variable">B</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#n:199"><span·class="id"·title="variable">n</span></a>·:=<br/> |
Offset 48, 15 lines modified | Offset 48, 15 lines modified | ||
48 | </div> | 48 | </div> |
49 | <div·class="doc"> | 49 | <div·class="doc"> |
50 | Lemmas·are·done·for·functions·that·use·<span·class="inlinecode"><span·class="id"·title="var">Fin.t</span></span>·but·thanks·to·<span·class="inlinecode"><span·class="id"·title="var">Peano_dec.le_unique</span></span>,·all | 50 | Lemmas·are·done·for·functions·that·use·<span·class="inlinecode"><span·class="id"·title="var">Fin.t</span></span>·but·thanks·to·<span·class="inlinecode"><span·class="id"·title="var">Peano_dec.le_unique</span></span>,·all |
51 | is·true·for·the·one·that·use·<span·class="inlinecode"><span·class="id"·title="var">lt</span></span>· | 51 | is·true·for·the·one·that·use·<span·class="inlinecode"><span·class="id"·title="var">lt</span></span>· |
52 | <div·class="paragraph">·</div> | 52 | <div·class="paragraph">·</div> |
53 | <a·id="lab | 53 | <a·id="lab86"></a><h2·class="section">Properties·of·<span·class="inlinecode"><span·class="id"·title="var">nth</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">nth_order</span></span></h2> |
54 | </div> | 54 | </div> |
55 | <div·class="code"> | 55 | <div·class="code"> |
56 | <br/> | 56 | <br/> |
57 | <span·class="id"·title="keyword">Lemma</span>·<a·id="eq_nth_iff"·class="idref"·href="#eq_nth_iff"><span·class="id"·title="lemma">eq_nth_iff</span></a>·<a·id="A:16"·class="idref"·href="#A:16"><span·class="id"·title="binder">A</span></a>·<a·id="n:17"·class="idref"·href="#n:17"><span·class="id"·title="binder">n</span></a>·(<a·id="v1:18"·class="idref"·href="#v1:18"><span·class="id"·title="binder">v1</span></a>·<a·id="v2:19"·class="idref"·href="#v2:19"><span·class="id"·title="binder">v2</span></a>:·<a·class="idref"·href="Coq.Vectors.VectorDef.html#t"><span·class="id"·title="inductive">t</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#A:16"><span·class="id"·title="variable">A</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#n:17"><span·class="id"·title="variable">n</span></a>):<br/> | 57 | <span·class="id"·title="keyword">Lemma</span>·<a·id="eq_nth_iff"·class="idref"·href="#eq_nth_iff"><span·class="id"·title="lemma">eq_nth_iff</span></a>·<a·id="A:16"·class="idref"·href="#A:16"><span·class="id"·title="binder">A</span></a>·<a·id="n:17"·class="idref"·href="#n:17"><span·class="id"·title="binder">n</span></a>·(<a·id="v1:18"·class="idref"·href="#v1:18"><span·class="id"·title="binder">v1</span></a>·<a·id="v2:19"·class="idref"·href="#v2:19"><span·class="id"·title="binder">v2</span></a>:·<a·class="idref"·href="Coq.Vectors.VectorDef.html#t"><span·class="id"·title="inductive">t</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#A:16"><span·class="id"·title="variable">A</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#n:17"><span·class="id"·title="variable">n</span></a>):<br/> |
58 | <a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">(</span></a><span·class="id"·title="keyword">forall</span>·<a·id="p1:20"·class="idref"·href="#p1:20"><span·class="id"·title="binder">p1</span></a>·<a·id="p2:21"·class="idref"·href="#p2:21"><span·class="id"·title="binder">p2</span></a>,·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#p1:20"><span·class="id"·title="variable">p1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#p2:21"><span·class="id"·title="variable">p2</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#v1:18"><span·class="id"·title="variable">v1</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#3e2ab5a54c52b47134e5ddb66aa31ebd"><span·class="id"·title="notation">[@</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#p1:20"><span·class="id"·title="variable">p1</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#3e2ab5a54c52b47134e5ddb66aa31ebd"><span·class="id"·title="notation">]</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#v2:19"><span·class="id"·title="variable">v2</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#3e2ab5a54c52b47134e5ddb66aa31ebd"><span·class="id"·title="notation">[@</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#p2:21"><span·class="id"·title="variable">p2</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#3e2ab5a54c52b47134e5ddb66aa31ebd"><span·class="id"·title="notation">]</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation"><-></span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#v1:18"><span·class="id"·title="variable">v1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#v2:19"><span·class="id"·title="variable">v2</span></a>.<br/> | 58 | <a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">(</span></a><span·class="id"·title="keyword">forall</span>·<a·id="p1:20"·class="idref"·href="#p1:20"><span·class="id"·title="binder">p1</span></a>·<a·id="p2:21"·class="idref"·href="#p2:21"><span·class="id"·title="binder">p2</span></a>,·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#p1:20"><span·class="id"·title="variable">p1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#p2:21"><span·class="id"·title="variable">p2</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#v1:18"><span·class="id"·title="variable">v1</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#3e2ab5a54c52b47134e5ddb66aa31ebd"><span·class="id"·title="notation">[@</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#p1:20"><span·class="id"·title="variable">p1</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#3e2ab5a54c52b47134e5ddb66aa31ebd"><span·class="id"·title="notation">]</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#v2:19"><span·class="id"·title="variable">v2</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#3e2ab5a54c52b47134e5ddb66aa31ebd"><span·class="id"·title="notation">[@</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#p2:21"><span·class="id"·title="variable">p2</span></a>·<a·class="idref"·href="Coq.Vectors.VectorDef.html#3e2ab5a54c52b47134e5ddb66aa31ebd"><span·class="id"·title="notation">]</span></a><a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation"><-></span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#v1:18"><span·class="id"·title="variable">v1</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Vectors.VectorSpec.html#v2:19"><span·class="id"·title="variable">v2</span></a>.<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <a·class="idref"·href="Coq.Structures.OrdersFacts.html#"><span·class="id"·title="library">OrdersFacts</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZProperties.html#"><span·class="id"·title="library">ZProperties</span></a>.<br/> | 21 | <a·class="idref"·href="Coq.Structures.OrdersFacts.html#"><span·class="id"·title="library">OrdersFacts</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZAxioms.html#"><span·class="id"·title="library">ZAxioms</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZProperties.html#"><span·class="id"·title="library">ZProperties</span></a>.<br/> |
22 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.ZArith.BinIntDef.html#"><span·class="id"·title="library">BinIntDef</span></a>.<br/> | 22 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.ZArith.BinIntDef.html#"><span·class="id"·title="library">BinIntDef</span></a>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab833"></a><h1·class="section">Binary·Integers</h1> |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | ·Initial·author:·Pierre·Crégut,·CNET,·Lannion,·France· | 28 | ·Initial·author:·Pierre·Crégut,·CNET,·Lannion,·France· |
29 | <div·class="paragraph">·</div> | 29 | <div·class="paragraph">·</div> |
30 | ·The·type·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·and·its·constructors·<span·class="inlinecode"><span·class="id"·title="var">Z0</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Zpos</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Zneg</span></span> | 30 | ·The·type·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·and·its·constructors·<span·class="inlinecode"><span·class="id"·title="var">Z0</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Zpos</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Zneg</span></span> |
Offset 24, 15 lines modified | Offset 24, 15 lines modified | ||
24 | <br/> | 24 | <br/> |
25 | <br/> | 25 | <br/> |
26 | </div> | 26 | </div> |
27 | <div·class="doc"> | 27 | <div·class="doc"> |
28 | <a·id="lab9 | 28 | <a·id="lab915"></a><h1·class="section">Binary·Integers,·Definitions·of·Operations</h1> |
29 | <div·class="paragraph">·</div> | 29 | <div·class="paragraph">·</div> |
30 | ·Initial·author:·Pierre·Crégut,·CNET,·Lannion,·France· | 30 | ·Initial·author:·Pierre·Crégut,·CNET,·Lannion,·France· |
31 | </div> | 31 | </div> |
32 | <div·class="code"> | 32 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab886"></a><h1·class="section">An·light·axiomatization·of·integers·(used·in·MSetAVL).</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·We·define·a·signature·for·an·integer·datatype·based·on·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>. | 21 | ·We·define·a·signature·for·an·integer·datatype·based·on·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>. |
22 | ····The·goal·is·to·allow·a·switch·after·extraction·to·ocaml's | 22 | ····The·goal·is·to·allow·a·switch·after·extraction·to·ocaml's |
23 | ····<span·class="inlinecode"><span·class="id"·title="var">big_int</span></span>·or·even·<span·class="inlinecode"><span·class="id"·title="var">int</span></span>·when·finiteness·isn't·a·problem | 23 | ····<span·class="inlinecode"><span·class="id"·title="var">big_int</span></span>·or·even·<span·class="inlinecode"><span·class="id"·title="var">int</span></span>·when·finiteness·isn't·a·problem |
24 | ····(typically·:·when·measuring·the·height·of·an·AVL·tree). | 24 | ····(typically·:·when·measuring·the·height·of·an·AVL·tree). |
Offset 40, 15 lines modified | Offset 40, 15 lines modified | ||
40 | <br/> | 40 | <br/> |
41 | <span·class="id"·title="keyword">Variables</span>·<a·id="decidability.x"·class="idref"·href="#decidability.x"><span·class="id"·title="variable">x</span></a>·<a·id="decidability.y"·class="idref"·href="#decidability.y"><span·class="id"·title="variable">y</span></a>·:·<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>.<br/> | 41 | <span·class="id"·title="keyword">Variables</span>·<a·id="decidability.x"·class="idref"·href="#decidability.x"><span·class="id"·title="variable">x</span></a>·<a·id="decidability.y"·class="idref"·href="#decidability.y"><span·class="id"·title="variable">y</span></a>·:·<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>.<br/> |
42 | <br/> | 42 | <br/> |
43 | </div> | 43 | </div> |
44 | <div·class="doc"> | 44 | <div·class="doc"> |
45 | <a·id="lab9 | 45 | <a·id="lab943"></a><h1·class="section">Decidability·of·order·on·binary·integers</h1> |
46 | </div> | 46 | </div> |
47 | <div·class="code"> | 47 | <div·class="code"> |
48 | <br/> | 48 | <br/> |
49 | <span·class="id"·title="keyword">Definition</span>·<a·id="Z_lt_dec"·class="idref"·href="#Z_lt_dec"><span·class="id"·title="definition">Z_lt_dec</span></a>·:·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.ZArith.ZArith_dec.html#decidability.x"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.ZArith_dec.html#decidability.y"><span·class="id"·title="variable">y</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Init.Logic.html#63a68285c81db8f9bc456233bb9ed181"><span·class="id"·title="notation">~</span></a>·<a·class="idref"·href="Coq.ZArith.ZArith_dec.html#decidability.x"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.ZArith_dec.html#decidability.y"><span·class="id"·title="variable">y</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>.<br/> | 49 | <span·class="id"·title="keyword">Definition</span>·<a·id="Z_lt_dec"·class="idref"·href="#Z_lt_dec"><span·class="id"·title="definition">Z_lt_dec</span></a>·:·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.ZArith.ZArith_dec.html#decidability.x"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.ZArith_dec.html#decidability.y"><span·class="id"·title="variable">y</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.Init.Logic.html#63a68285c81db8f9bc456233bb9ed181"><span·class="id"·title="notation">~</span></a>·<a·class="idref"·href="Coq.ZArith.ZArith_dec.html#decidability.x"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.ZArith_dec.html#decidability.y"><span·class="id"·title="variable">y</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>.<br/> |
Offset 40, 15 lines modified | Offset 40, 15 lines modified | ||
40 | <br/> | 40 | <br/> |
41 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> | 41 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> |
42 | <br/> | 42 | <br/> |
43 | </div> | 43 | </div> |
44 | <div·class="doc"> | 44 | <div·class="doc"> |
45 | <a·id="lab | 45 | <a·id="lab912"></a><h1·class="section">Properties·of·absolute·value</h1> |
46 | </div> | 46 | </div> |
47 | <div·class="code"> | 47 | <div·class="code"> |
48 | <br/> | 48 | <br/> |
49 | <span·class="id"·title="keyword">Notation</span>·<a·id="Zabs_non_eq"·class="idref"·href="#Zabs_non_eq"><span·class="id"·title="abbreviation">Zabs_non_eq</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.abs_neq"><span·class="id"·title="lemma">Z.abs_neq</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 49 | <span·class="id"·title="keyword">Notation</span>·<a·id="Zabs_non_eq"·class="idref"·href="#Zabs_non_eq"><span·class="id"·title="abbreviation">Zabs_non_eq</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.abs_neq"><span·class="id"·title="lemma">Z.abs_neq</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
50 | <span·class="id"·title="keyword">Notation</span>·<a·id="Zabs_Zopp"·class="idref"·href="#Zabs_Zopp"><span·class="id"·title="abbreviation">Zabs_Zopp</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.abs_opp"><span·class="id"·title="lemma">Z.abs_opp</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 50 | <span·class="id"·title="keyword">Notation</span>·<a·id="Zabs_Zopp"·class="idref"·href="#Zabs_Zopp"><span·class="id"·title="abbreviation">Zabs_Zopp</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.abs_opp"><span·class="id"·title="lemma">Z.abs_opp</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
Offset 26, 15 lines modified | Offset 26, 15 lines modified | ||
26 | <br/> | 26 | <br/> |
27 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> | 27 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> |
28 | <br/> | 28 | <br/> |
29 | </div> | 29 | </div> |
30 | <div·class="doc"> | 30 | <div·class="doc"> |
31 | <a·id="lab | 31 | <a·id="lab896"></a><h1·class="section">Boolean·operations·from·decidability·of·order</h1> |
32 | ·The·decidability·of·equality·and·order·relations·over | 32 | ·The·decidability·of·equality·and·order·relations·over |
33 | ····type·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·gives·some·boolean·functions·with·the·adequate·specification.· | 33 | ····type·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·gives·some·boolean·functions·with·the·adequate·specification.· |
34 | </div> | 34 | </div> |
35 | <div·class="code"> | 35 | <div·class="code"> |
36 | <br/> | 36 | <br/> |
37 | <span·class="id"·title="keyword">Definition</span>·<a·id="Z_lt_ge_bool"·class="idref"·href="#Z_lt_ge_bool"><span·class="id"·title="definition">Z_lt_ge_bool</span></a>·(<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>·<a·id="y:2"·class="idref"·href="#y:2"><span·class="id"·title="binder">y</span></a>:<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>)·:=·<a·class="idref"·href="Coq.Bool.Sumbool.html#bool_of_sumbool"><span·class="id"·title="definition">bool_of_sumbool</span></a>·(<a·class="idref"·href="Coq.ZArith.ZArith_dec.html#Z_lt_ge_dec"><span·class="id"·title="definition">Z_lt_ge_dec</span></a>·<a·class="idref"·href="Coq.ZArith.Zbool.html#x:1"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.ZArith.Zbool.html#y:2"><span·class="id"·title="variable">y</span></a>).<br/> | 37 | <span·class="id"·title="keyword">Definition</span>·<a·id="Z_lt_ge_bool"·class="idref"·href="#Z_lt_ge_bool"><span·class="id"·title="definition">Z_lt_ge_bool</span></a>·(<a·id="x:1"·class="idref"·href="#x:1"><span·class="id"·title="binder">x</span></a>·<a·id="y:2"·class="idref"·href="#y:2"><span·class="id"·title="binder">y</span></a>:<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>)·:=·<a·class="idref"·href="Coq.Bool.Sumbool.html#bool_of_sumbool"><span·class="id"·title="definition">bool_of_sumbool</span></a>·(<a·class="idref"·href="Coq.ZArith.ZArith_dec.html#Z_lt_ge_dec"><span·class="id"·title="definition">Z_lt_ge_dec</span></a>·<a·class="idref"·href="Coq.ZArith.Zbool.html#x:1"><span·class="id"·title="variable">x</span></a>·<a·class="idref"·href="Coq.ZArith.Zbool.html#y:2"><span·class="id"·title="variable">y</span></a>).<br/> |
Offset 34, 30 lines modified | Offset 34, 30 lines modified | ||
34 | <br/> | 34 | <br/> |
35 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> | 35 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> |
36 | <br/> | 36 | <br/> |
37 | </div> | 37 | </div> |
38 | <div·class="doc"> | 38 | <div·class="doc"> |
39 | <a·id="lab8 | 39 | <a·id="lab815"></a><h1·class="section">Comparison·on·integers</h1> |
40 | </div> | 40 | </div> |
41 | <div·class="code"> | 41 | <div·class="code"> |
42 | <br/> | 42 | <br/> |
43 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zcompare_Gt_Lt_antisym"·class="idref"·href="#Zcompare_Gt_Lt_antisym"><span·class="id"·title="lemma">Zcompare_Gt_Lt_antisym</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>:<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>,·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#m:2"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Gt"><span·class="id"·title="constructor">Gt</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation"><-></span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#m:2"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#n:1"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Lt"><span·class="id"·title="constructor">Lt</span></a>.<br/> | 43 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zcompare_Gt_Lt_antisym"·class="idref"·href="#Zcompare_Gt_Lt_antisym"><span·class="id"·title="lemma">Zcompare_Gt_Lt_antisym</span></a>·:·<span·class="id"·title="keyword">forall</span>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>:<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>,·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#m:2"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Gt"><span·class="id"·title="constructor">Gt</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation"><-></span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#m:2"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#n:1"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Lt"><span·class="id"·title="constructor">Lt</span></a>.<br/> |
44 | <br/> | 44 | <br/> |
45 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zcompare_antisym"·class="idref"·href="#Zcompare_antisym"><span·class="id"·title="lemma">Zcompare_antisym</span></a>·<a·id="n:3"·class="idref"·href="#n:3"><span·class="id"·title="binder">n</span></a>·<a·id="m:4"·class="idref"·href="#m:4"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#CompOpp"><span·class="id"·title="definition">CompOpp</span></a>·(<a·class="idref"·href="Coq.ZArith.Zcompare.html#n:3"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#m:4"><span·class="id"·title="variable">m</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#m:4"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#n:3"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>.<br/> | 45 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zcompare_antisym"·class="idref"·href="#Zcompare_antisym"><span·class="id"·title="lemma">Zcompare_antisym</span></a>·<a·id="n:3"·class="idref"·href="#n:3"><span·class="id"·title="binder">n</span></a>·<a·id="m:4"·class="idref"·href="#m:4"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.Init.Datatypes.html#CompOpp"><span·class="id"·title="definition">CompOpp</span></a>·(<a·class="idref"·href="Coq.ZArith.Zcompare.html#n:3"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#m:4"><span·class="id"·title="variable">m</span></a>)·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#m:4"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#n:3"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>.<br/> |
46 | <br/> | 46 | <br/> |
47 | </div> | 47 | </div> |
48 | <div·class="doc"> | 48 | <div·class="doc"> |
49 | <a·id="lab8 | 49 | <a·id="lab816"></a><h1·class="section">Transitivity·of·comparison</h1> |
50 | </div> | 50 | </div> |
51 | <div·class="code"> | 51 | <div·class="code"> |
52 | <br/> | 52 | <br/> |
53 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zcompare_Lt_trans"·class="idref"·href="#Zcompare_Lt_trans"><span·class="id"·title="lemma">Zcompare_Lt_trans</span></a>·:<br/> | 53 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zcompare_Lt_trans"·class="idref"·href="#Zcompare_Lt_trans"><span·class="id"·title="lemma">Zcompare_Lt_trans</span></a>·:<br/> |
54 | <span·class="id"·title="keyword">forall</span>·<a·id="n:5"·class="idref"·href="#n:5"><span·class="id"·title="binder">n</span></a>·<a·id="m:6"·class="idref"·href="#m:6"><span·class="id"·title="binder">m</span></a>·<a·id="p:7"·class="idref"·href="#p:7"><span·class="id"·title="binder">p</span></a>:<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>,·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#n:5"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#m:6"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Lt"><span·class="id"·title="constructor">Lt</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#m:6"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#p:7"><span·class="id"·title="variable">p</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Lt"><span·class="id"·title="constructor">Lt</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#n:5"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#p:7"><span·class="id"·title="variable">p</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Lt"><span·class="id"·title="constructor">Lt</span></a>.<br/> | 54 | <span·class="id"·title="keyword">forall</span>·<a·id="n:5"·class="idref"·href="#n:5"><span·class="id"·title="binder">n</span></a>·<a·id="m:6"·class="idref"·href="#m:6"><span·class="id"·title="binder">m</span></a>·<a·id="p:7"·class="idref"·href="#p:7"><span·class="id"·title="binder">p</span></a>:<a·class="idref"·href="Coq.Numbers.BinNums.html#Z"><span·class="id"·title="inductive">Z</span></a>,·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#n:5"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#m:6"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Lt"><span·class="id"·title="constructor">Lt</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#m:6"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#p:7"><span·class="id"·title="variable">p</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Lt"><span·class="id"·title="constructor">Lt</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zcompare.html#n:5"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#1718f1bc306f7edd524650b393f464a3"><span·class="id"·title="notation">?=</span></a>·<a·class="idref"·href="Coq.ZArith.Zcompare.html#p:7"><span·class="id"·title="variable">p</span></a><a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.Init.Datatypes.html#Lt"><span·class="id"·title="constructor">Lt</span></a>.<br/> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab | 19 | <a·id="lab823"></a><h1·class="section">Euclidean·Division</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | ·Initial·Contribution·by·Claude·Marché·and·Xavier·Urbain· | 21 | ·Initial·Contribution·by·Claude·Marché·and·Xavier·Urbain· |
22 | </div> | 22 | </div> |
23 | <div·class="code"> | 23 | <div·class="code"> |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#"><span·class="id"·title="library">BinInt</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZDivEucl.html#"><span·class="id"·title="library">ZDivEucl</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Classes.Morphisms.html#"><span·class="id"·title="library">Morphisms</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#"><span·class="id"·title="library">BinInt</span></a>·<a·class="idref"·href="Coq.Numbers.Integer.Abstract.ZDivEucl.html#"><span·class="id"·title="library">ZDivEucl</span></a>.<br/> |
20 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> | 20 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> |
21 | <br/> | 21 | <br/> |
22 | </div> | 22 | </div> |
23 | <div·class="doc"> | 23 | <div·class="doc"> |
24 | <a·id="lab9 | 24 | <a·id="lab911"></a><h1·class="section">Definitions·of·division·for·binary·integers,·Euclid·convention.</h1> |
25 | <div·class="paragraph">·</div> | 25 | <div·class="paragraph">·</div> |
26 | ·In·this·convention,·the·remainder·is·always·positive. | 26 | ·In·this·convention,·the·remainder·is·always·positive. |
27 | ····For·other·conventions,·see·<span·class="inlinecode"><span·class="id"·title="var">Z.div</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Z.quot</span></span>·in·file·<span·class="inlinecode"><span·class="id"·title="var">BinIntDef</span></span>. | 27 | ····For·other·conventions,·see·<span·class="inlinecode"><span·class="id"·title="var">Z.div</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Z.quot</span></span>·in·file·<span·class="inlinecode"><span·class="id"·title="var">BinIntDef</span></span>. |
28 | ····To·avoid·collision·with·the·other·divisions,·we·place·this·one | 28 | ····To·avoid·collision·with·the·other·divisions,·we·place·this·one |
29 | ····under·a·module. | 29 | ····under·a·module. |
Offset 138, 15 lines modified | Offset 138, 15 lines modified | ||
138 | <span·class="id"·title="keyword">Notation</span>·<a·id="Zodd_bool_succ"·class="idref"·href="#Zodd_bool_succ"><span·class="id"·title="abbreviation">Zodd_bool_succ</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.odd_succ"><span·class="id"·title="lemma">Z.odd_succ</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 138 | <span·class="id"·title="keyword">Notation</span>·<a·id="Zodd_bool_succ"·class="idref"·href="#Zodd_bool_succ"><span·class="id"·title="abbreviation">Zodd_bool_succ</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.odd_succ"><span·class="id"·title="lemma">Z.odd_succ</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
139 | <span·class="id"·title="keyword">Notation</span>·<a·id="Zodd_bool_pred"·class="idref"·href="#Zodd_bool_pred"><span·class="id"·title="abbreviation">Zodd_bool_pred</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.odd_pred"><span·class="id"·title="lemma">Z.odd_pred</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 139 | <span·class="id"·title="keyword">Notation</span>·<a·id="Zodd_bool_pred"·class="idref"·href="#Zodd_bool_pred"><span·class="id"·title="abbreviation">Zodd_bool_pred</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.odd_pred"><span·class="id"·title="lemma">Z.odd_pred</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
140 | <br/> | 140 | <br/> |
141 | </div> | 141 | </div> |
142 | <div·class="doc"> | 142 | <div·class="doc"> |
143 | <a·id="lab | 143 | <a·id="lab814"></a><h1·class="section">Definition·of·<span·class="inlinecode"><span·class="id"·title="var">Z.quot2</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z.div2</span></span>·and·properties·wrt·<span·class="inlinecode"><span·class="id"·title="var">Zeven</span></span></h1> |
144 | ··and·<span·class="inlinecode"><span·class="id"·title="var">Zodd</span></span>· | 144 | ··and·<span·class="inlinecode"><span·class="id"·title="var">Zodd</span></span>· |
145 | <div·class="paragraph">·</div> | 145 | <div·class="paragraph">·</div> |
146 | ·Properties·of·<span·class="inlinecode"><span·class="id"·title="var">Z.div2</span></span>· | 146 | ·Properties·of·<span·class="inlinecode"><span·class="id"·title="var">Z.div2</span></span>· |
147 | </div> | 147 | </div> |
148 | <div·class="code"> | 148 | <div·class="code"> |
Offset 15, 15 lines modified | Offset 15, 15 lines modified | ||
15 | <div·class="code"> | 15 | <div·class="code"> |
16 | <br/> | 16 | <br/> |
17 | </div> | 17 | </div> |
18 | <div·class="doc"> | 18 | <div·class="doc"> |
19 | <a·id="lab9 | 19 | <a·id="lab945"></a><h1·class="section">Zgcd_alt·:·an·alternate·version·of·Z.gcd,·based·on·Euclid's·algorithm</h1> |
20 | <div·class="paragraph">·</div> | 20 | <div·class="paragraph">·</div> |
21 | <div·class="paragraph">·</div> | 21 | <div·class="paragraph">·</div> |
22 | Author:·Pierre·Letouzey | 22 | Author:·Pierre·Letouzey |
Offset 68, 28 lines modified | Offset 68, 28 lines modified | ||
68 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.Zmisc.html#"><span·class="id"·title="library">Zmisc</span></a>.<br/> | 68 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.Zmisc.html#"><span·class="id"·title="library">Zmisc</span></a>.<br/> |
69 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.Wf_Z.html#"><span·class="id"·title="library">Wf_Z</span></a>.<br/> | 69 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.Wf_Z.html#"><span·class="id"·title="library">Wf_Z</span></a>.<br/> |
70 | <br/> | 70 | <br/> |
71 | </div> | 71 | </div> |
72 | <div·class="doc"> | 72 | <div·class="doc"> |
73 | <a·id="lab | 73 | <a·id="lab876"></a><h1·class="section">Simplification·lemmas</h1> |
74 | <div·class="paragraph">·</div> | 74 | <div·class="paragraph">·</div> |
75 | ·No·subgoal·or·smaller·subgoals····································· | 75 | ·No·subgoal·or·smaller·subgoals····································· |
76 | </div> | 76 | </div> |
77 | <div·class="code"> | 77 | <div·class="code"> |
78 | <br/> | 78 | <br/> |
79 | <span·class="id"·title="keyword">Hint·Resolve</span><br/> | 79 | <span·class="id"·title="keyword">Hint·Resolve</span><br/> |
80 | </div> | 80 | </div> |
81 | <div·class="doc"> | 81 | <div·class="doc"> |
82 | <a·id="lab | 82 | <a·id="lab877"></a><h2·class="section">Reversible·simplification·lemmas·(no·loss·of·information)</h2> |
83 | ·Should·clearly·be·declared·as·hints······························· | 83 | ·Should·clearly·be·declared·as·hints······························· |
84 | <div·class="paragraph">·</div> | 84 | <div·class="paragraph">·</div> |
85 | ·Lemmas·ending·by·eq· | 85 | ·Lemmas·ending·by·eq· |
86 | </div> | 86 | </div> |
87 | <div·class="code"> | 87 | <div·class="code"> |
88 | <span·class="id"·title="var">Zsucc_eq_compat</span>·<br/> | 88 | <span·class="id"·title="var">Zsucc_eq_compat</span>·<br/> |
Offset 61, 15 lines modified | Offset 61, 15 lines modified | ||
61 | <li>·module·Zabs2Nat·:·from·Z·to·nat·(via·the·absolute·value) | 61 | <li>·module·Zabs2Nat·:·from·Z·to·nat·(via·the·absolute·value) |
62 | </li> | 62 | </li> |
63 | </ul> | 63 | </ul> |
64 | <div·class="paragraph">·</div> | 64 | <div·class="paragraph">·</div> |
65 | <a·id="lab | 65 | <a·id="lab873"></a><h1·class="section">Chains·of·conversions</h1> |
66 | <div·class="paragraph">·</div> | 66 | <div·class="paragraph">·</div> |
67 | ·When·combining·successive·conversions,·we·have·the·following | 67 | ·When·combining·successive·conversions,·we·have·the·following |
68 | ····commutative·diagram: | 68 | ····commutative·diagram: |
69 | <pre> | 69 | <pre> |
70 | ······--->·Nat·---- | 70 | ······--->·Nat·---- |
Offset 205, 15 lines modified | Offset 205, 15 lines modified | ||
205 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zdivide_mod_minus"·class="idref"·href="#Zdivide_mod_minus"><span·class="id"·title="lemma">Zdivide_mod_minus</span></a>·<a·id="a:44"·class="idref"·href="#a:44"><span·class="id"·title="binder">a</span></a>·<a·id="b:45"·class="idref"·href="#b:45"><span·class="id"·title="binder">b</span></a>·<a·id="c:46"·class="idref"·href="#c:46"><span·class="id"·title="binder">c</span></a>:<br/> | 205 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zdivide_mod_minus"·class="idref"·href="#Zdivide_mod_minus"><span·class="id"·title="lemma">Zdivide_mod_minus</span></a>·<a·id="a:44"·class="idref"·href="#a:44"><span·class="id"·title="binder">a</span></a>·<a·id="b:45"·class="idref"·href="#b:45"><span·class="id"·title="binder">b</span></a>·<a·id="c:46"·class="idref"·href="#c:46"><span·class="id"·title="binder">c</span></a>:<br/> |
206 | 0·<a·class="idref"·href="Coq.ZArith.BinInt.html#bdb3edde5f841a282ce8fc1b00e3d211"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#c:46"><span·class="id"·title="variable">c</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#bdb3edde5f841a282ce8fc1b00e3d211"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#b:45"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#5cd21895b4d5f127eb2c0acb80e8d6fc"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Znumtheory.html#b:45"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#5cd21895b4d5f127eb2c0acb80e8d6fc"><span·class="id"·title="notation">|</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#a:44"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#c:46"><span·class="id"·title="variable">c</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#5cd21895b4d5f127eb2c0acb80e8d6fc"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#a:44"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#b:45"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#c:46"><span·class="id"·title="variable">c</span></a>.<br/> | 206 | 0·<a·class="idref"·href="Coq.ZArith.BinInt.html#bdb3edde5f841a282ce8fc1b00e3d211"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#c:46"><span·class="id"·title="variable">c</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#bdb3edde5f841a282ce8fc1b00e3d211"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#b:45"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#5cd21895b4d5f127eb2c0acb80e8d6fc"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Znumtheory.html#b:45"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#5cd21895b4d5f127eb2c0acb80e8d6fc"><span·class="id"·title="notation">|</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#a:44"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#c:46"><span·class="id"·title="variable">c</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#5cd21895b4d5f127eb2c0acb80e8d6fc"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#a:44"><span·class="id"·title="variable">a</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#b:45"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.ZArith.Znumtheory.html#c:46"><span·class="id"·title="variable">c</span></a>.<br/> |
207 | <br/> | 207 | <br/> |
208 | </div> | 208 | </div> |
209 | <div·class="doc"> | 209 | <div·class="doc"> |
210 | <a·id="lab | 210 | <a·id="lab881"></a><h1·class="section">Greatest·common·divisor·(gcd).</h1> |
211 | <div·class="paragraph">·</div> | 211 | <div·class="paragraph">·</div> |
212 | ·There·is·no·unicity·of·the·gcd;·hence·we·define·the·predicate | 212 | ·There·is·no·unicity·of·the·gcd;·hence·we·define·the·predicate |
213 | ····<span·class="inlinecode"><span·class="id"·title="var">Zis_gcd</span></span>·<span·class="inlinecode"><span·class="id"·title="var">a</span></span>·<span·class="inlinecode"><span·class="id"·title="var">b</span></span>·<span·class="inlinecode"><span·class="id"·title="var">g</span></span>·expressing·that·<span·class="inlinecode"><span·class="id"·title="var">g</span></span>·is·a·gcd·of·<span·class="inlinecode"><span·class="id"·title="var">a</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">b</span></span>. | 213 | ····<span·class="inlinecode"><span·class="id"·title="var">Zis_gcd</span></span>·<span·class="inlinecode"><span·class="id"·title="var">a</span></span>·<span·class="inlinecode"><span·class="id"·title="var">b</span></span>·<span·class="inlinecode"><span·class="id"·title="var">g</span></span>·expressing·that·<span·class="inlinecode"><span·class="id"·title="var">g</span></span>·is·a·gcd·of·<span·class="inlinecode"><span·class="id"·title="var">a</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">b</span></span>. |
214 | ····(We·show·later·that·the·<span·class="inlinecode"><span·class="id"·title="var">gcd</span></span>·is·actually·unique·if·we·discard·its·sign.)· | 214 | ····(We·show·later·that·the·<span·class="inlinecode"><span·class="id"·title="var">gcd</span></span>·is·actually·unique·if·we·discard·its·sign.)· |
215 | </div> | 215 | </div> |
Offset 37, 30 lines modified | Offset 37, 30 lines modified | ||
37 | <br/> | 37 | <br/> |
38 | </div> | 38 | </div> |
39 | <div·class="doc"> | 39 | <div·class="doc"> |
40 | Properties·of·the·order·relations·on·binary·integers· | 40 | Properties·of·the·order·relations·on·binary·integers· |
41 | <div·class="paragraph">·</div> | 41 | <div·class="paragraph">·</div> |
42 | <a·id="lab | 42 | <a·id="lab898"></a><h1·class="section">Trichotomy</h1> |
43 | </div> | 43 | </div> |
44 | <div·class="code"> | 44 | <div·class="code"> |
45 | <br/> | 45 | <br/> |
46 | <span·class="id"·title="keyword">Theorem</span>·<a·id="Ztrichotomy_inf"·class="idref"·href="#Ztrichotomy_inf"><span·class="id"·title="lemma">Ztrichotomy_inf</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.ZArith.Zorder.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:2"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.ZArith.Zorder.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:2"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#53e8e3b7ca0342c8b99a777b3c5faf3a"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#53e8e3b7ca0342c8b99a777b3c5faf3a"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.ZArith.Zorder.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:2"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Specif.html#53e8e3b7ca0342c8b99a777b3c5faf3a"><span·class="id"·title="notation">}</span></a>.<br/> | 46 | <span·class="id"·title="keyword">Theorem</span>·<a·id="Ztrichotomy_inf"·class="idref"·href="#Ztrichotomy_inf"><span·class="id"·title="lemma">Ztrichotomy_inf</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.ZArith.Zorder.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:2"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.ZArith.Zorder.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:2"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Specif.html#87727981cdc1579fef00b9d9c1d3b9da"><span·class="id"·title="notation">}</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#53e8e3b7ca0342c8b99a777b3c5faf3a"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.Init.Specif.html#53e8e3b7ca0342c8b99a777b3c5faf3a"><span·class="id"·title="notation">{</span></a><a·class="idref"·href="Coq.ZArith.Zorder.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:2"><span·class="id"·title="variable">m</span></a><a·class="idref"·href="Coq.Init.Specif.html#53e8e3b7ca0342c8b99a777b3c5faf3a"><span·class="id"·title="notation">}</span></a>.<br/> |
47 | <br/> | 47 | <br/> |
48 | <span·class="id"·title="keyword">Theorem</span>·<a·id="Ztrichotomy"·class="idref"·href="#Ztrichotomy"><span·class="id"·title="lemma">Ztrichotomy</span></a>·<a·id="n:3"·class="idref"·href="#n:3"><span·class="id"·title="binder">n</span></a>·<a·id="m:4"·class="idref"·href="#m:4"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.ZArith.Zorder.html#n:3"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:4"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#f031fe1957c4a4a8e217aa46af2b4e25"><span·class="id"·title="notation">\/</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#n:3"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:4"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#f031fe1957c4a4a8e217aa46af2b4e25"><span·class="id"·title="notation">\/</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#n:3"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:4"><span·class="id"·title="variable">m</span></a>.<br/> | 48 | <span·class="id"·title="keyword">Theorem</span>·<a·id="Ztrichotomy"·class="idref"·href="#Ztrichotomy"><span·class="id"·title="lemma">Ztrichotomy</span></a>·<a·id="n:3"·class="idref"·href="#n:3"><span·class="id"·title="binder">n</span></a>·<a·id="m:4"·class="idref"·href="#m:4"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.ZArith.Zorder.html#n:3"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:4"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#f031fe1957c4a4a8e217aa46af2b4e25"><span·class="id"·title="notation">\/</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#n:3"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:4"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#f031fe1957c4a4a8e217aa46af2b4e25"><span·class="id"·title="notation">\/</span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#n:3"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'>'_x"><span·class="id"·title="notation">></span></a>·<a·class="idref"·href="Coq.ZArith.Zorder.html#m:4"><span·class="id"·title="variable">m</span></a>.<br/> |
49 | <br/> | 49 | <br/> |
50 | </div> | 50 | </div> |
51 | <div·class="doc"> | 51 | <div·class="doc"> |
52 | <a·id="lab | 52 | <a·id="lab899"></a><h1·class="section">Decidability·of·equality·and·order·on·Z</h1> |
53 | </div> | 53 | </div> |
54 | <div·class="code"> | 54 | <div·class="code"> |
55 | <br/> | 55 | <br/> |
56 | <span·class="id"·title="keyword">Notation</span>·<a·id="dec_eq"·class="idref"·href="#dec_eq"><span·class="id"·title="abbreviation">dec_eq</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.eq_decidable"><span·class="id"·title="lemma">Z.eq_decidable</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 56 | <span·class="id"·title="keyword">Notation</span>·<a·id="dec_eq"·class="idref"·href="#dec_eq"><span·class="id"·title="abbreviation">dec_eq</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.eq_decidable"><span·class="id"·title="lemma">Z.eq_decidable</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
57 | <span·class="id"·title="keyword">Notation</span>·<a·id="dec_Zle"·class="idref"·href="#dec_Zle"><span·class="id"·title="abbreviation">dec_Zle</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.le_decidable"><span·class="id"·title="lemma">Z.le_decidable</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> | 57 | <span·class="id"·title="keyword">Notation</span>·<a·id="dec_Zle"·class="idref"·href="#dec_Zle"><span·class="id"·title="abbreviation">dec_Zle</span></a>·:=·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.le_decidable"><span·class="id"·title="lemma">Z.le_decidable</span></a>·(<span·class="id"·title="var">only</span>·<span·class="id"·title="var">parsing</span>).<br/> |
Offset 19, 15 lines modified | Offset 19, 15 lines modified | ||
19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.BinInt.html#"><span·class="id"·title="library">BinInt</span></a>·<a·class="idref"·href="Coq.setoid_ring.Ring_theory.html#"><span·class="id"·title="library">Ring_theory</span></a>.<br/> | 19 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.BinInt.html#"><span·class="id"·title="library">BinInt</span></a>·<a·class="idref"·href="Coq.setoid_ring.Ring_theory.html#"><span·class="id"·title="library">Ring_theory</span></a>.<br/> |
20 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> | 20 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> |
21 | <br/> | 21 | <br/> |
22 | </div> | 22 | </div> |
23 | <div·class="doc"> | 23 | <div·class="doc"> |
24 | <a·id="lab | 24 | <a·id="lab946"></a><h1·class="section">Power·functions·over·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span></h1> |
25 | <div·class="paragraph">·</div> | 25 | <div·class="paragraph">·</div> |
26 | ·Nota·:·this·file·is·mostly·deprecated.·The·definition·of·<span·class="inlinecode"><span·class="id"·title="var">Z.pow</span></span> | 26 | ·Nota·:·this·file·is·mostly·deprecated.·The·definition·of·<span·class="inlinecode"><span·class="id"·title="var">Z.pow</span></span> |
27 | ····and·its·usual·properties·are·now·provided·by·module·<span·class="inlinecode"><span·class="id"·title="var">BinInt.Z</span></span>.· | 27 | ····and·its·usual·properties·are·now·provided·by·module·<span·class="inlinecode"><span·class="id"·title="var">BinInt.Z</span></span>.· |
28 | </div> | 28 | </div> |
29 | <div·class="code"> | 29 | <div·class="code"> |
Offset 97, 15 lines modified | Offset 97, 15 lines modified | ||
97 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zpower2_Psize"·class="idref"·href="#Zpower2_Psize"><span·class="id"·title="lemma">Zpower2_Psize</span></a>·<a·id="n:25"·class="idref"·href="#n:25"><span·class="id"·title="binder">n</span></a>·<a·id="p:26"·class="idref"·href="#p:26"><span·class="id"·title="binder">p</span></a>·:<br/> | 97 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Zpower2_Psize"·class="idref"·href="#Zpower2_Psize"><span·class="id"·title="lemma">Zpower2_Psize</span></a>·<a·id="n:25"·class="idref"·href="#n:25"><span·class="id"·title="binder">n</span></a>·<a·id="p:26"·class="idref"·href="#p:26"><span·class="id"·title="binder">p</span></a>·:<br/> |
98 | <a·class="idref"·href="Coq.Numbers.BinNums.html#Zpos"><span·class="id"·title="constructor">Zpos</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#p:26"><span·class="id"·title="variable">p</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·2<a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">^(</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#Z.of_nat"><span·class="id"·title="definition">Z.of_nat</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:25"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation"><-></span></a>·(<a·class="idref"·href="Coq.PArith.BinPos.html#Pos.size_nat"><span·class="id"·title="definition">Pos.size_nat</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#p:26"><span·class="id"·title="variable">p</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:25"><span·class="id"·title="variable">n</span></a>)%<span·class="id"·title="var">nat</span>.<br/> | 98 | <a·class="idref"·href="Coq.Numbers.BinNums.html#Zpos"><span·class="id"·title="constructor">Zpos</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#p:26"><span·class="id"·title="variable">p</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·2<a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">^(</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#Z.of_nat"><span·class="id"·title="definition">Z.of_nat</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:25"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'<->'_x"><span·class="id"·title="notation"><-></span></a>·(<a·class="idref"·href="Coq.PArith.BinPos.html#Pos.size_nat"><span·class="id"·title="definition">Pos.size_nat</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#p:26"><span·class="id"·title="variable">p</span></a>·<a·class="idref"·href="Coq.Init.Peano.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span·class="id"·title="notation"><=</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:25"><span·class="id"·title="variable">n</span></a>)%<span·class="id"·title="var">nat</span>.<br/> |
99 | <br/> | 99 | <br/> |
100 | </div> | 100 | </div> |
101 | <div·class="doc"> | 101 | <div·class="doc"> |
102 | <a·id="lab | 102 | <a·id="lab879"></a><h1·class="section">Z.pow·and·modulo</h1> |
103 | </div> | 103 | </div> |
104 | <div·class="code"> | 104 | <div·class="code"> |
105 | <br/> | 105 | <br/> |
106 | <span·class="id"·title="keyword">Theorem</span>·<a·id="Zpower_mod"·class="idref"·href="#Zpower_mod"><span·class="id"·title="lemma">Zpower_mod</span></a>·<a·id="p:27"·class="idref"·href="#p:27"><span·class="id"·title="binder">p</span></a>·<a·id="q:28"·class="idref"·href="#q:28"><span·class="id"·title="binder">q</span></a>·<a·id="n:29"·class="idref"·href="#n:29"><span·class="id"·title="binder">n</span></a>·:<br/> | 106 | <span·class="id"·title="keyword">Theorem</span>·<a·id="Zpower_mod"·class="idref"·href="#Zpower_mod"><span·class="id"·title="lemma">Zpower_mod</span></a>·<a·id="p:27"·class="idref"·href="#p:27"><span·class="id"·title="binder">p</span></a>·<a·id="q:28"·class="idref"·href="#q:28"><span·class="id"·title="binder">q</span></a>·<a·id="n:29"·class="idref"·href="#n:29"><span·class="id"·title="binder">n</span></a>·:<br/> |
107 | 0·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:29"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zpow_facts.html#p:27"><span·class="id"·title="variable">p</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">^</span></a><a·class="idref"·href="Coq.ZArith.Zpow_facts.html#q:28"><span·class="id"·title="variable">q</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:29"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zpow_facts.html#p:27"><span·class="id"·title="variable">p</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:29"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">)^</span></a><a·class="idref"·href="Coq.ZArith.Zpow_facts.html#q:28"><span·class="id"·title="variable">q</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:29"><span·class="id"·title="variable">n</span></a>.<br/> | 107 | 0·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'<'_x"><span·class="id"·title="notation"><</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:29"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zpow_facts.html#p:27"><span·class="id"·title="variable">p</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">^</span></a><a·class="idref"·href="Coq.ZArith.Zpow_facts.html#q:28"><span·class="id"·title="variable">q</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:29"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">(</span></a><a·class="idref"·href="Coq.ZArith.Zpow_facts.html#p:27"><span·class="id"·title="variable">p</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:29"><span·class="id"·title="variable">n</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#14ef112b66e341f773bd1e9d05816f43"><span·class="id"·title="notation">)^</span></a><a·class="idref"·href="Coq.ZArith.Zpow_facts.html#q:28"><span·class="id"·title="variable">q</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">)</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:x_'mod'_x"><span·class="id"·title="notation">mod</span></a>·<a·class="idref"·href="Coq.ZArith.Zpow_facts.html#n:29"><span·class="id"·title="variable">n</span></a>.<br/> |
Offset 20, 15 lines modified | Offset 20, 15 lines modified | ||
20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.ZArith.Zpow_def.html#"><span·class="id"·title="library">Zpow_def</span></a>.<br/> | 20 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Export</span>·<a·class="idref"·href="Coq.ZArith.Zpow_def.html#"><span·class="id"·title="library">Zpow_def</span></a>.<br/> |
21 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> | 21 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> |
22 | <br/> | 22 | <br/> |
23 | </div> | 23 | </div> |
24 | <div·class="doc"> | 24 | <div·class="doc"> |
25 | <a·id="lab9 | 25 | <a·id="lab908"></a><h1·class="section">Power·functions·over·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span></h1> |
26 | <div·class="paragraph">·</div> | 26 | <div·class="paragraph">·</div> |
27 | ·Nota·:·this·file·is·mostly·deprecated.·The·definition·of·<span·class="inlinecode"><span·class="id"·title="var">Z.pow</span></span> | 27 | ·Nota·:·this·file·is·mostly·deprecated.·The·definition·of·<span·class="inlinecode"><span·class="id"·title="var">Z.pow</span></span> |
28 | ····and·its·usual·properties·are·now·provided·by·module·<span·class="inlinecode"><span·class="id"·title="var">BinInt.Z</span></span>. | 28 | ····and·its·usual·properties·are·now·provided·by·module·<span·class="inlinecode"><span·class="id"·title="var">BinInt.Z</span></span>. |
29 | ····Powers·of·2·are·also·available·there·(see·<span·class="inlinecode"><span·class="id"·title="var">Z.shiftl</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Z.shiftr</span></span>). | 29 | ····Powers·of·2·are·also·available·there·(see·<span·class="inlinecode"><span·class="id"·title="var">Z.shiftl</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Z.shiftr</span></span>). |
30 | ····Only·remain·here: | 30 | ····Only·remain·here: |
Offset 118, 15 lines modified | Offset 118, 15 lines modified | ||
118 | <br/> | 118 | <br/> |
119 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Z_rem_mult"·class="idref"·href="#Z_rem_mult"><span·class="id"·title="lemma">Z_rem_mult</span></a>·<a·id="a:6"·class="idref"·href="#a:6"><span·class="id"·title="binder">a</span></a>·<a·id="b:7"·class="idref"·href="#b:7"><span·class="id"·title="binder">b</span></a>·:·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.rem"><span·class="id"·title="definition">Z.rem</span></a>·(<a·class="idref"·href="Coq.ZArith.Zquot.html#a:6"><span·class="id"·title="variable">a</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#d3ea1afb7d81263dc23c4eb0da2a3c4e"><span·class="id"·title="notation">*</span></a><a·class="idref"·href="Coq.ZArith.Zquot.html#b:7"><span·class="id"·title="variable">b</span></a>)·<a·class="idref"·href="Coq.ZArith.Zquot.html#b:7"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·0.<br/> | 119 | <span·class="id"·title="keyword">Lemma</span>·<a·id="Z_rem_mult"·class="idref"·href="#Z_rem_mult"><span·class="id"·title="lemma">Z_rem_mult</span></a>·<a·id="a:6"·class="idref"·href="#a:6"><span·class="id"·title="binder">a</span></a>·<a·id="b:7"·class="idref"·href="#b:7"><span·class="id"·title="binder">b</span></a>·:·<a·class="idref"·href="Coq.ZArith.BinInt.html#Z.rem"><span·class="id"·title="definition">Z.rem</span></a>·(<a·class="idref"·href="Coq.ZArith.Zquot.html#a:6"><span·class="id"·title="variable">a</span></a><a·class="idref"·href="Coq.ZArith.BinInt.html#d3ea1afb7d81263dc23c4eb0da2a3c4e"><span·class="id"·title="notation">*</span></a><a·class="idref"·href="Coq.ZArith.Zquot.html#b:7"><span·class="id"·title="variable">b</span></a>)·<a·class="idref"·href="Coq.ZArith.Zquot.html#b:7"><span·class="id"·title="variable">b</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span·class="id"·title="notation">=</span></a>·0.<br/> |
120 | · | 120 | · |
121 | <br/> | 121 | <br/> |
122 | </div> | 122 | </div> |
123 | <div·class="doc"> | 123 | <div·class="doc"> |
124 | <a·id="lab89 | 124 | <a·id="lab891"></a><h1·class="section">Division·and·Opposite</h1> |
125 | </div> | 125 | </div> |
126 | <div·class="code"> | 126 | <div·class="code"> |
127 | <br/> | 127 | <br/> |
128 | <br/> | 128 | <br/> |
Offset 34, 15 lines modified | Offset 34, 15 lines modified | ||
34 | <br/> | 34 | <br/> |
35 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> | 35 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> |
36 | <br/> | 36 | <br/> |
37 | </div> | 37 | </div> |
38 | <div·class="doc"> | 38 | <div·class="doc"> |
39 | <a·id="lab90 | 39 | <a·id="lab890"></a><h1·class="section">Moving·terms·from·one·side·to·the·other·of·an·inequality</h1> |
40 | </div> | 40 | </div> |
41 | <div·class="code"> | 41 | <div·class="code"> |
42 | <br/> | 42 | <br/> |
43 | <span·class="id"·title="keyword">Theorem</span>·<a·id="Zne_left"·class="idref"·href="#Zne_left"><span·class="id"·title="lemma">Zne_left</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.ZArith.BinInt.html#Zne"><span·class="id"·title="definition">Zne</span></a>·<a·class="idref"·href="Coq.ZArith.auxiliary.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.auxiliary.html#m:2"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#Zne"><span·class="id"·title="definition">Zne</span></a>·(<a·class="idref"·href="Coq.ZArith.auxiliary.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#46584eddd5fdb16176a10a2843177d3a"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.ZArith.auxiliary.html#m:2"><span·class="id"·title="variable">m</span></a>)·0.<br/> | 43 | <span·class="id"·title="keyword">Theorem</span>·<a·id="Zne_left"·class="idref"·href="#Zne_left"><span·class="id"·title="lemma">Zne_left</span></a>·<a·id="n:1"·class="idref"·href="#n:1"><span·class="id"·title="binder">n</span></a>·<a·id="m:2"·class="idref"·href="#m:2"><span·class="id"·title="binder">m</span></a>·:·<a·class="idref"·href="Coq.ZArith.BinInt.html#Zne"><span·class="id"·title="definition">Zne</span></a>·<a·class="idref"·href="Coq.ZArith.auxiliary.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.auxiliary.html#m:2"><span·class="id"·title="variable">m</span></a>·<a·class="idref"·href="Coq.Init.Logic.html#::type_scope:x_'->'_x"><span·class="id"·title="notation">-></span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#Zne"><span·class="id"·title="definition">Zne</span></a>·(<a·class="idref"·href="Coq.ZArith.auxiliary.html#n:1"><span·class="id"·title="variable">n</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#46584eddd5fdb16176a10a2843177d3a"><span·class="id"·title="notation">+</span></a>·<a·class="idref"·href="Coq.ZArith.BinInt.html#::Z_scope:'-'_x"><span·class="id"·title="notation">-</span></a>·<a·class="idref"·href="Coq.ZArith.auxiliary.html#m:2"><span·class="id"·title="variable">m</span></a>)·0.<br/> |
Offset 108, 15 lines modified | Offset 108, 15 lines modified | ||
108 | <br/> | 108 | <br/> |
109 | <span·class="id"·title="keyword">Section</span>·<a·id="Definitions"·class="idref"·href="#Definitions"><span·class="id"·title="section">Definitions</span></a>.<br/> | 109 | <span·class="id"·title="keyword">Section</span>·<a·id="Definitions"·class="idref"·href="#Definitions"><span·class="id"·title="section">Definitions</span></a>.<br/> |
110 | <br/> | 110 | <br/> |
111 | </div> | 111 | </div> |
112 | <div·class="doc"> | 112 | <div·class="doc"> |
113 | <a·id="lab | 113 | <a·id="lab622"></a><h1·class="section">Global,·inductive·definitions.</h1> |
114 | <div·class="paragraph">·</div> | 114 | <div·class="paragraph">·</div> |
115 | ·A·Horner·polynomial·is·either·a·constant,·or·a·product·P·×·(i·+·Q),·where·i· | 115 | ·A·Horner·polynomial·is·either·a·constant,·or·a·product·P·×·(i·+·Q),·where·i· |
116 | ··is·a·variable.· | 116 | ··is·a·variable.· |
117 | </div> | 117 | </div> |
118 | <div·class="code"> | 118 | <div·class="code"> |
Offset 28, 19 lines modified | Offset 28, 19 lines modified | ||
28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.Arith.html#"><span·class="id"·title="library">Arith</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.Arith.html#"><span·class="id"·title="library">Arith</span></a>.<br/> |
29 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.extraction.ExtrHaskellNatNum.html#"><span·class="id"·title="library">ExtrHaskellNatNum</span></a>.<br/> | 29 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.extraction.ExtrHaskellNatNum.html#"><span·class="id"·title="library">ExtrHaskellNatNum</span></a>.<br/> |
30 | <br/> | 30 | <br/> |
31 | </div> | 31 | </div> |
32 | <div·class="doc"> | 32 | <div·class="doc"> |
33 | <a·id="lab | 33 | <a·id="lab984"></a><h1·class="section">Disclaimer:·trying·to·obtain·efficient·certified·programs</h1> |
34 | <a·id="lab | 34 | <a·id="lab985"></a><h1·class="section">by·extracting·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span>·into·<span·class="inlinecode"><span·class="id"·title="var">Int</span></span>·is·definitively·*not*·a·good·idea.</h1> |
35 | <a·id="lab | 35 | <a·id="lab986"></a><h1·class="section">See·comments·in·<span·class="inlinecode"><span·class="id"·title="var">ExtrOcamlNatInt.v</span></span>.</h1> |
36 | · | 36 | · |
37 | </div> | 37 | </div> |
38 | <div·class="code"> | 38 | <div·class="code"> |
39 | <br/> | 39 | <br/> |
40 | <span·class="id"·title="keyword">Extract</span>·<span·class="id"·title="keyword">Inductive</span>·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·=>·"Prelude.Int"·[·"0"·"Prelude.succ"·]<br/> | 40 | <span·class="id"·title="keyword">Extract</span>·<span·class="id"·title="keyword">Inductive</span>·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·=>·"Prelude.Int"·[·"0"·"Prelude.succ"·]<br/> |
Offset 28, 19 lines modified | Offset 28, 19 lines modified | ||
28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.Arith.html#"><span·class="id"·title="library">Arith</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.Arith.Arith.html#"><span·class="id"·title="library">Arith</span></a>.<br/> |
29 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.extraction.ExtrHaskellNatNum.html#"><span·class="id"·title="library">ExtrHaskellNatNum</span></a>.<br/> | 29 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.extraction.ExtrHaskellNatNum.html#"><span·class="id"·title="library">ExtrHaskellNatNum</span></a>.<br/> |
30 | <br/> | 30 | <br/> |
31 | </div> | 31 | </div> |
32 | <div·class="doc"> | 32 | <div·class="doc"> |
33 | <a·id="lab | 33 | <a·id="lab990"></a><h1·class="section">Disclaimer:·trying·to·obtain·efficient·certified·programs</h1> |
34 | <a·id="lab | 34 | <a·id="lab991"></a><h1·class="section">by·extracting·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span>·into·<span·class="inlinecode"><span·class="id"·title="var">Integer</span></span>·isn't·necessarily·a·good·idea.</h1> |
35 | <a·id="lab | 35 | <a·id="lab992"></a><h1·class="section">See·comments·in·<span·class="inlinecode"><span·class="id"·title="var">ExtrOcamlNatInt.v</span></span>.</h1> |
36 | </div> | 36 | </div> |
37 | <div·class="code"> | 37 | <div·class="code"> |
38 | <br/> | 38 | <br/> |
39 | <span·class="id"·title="keyword">Extract</span>·<span·class="id"·title="keyword">Inductive</span>·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·=>·"Prelude.Integer"·[·"0"·"Prelude.succ"·]<br/> | 39 | <span·class="id"·title="keyword">Extract</span>·<span·class="id"·title="keyword">Inductive</span>·<a·class="idref"·href="Coq.Init.Datatypes.html#nat"><span·class="id"·title="inductive">nat</span></a>·=>·"Prelude.Integer"·[·"0"·"Prelude.succ"·]<br/> |
Offset 13, 23 lines modified | Offset 13, 23 lines modified | ||
13 | <h1·class="libtitle">Library·Coq.extraction.ExtrHaskellNatNum</h1> | 13 | <h1·class="libtitle">Library·Coq.extraction.ExtrHaskellNatNum</h1> |
14 | <div·class="code"> | 14 | <div·class="code"> |
15 | </div> | 15 | </div> |
16 | <div·class="doc"> | 16 | <div·class="doc"> |
17 | <a·id="lab | 17 | <a·id="lab979"></a><h1·class="section">Efficient·(but·uncertified)·extraction·of·usual·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span>·functions</h1> |
18 | <a·id="lab | 18 | <a·id="lab980"></a><h1·class="section">into·equivalent·versions·in·Haskell's·Prelude·that·are·defined</h1> |
19 | <a·id="lab | 19 | <a·id="lab981"></a><h1·class="section">for·any·<span·class="inlinecode"><span·class="id"·title="var">Num</span></span>·typeclass·instances.··Useful·in·combination·with</h1> |
20 | <a·id="lab | 20 | <a·id="lab982"></a><h1·class="section"><span·class="inlinecode"><span·class="id"·title="keyword">Extract</span></span>·<span·class="inlinecode"><span·class="id"·title="keyword">Inductive</span></span>·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span>·that·maps·<span·class="inlinecode"><span·class="id"·title="var">nat</span></span>·onto·a·Haskell·type·that</h1> |
21 | <a·id="lab | 21 | <a·id="lab983"></a><h1·class="section">implements·<span·class="inlinecode"><span·class="id"·title="var">Num</span></span>.</h1> |
22 | · | 22 | · |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
25 | <br/> | 25 | <br/> |
26 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.extraction.Extraction.html#"><span·class="id"·title="library">Coq.extraction.Extraction</span></a>.<br/> | 26 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.extraction.Extraction.html#"><span·class="id"·title="library">Coq.extraction.Extraction</span></a>.<br/> |
Offset 13, 15 lines modified | Offset 13, 15 lines modified | ||
13 | <h1·class="libtitle">Library·Coq.extraction.ExtrHaskellString</h1> | 13 | <h1·class="libtitle">Library·Coq.extraction.ExtrHaskellString</h1> |
14 | <div·class="code"> | 14 | <div·class="code"> |
15 | </div> | 15 | </div> |
16 | <div·class="doc"> | 16 | <div·class="doc"> |
17 | <a·id="lab | 17 | <a·id="lab998"></a><h1·class="section">Special·handling·of·ascii·and·strings·for·extraction·to·Haskell.</h1> |
18 | · | 18 | · |
19 | </div> | 19 | </div> |
20 | <div·class="code"> | 20 | <div·class="code"> |
21 | <br/> | 21 | <br/> |
22 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.extraction.Extraction.html#"><span·class="id"·title="library">Coq.extraction.Extraction</span></a>.<br/> | 22 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.extraction.Extraction.html#"><span·class="id"·title="library">Coq.extraction.Extraction</span></a>.<br/> |
Offset 28, 19 lines modified | Offset 28, 19 lines modified | ||
28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>.<br/> | 28 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.ZArith.ZArith.html#"><span·class="id"·title="library">ZArith</span></a>.<br/> |
29 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.extraction.ExtrHaskellZNum.html#"><span·class="id"·title="library">ExtrHaskellZNum</span></a>.<br/> | 29 | <span·class="id"·title="keyword">Require</span>·<span·class="id"·title="keyword">Import</span>·<a·class="idref"·href="Coq.extraction.ExtrHaskellZNum.html#"><span·class="id"·title="library">ExtrHaskellZNum</span></a>.<br/> |
30 | <br/> | 30 | <br/> |
31 | </div> | 31 | </div> |
32 | <div·class="doc"> | 32 | <div·class="doc"> |
33 | <a·id="lab | 33 | <a·id="lab987"></a><h1·class="section">Disclaimer:·trying·to·obtain·efficient·certified·programs</h1> |
34 | <a·id="lab | 34 | <a·id="lab988"></a><h1·class="section">by·extracting·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·into·<span·class="inlinecode"><span·class="id"·title="var">Int</span></span>·is·definitively·*not*·a·good·idea.</h1> |
35 | <a·id="lab | 35 | <a·id="lab989"></a><h1·class="section">See·comments·in·<span·class="inlinecode"><span·class="id"·title="var">ExtrOcamlNatInt.v</span></span>.</h1> |
36 | · | 36 | · |
37 | </div> | 37 | </div> |
38 | <div·class="code"> | 38 | <div·class="code"> |
39 | <br/> | 39 | <br/> |
40 | <span·class="id"·title="keyword">Extract</span>·<span·class="id"·title="keyword">Inductive</span>·<a·class="idref"·href="Coq.Numbers.BinNums.html#positive"><span·class="id"·title="inductive">positive</span></a>·=>·"Prelude.Int"·[<br/> | 40 | <span·class="id"·title="keyword">Extract</span>·<span·class="id"·title="keyword">Inductive</span>·<a·class="idref"·href="Coq.Numbers.BinNums.html#positive"><span·class="id"·title="inductive">positive</span></a>·=>·"Prelude.Int"·[<br/> |
Offset 13, 23 lines modified | Offset 13, 23 lines modified | ||
13 | <h1·class="libtitle">Library·Coq.extraction.ExtrHaskellZNum</h1> | 13 | <h1·class="libtitle">Library·Coq.extraction.ExtrHaskellZNum</h1> |
14 | <div·class="code"> | 14 | <div·class="code"> |
15 | </div> | 15 | </div> |
16 | <div·class="doc"> | 16 | <div·class="doc"> |
17 | <a·id="lab | 17 | <a·id="lab993"></a><h1·class="section">Efficient·(but·uncertified)·extraction·of·usual·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·functions</h1> |
18 | <a·id="lab | 18 | <a·id="lab994"></a><h1·class="section">into·equivalent·versions·in·Haskell's·Prelude·that·are·defined</h1> |
19 | <a·id="lab | 19 | <a·id="lab995"></a><h1·class="section">for·any·<span·class="inlinecode"><span·class="id"·title="var">Num</span></span>·typeclass·instances.··Useful·in·combination·with</h1> |
20 | <a·id="lab | 20 | <a·id="lab996"></a><h1·class="section"><span·class="inlinecode"><span·class="id"·title="keyword">Extract</span></span>·<span·class="inlinecode"><span·class="id"·title="keyword">Inductive</span></span>·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·that·maps·<span·class="inlinecode"><span·class="id"·title="var">Z</span></span>·onto·a·Haskell·type·that</h1> |
21 | <a·id="lab | 21 | <a·id="lab997"></a><h1·class="section">implements·<span·class="inlinecode"><span·class="id"·title="var">Num</span></span>.</h1> |
22 | · | 22 | · |
23 | </div> | 23 | </div> |
24 | <div·class="code"> | 24 | <div·class="code"> |
25 | <br/> | 25 | <br/> |
26 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.extraction.Extraction.html#"><span·class="id"·title="library">Coq.extraction.Extraction</span></a>.<br/> | 26 | <span·class="id"·title="keyword">Require</span>·<a·class="idref"·href="Coq.extraction.Extraction.html#"><span·class="id"·title="library">Coq.extraction.Extraction</span></a>.<br/> |
Offset 21, 15 lines modified | Offset 21, 15 lines modified | ||
21 | <br/> | 21 | <br/> |
22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> | 22 | <span·class="id"·title="keyword">Local·Open</span>·<span·class="id"·title="keyword">Scope</span>·<span·class="id"·title="var">Z_scope</span>.<br/> |
23 | <br/> | 23 | <br/> |
24 | </div> | 24 | </div> |
25 | <div·class="doc"> | 25 | <div·class="doc"> |
26 | <a·id="lab | 26 | <a·id="lab624"></a><h1·class="section"><span·class="inlinecode"><span·class="id"·title="var">Z.div_mod_to_equations</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z.quot_rem_to_equations</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z.to_euclidean_division_equations</span></span>:·the·tactics·for·preprocessing·<span·class="inlinecode"><span·class="id"·title="var">Z.div</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Z.modulo</span></span>,·<span·class="inlinecode"><span·class="id"·title="var">Z.quot</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Z.rem</span></span></h1> |
27 | <div·class="paragraph">·</div> | 27 | <div·class="paragraph">·</div> |
28 | ·These·tactic·use·the·complete·specification·of·<span·class="inlinecode"><span·class="id"·title="var">Z.div</span></span>·and | 28 | ·These·tactic·use·the·complete·specification·of·<span·class="inlinecode"><span·class="id"·title="var">Z.div</span></span>·and |
29 | ····<span·class="inlinecode"><span·class="id"·title="var">Z.modulo</span></span>·(<span·class="inlinecode"><span·class="id"·title="var">Z.quot</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Z.rem</span></span>,·respectively)·to·remove·these | 29 | ····<span·class="inlinecode"><span·class="id"·title="var">Z.modulo</span></span>·(<span·class="inlinecode"><span·class="id"·title="var">Z.quot</span></span>·and·<span·class="inlinecode"><span·class="id"·title="var">Z.rem</span></span>,·respectively)·to·remove·these |
30 | ····functions·from·the·goal·without·losing·information.··The | 30 | ····functions·from·the·goal·without·losing·information.··The |
31 | ····<span·class="inlinecode"><span·class="id"·title="var">Z.euclidean_division_equations_cleanup</span></span>·tactic·removes·needless | 31 | ····<span·class="inlinecode"><span·class="id"·title="var">Z.euclidean_division_equations_cleanup</span></span>·tactic·removes·needless |