set "baseuri" "cic:/matita/RELATIONAL-ARITHMETICS/add_props".
-include "nat_props.ma".
-include "add_defs.ma".
+include "add_gen.ma".
-theorem add_gen_O_2: \forall p,r. add p O r \to p = r.
- intros. inversion H; clear H; intros;
- [ reflexivity
- | lapply eq_gen_O_S to H2 as H0. apply H0
- ].
-qed.
-
-theorem add_gen_S_2: \forall p,q,r. add p (S q) r \to
- \exists s. r = (S s) \land add p q s.
- intros. inversion H; clear H; intros;
- [ lapply eq_gen_S_O to H as H0. apply H0
- | lapply eq_gen_S_S to H2 as H0. clear H2.
- rewrite > H0. clear H0.
- apply ex_intro; [| auto ] (**)
- ].
-qed.
-
theorem add_O_1: \forall q. add O q q.
intros. elim q; clear q; auto.
qed.
auto.
qed.
-theorem add_gen_O_1: \forall q,r. add O q r \to q = r.
- intros. auto.
-qed.
-
-theorem add_gen_S_1: \forall p,q,r. add (S p) q r \to
- \exists s. r = (S s) \land add p q s.
- intros. auto.
-qed.
-
theorem add_shift_S_dx: \forall p,q,r. add (S p) q r \to add p (S q) r.
intros.
lapply add_gen_S_1 to H as H0. clear H.