1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
19 (*#***********************************************************************)
21 (* v * The Coq Proof Assistant / The Coq Development Team *)
23 (* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
25 (* \VV/ **************************************************************)
27 (* // * This file is distributed under the terms of the *)
29 (* * GNU Lesser General Public License Version 2.1 *)
31 (*#***********************************************************************)
33 (*i $Id: Zcomplements.v,v 1.26.2.1 2004/07/16 19:31:21 herbelin Exp $ i*)
35 include "ZArith/ZArith_base.ma".
37 include "Arith/Wf_nat.ma".
40 Open Local Scope Z_scope.
43 (*#*********************************************************************)
47 inline procedural "cic:/Coq/ZArith/Zcomplements/two_or_two_plus_one.con" as lemma.
49 (*#*********************************************************************)
51 (*#* The biggest power of 2 that is stricly less than [a]
53 Easy to compute: replace all "1" of the binary representation by
54 "0", except the first "1" (or the first one :-) *)
56 inline procedural "cic:/Coq/ZArith/Zcomplements/floor_pos.con" as definition.
58 inline procedural "cic:/Coq/ZArith/Zcomplements/floor.con" as definition.
60 inline procedural "cic:/Coq/ZArith/Zcomplements/floor_gt0.con" as lemma.
62 inline procedural "cic:/Coq/ZArith/Zcomplements/floor_ok.con" as lemma.
64 (*#*********************************************************************)
66 (*#* Two more induction principles over [Z]. *)
68 inline procedural "cic:/Coq/ZArith/Zcomplements/Z_lt_abs_rec.con" as theorem.
70 inline procedural "cic:/Coq/ZArith/Zcomplements/Z_lt_abs_induction.con" as theorem.
72 (*#* To do case analysis over the sign of [z] *)
74 inline procedural "cic:/Coq/ZArith/Zcomplements/Zcase_sign.con" as lemma.
76 inline procedural "cic:/Coq/ZArith/Zcomplements/sqr_pos.con" as lemma.
78 (*#*********************************************************************)
80 (*#* A list length in Z, tail recursive. *)
82 include "Lists/List.ma".
84 inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_aux.con" as definition.
86 inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength.con" as definition.
89 Implicit Arguments Zlength [A].
93 Section Zlength_properties
97 cic:/Coq/ZArith/Zcomplements/Zlength_properties/A.var
101 Implicit Type l : list A.
104 inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_correct.con" as lemma.
106 inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_nil.con" as lemma.
108 inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_cons.con" as lemma.
110 inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_nil_inv.con" as lemma.
113 End Zlength_properties
117 Implicit Arguments Zlength_correct [A].
121 Implicit Arguments Zlength_cons [A].
125 Implicit Arguments Zlength_nil_inv [A].