(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NPlus/fun".
+
include "NPlus/inv.ma".
(* Functional properties ****************************************************)
-theorem nplus_total: \forall p,q. \exists r. p + q == r.
- intros 2. elim q; clear q;
- [ auto | decompose. auto ].
+theorem nplus_total: ∀p,q. ∃r. p ⊕ q ≍ r.
+ intros; elim q; clear q;
+ [ autobatch | decompose; autobatch ].
qed.
-theorem nplus_mono: \forall p,q,r1. (p + q == r1) \to
- \forall r2. (p + q == r2) \to r1 = r2.
- intros 4. elim H; clear H q r1;
- [ lapply linear nplus_gen_zero_2 to H1
- | lapply linear nplus_gen_succ_2 to H3. decompose
- ]; subst; auto.
+theorem nplus_mono: ∀p,q,r1. p ⊕ q ≍ r1 →
+ ∀r2. p ⊕ q ≍ r2 → r1 = r2.
+ intros 4; elim H; clear H q r1;
+ [ lapply linear nplus_inv_zero_2 to H1
+ | lapply linear nplus_inv_succ_2 to H3. decompose
+ ]; destruct; autobatch.
qed.
-theorem nplus_inj_1: \forall p1, q, r. (p1 + q == r) \to
- \forall p2. (p2 + q == r) \to p2 = p1.
- intros 4. elim H; clear H q r;
- [ lapply linear nplus_gen_zero_2 to H1
- | lapply linear nplus_gen_succ_2_3 to H3
- ]; auto.
+theorem nplus_inj_1: ∀p1, q, r. p1 ⊕ q ≍ r →
+ ∀p2. p2 ⊕ q ≍ r → p2 = p1.
+ intros 4; elim H; clear H q r;
+ [ lapply linear nplus_inv_zero_2 to H1
+ | lapply linear nplus_inv_succ_2_3 to H3
+ ]; autobatch.
qed.