]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/contribs/LAMBDA-TYPES/Unified-Sub/Lift/inv.ma
$(H) added :)
[helm.git] / helm / software / matita / contribs / LAMBDA-TYPES / Unified-Sub / Lift / inv.ma
index 35540f87ae8cd59d698c3f93d7737e8a8afffd8f..152ec11d6fd6af36e1fc222a8777045138dcc9a7 100644 (file)
 (*                                                                        *)
 (**************************************************************************)
 
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/inv".
-
-include "Lift/defs.ma".
+include "Unified-Sub/Lift/defs.ma".
 
 (* Inversion properties *****************************************************)
 
 theorem lift_inv_sort_1: \forall l, i, h, x.
                          Lift l i (sort h) x \to
                          x = sort h.
- intros. inversion H; clear H; intros; subst. autobatch.
+ intros. inversion H; clear H; intros; destruct. autobatch.
 qed.
 
 theorem lift_inv_lref_1: \forall l, i, j1, x.
@@ -30,7 +28,7 @@ theorem lift_inv_lref_1: \forall l, i, j1, x.
                          (i <= j1 \land 
                           \exists j2. (l + j1 == j2) \land x = lref j2
                          ).
- intros. inversion H; clear H; intros; subst; autobatch depth = 5.
+ intros. inversion H; clear H; intros; destruct; autobatch depth = 5 size = 7.
 qed.
 
 theorem lift_inv_bind_1: \forall l, i, r, u1, t1, x.
@@ -39,7 +37,7 @@ theorem lift_inv_bind_1: \forall l, i, r, u1, t1, x.
                          Lift l i u1 u2 \land
                          Lift l (succ i) t1 t2 \land
                          x = intb r u2 t2.
- intros. inversion H; clear H; intros; subst. autobatch depth = 5.
+ intros. inversion H; clear H; intros; destruct; autobatch depth = 5 size = 7.
 qed.
 
 theorem lift_inv_flat_1: \forall l, i, r, u1, t1, x.
@@ -48,13 +46,13 @@ theorem lift_inv_flat_1: \forall l, i, r, u1, t1, x.
                          Lift l i u1 u2 \land
                          Lift l i t1 t2 \land
                          x = intf r u2 t2.
- intros. inversion H; clear H; intros; subst. autobatch depth = 5.
+ intros. inversion H; clear H; intros; destruct. autobatch depth = 5 size = 7.
 qed.
 
 theorem lift_inv_sort_2: \forall l, i, x, h.
                          Lift l i x (sort h) \to
                          x = sort h.
- intros. inversion H; clear H; intros; subst. autobatch.
+ intros. inversion H; clear H; intros; destruct. autobatch.
 qed.
 
 theorem lift_inv_lref_2: \forall l, i, x, j2.
@@ -63,7 +61,7 @@ theorem lift_inv_lref_2: \forall l, i, x, j2.
                          (i <= j2 \land 
                           \exists j1. (l + j1 == j2) \land x = lref j1
                          ).
- intros. inversion H; clear H; intros; subst; autobatch depth = 5.
+ intros. inversion H; clear H; intros; destruct; autobatch depth = 5 size = 10.
 qed.
 
 theorem lift_inv_bind_2: \forall l, i, r, x, u2, t2.
@@ -72,7 +70,7 @@ theorem lift_inv_bind_2: \forall l, i, r, x, u2, t2.
                          Lift l i u1 u2 \land
                          Lift l (succ i) t1 t2 \land
                          x = intb r u1 t1.
- intros. inversion H; clear H; intros; subst. autobatch depth = 5.
+ intros. inversion H; clear H; intros; destruct. autobatch depth = 5 size = 7.
 qed.
 
 theorem lift_inv_flat_2: \forall l, i, r, x, u2, t2.
@@ -81,7 +79,7 @@ theorem lift_inv_flat_2: \forall l, i, r, x, u2, t2.
                          Lift l i u1 u2 \land
                          Lift l i t1 t2 \land
                          x = intf r u1 t1.
- intros. inversion H; clear H; intros; subst. autobatch depth = 5.
+ intros. inversion H; clear H; intros; destruct. autobatch depth = 5 size = 7.
 qed.
 
 (* Corollaries of inversion properties ***************************************)
@@ -90,7 +88,7 @@ theorem lift_inv_lref_1_gt: \forall l, i, j1, x.
                             Lift l i (lref j1) x \to
                             i > j1 \to x = lref j1.
  intros.
- lapply linear lift_inv_lref_1 to H. decompose; subst;
+ lapply linear lift_inv_lref_1 to H. decompose; destruct;
  [ autobatch
  | lapply linear nle_false to H2, H1. decompose
  ].
@@ -100,7 +98,7 @@ theorem lift_inv_lref_1_le: \forall l, i, j1, x.
                             Lift l i (lref j1) x \to i <= j1 \to 
                             \exists j2. (l + j1 == j2) \land x = lref j2.
  intros.
- lapply linear lift_inv_lref_1 to H. decompose; subst;
+ lapply linear lift_inv_lref_1 to H. decompose; destruct;
  [ lapply linear nle_false to H1, H2. decompose
  | autobatch
  ].
@@ -111,9 +109,9 @@ theorem lift_inv_lref_1_le_nplus: \forall l, i, j1, x.
                                  i <= j1 \to \forall j2. (l + j1 == j2) \to
                                  x = lref j2.
  intros.
- lapply linear lift_inv_lref_1 to H. decompose; subst;
+ lapply linear lift_inv_lref_1 to H. decompose; destruct;
  [ lapply linear nle_false to H1, H3. decompose
- | lapply linear nplus_mono to H2, H4. subst. autobatch
+ | lapply linear nplus_mono to H2, H4. destruct. autobatch
  ].
 qed.
 
@@ -121,7 +119,7 @@ theorem lift_inv_lref_2_gt: \forall l, i, x, j2.
                             Lift l i x (lref j2) \to
                             i > j2 \to x = lref j2.
  intros.
- lapply linear lift_inv_lref_2 to H. decompose; subst;
+ lapply linear lift_inv_lref_2 to H. decompose; destruct;
  [ autobatch
  | lapply linear nle_false to H2, H1. decompose
  ].
@@ -131,7 +129,7 @@ theorem lift_inv_lref_2_le: \forall l, i, x, j2.
                             Lift l i x (lref j2) \to i <= j2 \to 
                             \exists j1. (l + j1 == j2) \land x = lref j1.
  intros.
- lapply linear lift_inv_lref_2 to H. decompose; subst;
+ lapply linear lift_inv_lref_2 to H. decompose; destruct;
  [ lapply linear nle_false to H1, H2. decompose
  | autobatch
  ].
@@ -142,8 +140,8 @@ theorem lift_inv_lref_2_le_nplus: \forall l, i, x, j2.
                                   i <= j2 \to \forall j1. (l + j1 == j2) \to
                                   x = lref j1.
  intros.
- lapply linear lift_inv_lref_2 to H. decompose; subst;
+ lapply linear lift_inv_lref_2 to H. decompose; destruct;
  [ lapply linear nle_false to H1, H3. decompose
- | lapply linear nplus_inj_2 to H2, H4. subst. autobatch
+ | lapply linear nplus_inj_2 to H2, H4. destruct. autobatch
  ].
 qed.