]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/coq-contribs/LAMBDA-TYPES/pr2_subst1.v
ocaml 3.09 transition
[helm.git] / helm / coq-contribs / LAMBDA-TYPES / pr2_subst1.v
index 988237fc1347064c50b94c56628fa48ebedec3ff..5c73028752538e286b182fc14cf1bc54533c8d09 100644 (file)
@@ -9,8 +9,9 @@ Require pr2_defs.
    Section pr2_subst1_props. (***********************************************)
 
       Theorem pr2_delta1: (c,d:?; u:?; i:?) (drop i (0) c (CTail d (Bind Abbr) u)) ->
-                          (t1,t2:?) (subst1 i u t1 t2) -> (pr2 c t1 t2).
-      Intros; XElim H0; Clear t2; XEAuto.
+                          (t1,t2:?) (pr0 t1 t2) -> (t:?) (subst1 i u t2 t) -> 
+                         (pr2 c t1 t).
+      Intros; XElim H1; Clear t; XEAuto.
       Qed.
 
       Hints Resolve pr2_delta1 : ltlc.
@@ -19,16 +20,17 @@ Require pr2_defs.
                           (t1,t2:?) (pr2 c t1 t2) ->
                           (w1:?) (subst1 i v t1 w1) ->
                           (EX w2 | (pr2 c w1 w2) & (subst1 i v t2 w2)).
-     Intros until 2; XElim H0; Intros.
-(* case 1: pr2_pr0 *)
-     Pr0Subst1; XEAuto.
+     Intros until 2; XElim H0; Intros; 
+     Pr0Subst1.
+(* case 1: pr2_free *)
+     XEAuto.
 (* case 2: pr2_delta *)
      Apply (neq_eq_e i i0); Intros.
 (* case 2.1: i <> i0 *)
      Subst1Confluence; XEAuto.
 (* case 2.2: i = i0 *)
-     Rewrite <- H3 in H0; Rewrite <- H3 in H1; Clear H3 i0.
-     DropDis; Inversion H0; Rewrite H5 in H2; Clear H0 H4 H5 e v.
+     Rewrite <- H4 in H0; Rewrite <- H4 in H2; Clear H4 i0.
+     DropDis; Inversion H0; Rewrite H6 in H3; Clear H0 H5 H6 e v.
      Subst1Confluence; XEAuto.
      Qed.