(* Contribution to the Coq Library   V6.3 (July 1999)                    *)
(****************************************************************************)
(*                 The Calculus of Inductive Constructions                  *)
(*                                                                          *)
(*                                Projet Coq                                *)
(*                                                                          *)
(*                     INRIA                        ENS-CNRS                *)
(*              Rocquencourt                        Lyon                    *)
(*                                                                          *)
(*                                Coq V5.10                                 *)
(*                              Nov 25th 1994                               *)
(*                                                                          *)
(****************************************************************************)
(*                                 Zbase.v                                  *)
(****************************************************************************)
(* Basic definitions on type Z *)
(*************)
Inductive Z : Set :=
| OZ : Z
| pos : nat -> Z
| neg : nat -> Z.
(***********)
Definition IZ := pos 0.
(****************)
(* was Fixpoint is_posn [x,z :Z] : Prop := Cases x z of OZ       y => False | (pos n) OZ => False | (pos n) (pos m) => (eq nat n m) | (pos n) (neg m) => False | (neg n) y => False end . *)
Definition is_posn (x z : Z) :=
match x, z with
| pos n, pos m => n = m :>nat
| _, _ => False
end.
unfold not in |- *; intros.
cut (is_posn (pos n) (pos m)).
simpl in |- *; exact H. rewrite H0; simpl in |- *; reflexivity.
Qed.

(**************)
Lemma eq_OZ_dec : forall x : Z, {x = OZ} + {x <> OZ}.