]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/contribs/RELATIONAL/NPlus/props.ma
- new tactic subst removes simple non recursive equalities from the context
[helm.git] / helm / software / matita / contribs / RELATIONAL / NPlus / props.ma
index a40187c65740bdf57362a887d94fda6fcf68b1de..5e7cc1b7f592c8bca10f3516ad9d1398cf4fb5c3 100644 (file)
@@ -24,20 +24,20 @@ theorem nplus_succ_1: \forall p,q,r. NPlus p q r \to
                       (succ p) + q == (succ r).
  intros 2. elim q; clear q;
  [ lapply linear nplus_gen_zero_2 to H as H0.
-   rewrite > H0. clear H0 p
+   subst
  | lapply linear nplus_gen_succ_2 to H1 as H0.
    decompose.
-   rewrite > H2. clear H2 r
+   subst
  ]; auto.
 qed.
 
 theorem nplus_sym: \forall p,q,r. (p + q == r) \to q + p == r.
  intros 2. elim q; clear q;
  [ lapply linear nplus_gen_zero_2 to H as H0.
-   rewrite > H0. clear H0 p
+   subst
  | lapply linear nplus_gen_succ_2 to H1 as H0.
    decompose.
-   rewrite > H2. clear H2 r
+   subst
  ]; auto.
 qed.
 
@@ -45,18 +45,14 @@ theorem nplus_shift_succ_sx: \forall p,q,r.
                              (p + (succ q) == r) \to (succ p) + q == r.
  intros.
  lapply linear nplus_gen_succ_2 to H as H0.
- decompose.
- rewrite > H1. clear H1 r.
- auto.
+ decompose. subst. auto.
 qed.
 
 theorem nplus_shift_succ_dx: \forall p,q,r. 
                              ((succ p) + q == r) \to p + (succ q) == r.
  intros.
  lapply linear nplus_gen_succ_1 to H as H0.
- decompose.
- rewrite > H1. clear H1 r.
- auto.
+ decompose. subst. auto.
 qed.
 
 theorem nplus_trans_1: \forall p,q1,r1. (p + q1 == r1) \to 
@@ -64,13 +60,11 @@ theorem nplus_trans_1: \forall p,q1,r1. (p + q1 == r1) \to
                        \exists q. (q1 + q2 == q) \land p + q == r2.
  intros 2; elim q1; clear q1; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
-   rewrite > H0. clear H0 p
+   subst.
  | lapply linear nplus_gen_succ_2 to H1 as H0.
-   decompose.
-   rewrite > H3. rewrite > H3 in H2. clear H3 r1.
+   decompose. subst.
    lapply linear nplus_gen_succ_1 to H2 as H0.
-   decompose.
-   rewrite > H2. clear H2 r2.
+   decompose. subst.
    lapply linear H to H4, H3 as H0.
    decompose.
  ]; apply ex_intro; [| auto || auto ]. (**)
@@ -81,13 +75,11 @@ theorem nplus_trans_2: \forall p1,q,r1. (p1 + q == r1) \to
                        \exists p. (p1 + p2 == p) \land p + q == r2.
  intros 2; elim q; clear q; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
-   rewrite > H0. clear H0 p1
+   subst
  | lapply linear nplus_gen_succ_2 to H1 as H0.
-   decompose.
-   rewrite > H3. rewrite > H3 in H2. clear H3 r1.
+   decompose. subst.
    lapply linear nplus_gen_succ_2 to H2 as H0.
-   decompose.
-   rewrite > H2. clear H2 r2.
+   decompose. subst.
    lapply linear H to H4, H3 as H0.
    decompose.
  ]; apply ex_intro; [| auto || auto ]. (**)
@@ -97,12 +89,10 @@ theorem nplus_conf: \forall p,q,r1. (p + q == r1) \to
                     \forall r2. (p + q == r2) \to r1 = r2.
  intros 2. elim q; clear q; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
-   rewrite > H0 in H1. clear H0 p
+   subst
  | lapply linear nplus_gen_succ_2 to H1 as H0.
-   decompose.
-   rewrite > H3. clear H3 r1.
+   decompose. subst.
    lapply linear nplus_gen_succ_2 to H2 as H0.
-   decompose.
-   rewrite > H2. clear H2 r2.
+   decompose. subst.
  ]; auto.
 qed.