(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/Z/z".
-
include "datatypes/bool.ma".
include "nat/nat.ma".
| pos : nat \to Z
| neg : nat \to Z.
+interpretation "Integers" 'Z = Z.
+
definition Z_of_nat \def
\lambda n. match n with
[ O \Rightarrow OZ
| (S n)\Rightarrow pos n].
-coercion cic:/matita/Z/z/Z_of_nat.con.
+coercion Z_of_nat.
definition neg_Z_of_nat \def
\lambda n. match n with
(* goal: x=pos y=pos *)
elim (decidable_eq_nat n n1:((n=n1) \lor ((n=n1) \to False))).
left.apply eq_f.assumption.
- right.unfold Not.intros (H_inj).apply H. destruct H_inj. assumption.
+ right.unfold Not.intros (H_inj).apply H. destruct H_inj. reflexivity.
(* goal: x=pos y=neg *)
right.unfold Not.intro.apply (not_eq_pos_neg n n1). assumption.
(* goal: x=neg *)