X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fetc%2Flift_i%2Flift_constructors.etc;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fetc%2Flift_i%2Flift_constructors.etc;h=4eeb2ab6d9eda5930dc40cf7fba5e7b0318e4b59;hb=4ac2becfaa45abb18acb2bdf3db5d2587cadb6d4;hp=0000000000000000000000000000000000000000;hpb=f5b6fd3125c0aefa1db23fbdd23b887fa964f385;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/lift_i/lift_constructors.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/lift_i/lift_constructors.etc new file mode 100644 index 000000000..4eeb2ab6d --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/etc/lift_i/lift_constructors.etc @@ -0,0 +1,47 @@ +(**************************************************************************) +(* ___ *) +(* ||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 "delayed_updating/substitution/lift_prototerm_eq.ma". +include "delayed_updating/substitution/lift_path_uni.ma". +include "delayed_updating/syntax/prototerm_constructors.ma". + +(* LIFT FOR PROTOTERM *******************************************************) + +lemma lift_iref_bi (t1) (t2) (n): + t1 ⇔ t2 → 𝛗n.t1 ⇔ 𝛗n.t2. +/2 width=1 by subset_equivalence_ext_f1_bi/ +qed. + +lemma lift_iref_sn (f) (t:prototerm) (n:pnat): + (𝛗f@⧣❨n❩.t) ⊆ ↑[f](𝛗n.t). +#f #t #n #p * #q #Hq #H0 destruct +@(ex2_intro … (𝗱n◗𝗺◗q)) +/2 width=1 by in_comp_iref/ +qed-. + +lemma lift_iref_dx (f) (t) (n:pnat): + ↑[f](𝛗n.t) ⊆ 𝛗f@⧣❨n❩.t. +#f #t #n #p * #q #Hq #H0 destruct +elim (in_comp_inv_iref … Hq) -Hq #p #H0 #Hp destruct +/2 width=1 by in_comp_iref/ +qed-. + +lemma lift_iref (f) (t) (n:pnat): + (𝛗f@⧣❨n❩.t) ⇔ ↑[f](𝛗n.t). +/3 width=1 by conj, lift_iref_sn, lift_iref_dx/ +qed. + +lemma lift_iref_uni (t) (m) (n): + (𝛗(n+m).t) ⇔ ↑[𝐮❨m❩](𝛗n.t). +// qed.