]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/apps_2/etc/models/model_lift.etc
update in models and ground_2
[helm.git] / matita / matita / contribs / lambdadelta / apps_2 / etc / models / model_lift.etc
diff --git a/matita/matita/contribs/lambdadelta/apps_2/etc/models/model_lift.etc b/matita/matita/contribs/lambdadelta/apps_2/etc/models/model_lift.etc
new file mode 100644 (file)
index 0000000..9775f57
--- /dev/null
@@ -0,0 +1,40 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "basic_2/substitution/lift.ma".
+include "apps_2/models/model_lower.ma".
+include "apps_2/models/model_sound.ma".
+
+(* MODEL ********************************************************************)
+
+(* Forward lemmas on basic relocation ***************************************)
+
+lemma sound_fwd_lift: ∀M. sound M → extensional M →
+                      ∀sv,gv,T1,T2,l,m. ⬆[l, m] T1 ≡ T2 →
+                      ∀lv. 〚T1〛{sv, gv, ↓[l, m]⦋M⦌ lv} = 〚T2〛{sv, gv, lv}.
+#M #H1M #H2M #sv #gv #T1 #T2 #l #m #H elim H -T1 -T2 -l -m
+[ #k #l #m #lv >(m1 … H1M) >(m1 … H1M) -H1M //
+| #i #l #m #Hil #lv >(m2 … H1M) >(m2 … H1M) -H1M >lower_lt //
+| #i #l #m #Hli #lv >(m2 … H1M) >(m2 … H1M) -H1M >lower_ge //
+| #p #l #m #lv >(m3 … H1M) >(m3 … H1M) -H1M //
+| #a * #V1 #V2 #T1 #T2 #l #m #_ #_ #IHV12 #IHT12 #lv
+  [ >(m4 … H1M) >(m4 … H1M) /3 width=1 by raise_lower_lt, sound_ti_eq_l/
+  | @(mx … H2M) /3 width=1 by raise_lower_lt, sound_ti_eq_l/
+  ]
+| * #V1 #V2 #T1 #T2 #l #m #_ #_ #IHV12 #IHT12 #lv
+  [ >(m6 … H1M) >(m6 … H1M) /3 width=1 by eq_f2/
+  | >(m7 … H1M) >(m7 … H1M) /2 width=1 by/
+  ]
+]
+qed-.