]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/contribs/POPLmark/Fsub/defn.ma
New version.
[helm.git] / helm / software / matita / contribs / POPLmark / Fsub / defn.ma
index 7907405ff9057c62e9644697ee0336eb10cb0764..184166ed9346616940e739b222dd408a327e623b 100644 (file)
@@ -12,7 +12,6 @@
 (*                                                                        *)
 (**************************************************************************)
 
-set "baseuri" "cic:/matita/Fsub/defn".
 include "Fsub/util.ma".
 
 (*** representation of Fsub types ***)  
@@ -153,18 +152,19 @@ intros 2;elim G
   [elim H;elim H1;lapply (not_in_list_nil ? ? H2);elim Hletin
   |elim H1;elim H2;elim (in_list_cons_case ? ? ? ? H3)
      [rewrite < H4;simplify;apply in_list_head
-     |simplify;apply in_list_cons;apply H;apply (ex_intro ? ? a);
-      apply (ex_intro ? ? a1);assumption]]
+     |simplify;apply in_list_cons;apply H;apply (ex_intro ? ? a1);
+      apply (ex_intro ? ? a2);assumption]]
 qed.
 
 lemma natinfv_boundinenv : \forall x,G.(in_list ? x (fv_env G)) \to
                               \exists B,T.(in_list ? (mk_bound B x T) G).
 intros 2;elim G 0
   [simplify;intro;lapply (not_in_list_nil ? ? H);elim Hletin
-  |intros 3;elim t;simplify in H1;elim (in_list_cons_case ? ? ? ? H1)
-     [rewrite < H2;apply (ex_intro ? ? b);apply (ex_intro ? ? t1);apply in_list_head
-     |elim (H H2);elim H3;apply (ex_intro ? ? a);
-      apply (ex_intro ? ? a1);apply in_list_cons;assumption]]
+  |intros 3;
+   elim a;simplify in H1;elim (in_list_cons_case ? ? ? ? H1)
+     [rewrite < H2;apply (ex_intro ? ? b);apply (ex_intro ? ? t);apply in_list_head
+     |elim (H H2);elim H3;apply (ex_intro ? ? a1);
+      apply (ex_intro ? ? a2);apply in_list_cons;assumption]]
 qed.
 
 lemma incl_bound_fv : \forall l1,l2.(incl ? l1 l2) \to 
@@ -200,7 +200,7 @@ lemma fv_env_extends : \forall H,x,B,C,T,U,G.
                           (fv_env (H @ ((mk_bound B x T) :: G))) = 
                           (fv_env (H @ ((mk_bound C x U) :: G))).
 intros;elim H
-  [simplify;reflexivity|elim t;simplify;rewrite > H1;reflexivity]
+  [simplify;reflexivity|elim a;simplify;rewrite > H1;reflexivity]
 qed.
 
 lemma lookup_env_extends : \forall G,H,B,C,D,T,U,V,x,y.
@@ -237,12 +237,12 @@ cut (\forall l:(list nat).\exists n.\forall m.
   |intros;elim l
     [apply (ex_intro ? ? O);intros;unfold;intro;elim (not_in_list_nil ? ? H1)
     |elim H;
-     apply (ex_intro ? ? (S (max a t))).
+     apply (ex_intro ? ? (S (max a1 a))).
      intros.unfold. intro.
      elim (in_list_cons_case ? ? ? ? H3)
       [rewrite > H4 in H2.autobatch
       |elim H4
-         [apply (H1 m ? H4).apply (trans_le ? (max a t));autobatch
+         [apply (H1 m ? H4).apply (trans_le ? (max a1 a));autobatch
          |assumption]]]]
 qed.
 
@@ -309,7 +309,7 @@ intros 7;elim H 0
   [simplify;intros;(*FIXME*)generalize in match H1;intro;inversion H1;intros
      [lapply (nil_cons ? G (mk_bound B x T));elim (Hletin H4)
      |destruct H8;apply (WFE_cons ? ? ? ? H4 H6 H2)]
-  |intros;simplify;generalize in match H2;elim t;simplify in H4;
+  |intros;simplify;generalize in match H2;elim a;simplify in H4;
    inversion H4;intros
      [destruct H5
      |destruct H9;apply WFE_cons
@@ -361,6 +361,7 @@ intros.inversion H;intros
   |destruct H5|*:destruct H6]
 qed.
 
+(*
 (* elim vs inversion *)
 lemma JS_trans_TFree: ∀G,T,X.G ⊢ T ⊴ (TFree X) →
   ∀U.G ⊢ (TFree X) ⊴ U → G ⊢ T ⊴ U.
@@ -372,6 +373,7 @@ intros 4.cut (∀Y.TFree Y = TFree X → ∀U.G ⊢ (TFree Y) ⊴ U → G ⊢ T
     |apply (SA_Trans_TVar ? ? ? ? H1);apply (H3 Y);assumption
     |*:destruct H5]]
 qed.
+*)
 
 lemma fv_append : ∀G,H.fv_env (G @ H) = (fv_env G @ fv_env H).
 intro;elim G;simplify;autobatch paramodulation;