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: Wf_Z.v,v 1.20.2.1 2004/07/16 19:31:20 herbelin Exp $ i*)
35 include "ZArith/BinInt.ma".
37 include "ZArith/Zcompare.ma".
39 include "ZArith/Zorder.ma".
41 include "ZArith/Znat.ma".
43 include "ZArith/Zmisc.ma".
45 include "Arith/Wf_nat.ma".
48 Open Local Scope Z_scope.
51 (*#* Our purpose is to write an induction shema for {0,1,2,...}
52 similar to the [nat] schema (Theorem [Natlike_rec]). For that the
53 following implications will be used :
55 (n:nat)(Q n)==(n:nat)(P (inject_nat n)) ===> (x:Z)`x > 0) -> (P x)
61 (Q O) (n:nat)(Q n)->(Q (S n)) <=== (P 0) (x:Z) (P x) -> (P (Zs x))
63 <=== (inject_nat (S n))=(Zs (inject_nat n))
65 <=== inject_nat_complete
67 Then the diagram will be closed and the theorem proved. *)
69 inline procedural "cic:/Coq/ZArith/Wf_Z/Z_of_nat_complete.con" as lemma.
71 inline procedural "cic:/Coq/ZArith/Wf_Z/ZL4_inf.con" as lemma.
73 inline procedural "cic:/Coq/ZArith/Wf_Z/Z_of_nat_complete_inf.con" as lemma.
75 inline procedural "cic:/Coq/ZArith/Wf_Z/Z_of_nat_prop.con" as lemma.
77 inline procedural "cic:/Coq/ZArith/Wf_Z/Z_of_nat_set.con" as lemma.
79 inline procedural "cic:/Coq/ZArith/Wf_Z/natlike_ind.con" as lemma.
81 inline procedural "cic:/Coq/ZArith/Wf_Z/natlike_rec.con" as lemma.
87 (*#* [natlike_rec2] is the same as [natlike_rec], but with a different proof, designed
88 to give a better extracted term. *)
90 (* UNAVAILABLE OBJECT: cic:/Coq/ZArith/Wf_Z/Efficient_Rec/R.con ***********)
92 inline procedural "cic:/Coq/ZArith/Wf_Z/Efficient_Rec/R.con" "Efficient_Rec__" as definition.
94 (* UNAVAILABLE OBJECT: cic:/Coq/ZArith/Wf_Z/Efficient_Rec/R_wf.con ********)
96 inline procedural "cic:/Coq/ZArith/Wf_Z/Efficient_Rec/R_wf.con" "Efficient_Rec__" as definition.
98 inline procedural "cic:/Coq/ZArith/Wf_Z/natlike_rec2.con" as lemma.
100 (*#* A variant of the previous using [Zpred] instead of [Zs]. *)
102 inline procedural "cic:/Coq/ZArith/Wf_Z/natlike_rec3.con" as lemma.
104 (*#* A more general induction principal using [Zlt]. *)
106 inline procedural "cic:/Coq/ZArith/Wf_Z/Z_lt_rec.con" as lemma.
108 inline procedural "cic:/Coq/ZArith/Wf_Z/Z_lt_induction.con" as lemma.