-definition is_S: nat \to Prop \def
- \lambda n. match n with
- [ O \Rightarrow False
- | (S n) \Rightarrow True
- ].
-
-definition pred: nat \to nat \def
- \lambda n. match n with
- [ O \Rightarrow O
- | (S n) \Rightarrow n
- ].
-
-theorem eq_gen_S_O: \forall x. (S x = O) \to \forall P:Prop. P.
-intros. apply False_ind. cut (is_S O). elim Hcut. rewrite < H. apply I.
-qed.
-
-theorem eq_gen_S_O_cc: (\forall P:Prop. P) \to \forall x. (S x = O).
-intros. apply H.
-qed.
-
-theorem eq_gen_S_S: \forall m,n. (S m) = (S n) \to m = n.
-intros. cut ((pred (S m)) = (pred (S n))).
-assumption. elim H. autobatch.
-qed.
-
-theorem eq_gen_S_S_cc: \forall m,n. m = n \to (S m) = (S n).
-intros. elim H. autobatch.
+theorem eq_S_S: \forall m,n. m = n \to (S m) = (S n).
+intros; destruct; autobatch.