| (S p) \Rightarrow p ].
theorem pred_Sn : \forall n:nat.n=(pred (S n)).
-intros; reflexivity.
+intros. reflexivity.
qed.
theorem injective_S : injective nat nat S.
-simplify.
+unfold injective.
intros.
rewrite > pred_Sn.
-rewrite > pred_Sn y.
+rewrite > (pred_Sn y).
apply eq_f. assumption.
qed.
theorem not_eq_S : \forall n,m:nat.
\lnot n=m \to S n \neq S m.
-intros. simplify. intros.
+intros. unfold Not. intros.
apply H. apply injective_S. assumption.
qed.
| (S p) \Rightarrow True ].
theorem not_eq_O_S : \forall n:nat. O \neq S n.
-intros. simplify. intros.
+intros. unfold Not. intros.
cut (not_zero O).
exact Hcut.
rewrite > H.exact I.
(\forall n,m:nat. R n m \to R (S n) (S m)) \to \forall n,m:nat. R n m.
intros 5.elim n.
apply H.
-apply nat_case m.apply H1.
+apply (nat_case m).apply H1.
intros.apply H2. apply H3.
qed.
theorem decidable_eq_nat : \forall n,m:nat.decidable (n=m).
-intros.simplify.
-apply nat_elim2 (\lambda n,m.(Or (n=m) ((n=m) \to False))).
+intros.unfold decidable.
+apply (nat_elim2 (\lambda n,m.(Or (n=m) ((n=m) \to False)))).
intro.elim n1.
left.reflexivity.
right.apply not_eq_O_S.
intro.right.intro.
-apply not_eq_O_S n1.
+apply (not_eq_O_S n1).
apply sym_eq.assumption.
intros.elim H.
left.apply eq_f. assumption.