]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/ground_2/etc/relocation/trace_sle.etc
ground_2 released and permanently renamed as ground
[helm.git] / matita / matita / contribs / lambdadelta / ground_2 / etc / relocation / trace_sle.etc
diff --git a/matita/matita/contribs/lambdadelta/ground_2/etc/relocation/trace_sle.etc b/matita/matita/contribs/lambdadelta/ground_2/etc/relocation/trace_sle.etc
deleted file mode 100644 (file)
index be738b1..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||M||                                                             *)
-(*      ||A||       A project by Andrea Asperti                           *)
-(*      ||T||                                                             *)
-(*      ||I||       Developers:                                           *)
-(*      ||T||         The HELM team.                                      *)
-(*      ||A||         http://helm.cs.unibo.it                             *)
-(*      \   /                                                             *)
-(*       \ /        This file is distributed under the terms of the       *)
-(*        v         GNU General Public License Version 2                  *)
-(*                                                                        *)
-(**************************************************************************)
-
-include "ground_2/relocation/trace_at.ma".
-
-(* RELOCATION TRACE *********************************************************)
-
-inductive sle: relation trace ≝
-| sle_empty: sle (◊) (◊)
-| sle_true : ∀t1,t2. sle t1 t2 → sle (Ⓣ @ t1) (Ⓣ @ t2)
-| sle_false: ∀t1,t2,b. sle t1 t2 → sle (Ⓕ @ t1) (b @ t2)
-.
-
-interpretation
-   "inclusion (trace)"
-   'subseteq t1 t2 = (sle t1 t2).
-
-(* Basic properties *********************************************************)
-
-(* Basic forward lemmas *****************************************************)
-
-lemma sle_fwd_length: ∀t1,t2. t1 ⊆ t2 → |t1| = |t2|.
-#t1 #t2 #H elim H -t1 -t2 //
-qed-.
-
-lemma sle_fwd_colength: ∀t1,t2. t1 ⊆ t2 → ∥t1∥ ≤ ∥t2∥.
-#t1 #t2 #H elim H -t1 -t2 /2 width=1 by le_S_S/
-#t1 #t2 * /2 width=1 by le_S/
-qed-.
-
-(* Inversion lemmas on application ******************************************)
-
-lemma sle_inv_at: ∀t1,t2. t1 ⊆ t2 →
-                  ∀i,i1,i2. @⦃i, t1⦄ ≡ i1 → @⦃i, t2⦄  ≡ i2 → i2 ≤ i1.
-#t1 #t2 #H elim H -t1 -t2
-[ #i #i1 #i2 #_ #H2 elim (at_inv_empty … H2) -H2 //
-| #t1 #t2 #_ #IH #i #i1 #i2 #H0 #H2 elim (at_inv_true … H2) -H2 * //
-  #j1 #j2 #H1 #H2 #Hj destruct elim (at_inv_true_succ_sn … H0) -H0
-  /3 width=3 by le_S_S/
-| #t1 #t2 * #_ #IH #i #i1 #i2 #H0 #H2
-  [ elim (at_inv_true … H2) -H2 * //
-    #j #j2 #H1 #H2 #Hj2 destruct elim (at_inv_false … H0) -H0
-    #j1 #H #Hj1 destruct elim (at_monotonic … Hj1 j) -Hj1 //
-    #x #H1x #H2x @le_S_S /4 width=3 by lt_to_le, le_to_lt_to_lt/ (**) (* full auto too slow *)
-  | elim (at_inv_false … H2) elim (at_inv_false … H0) -H0 -H2
-    /3 width=3 by le_S_S/
-  ]
-]  
-qed-.