X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fi_dynamic%2Fntas_cpcs.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fi_dynamic%2Fntas_cpcs.ma;h=8438e030746076a61b6b0be1eca4188e4cd8544c;hb=86861e6f031df66824a381527dfe847029ff72bc;hp=0000000000000000000000000000000000000000;hpb=7e6fea0332e132a8cb89c689ba68c5e884c4354c;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_cpcs.ma b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_cpcs.ma new file mode 100644 index 000000000..8438e0307 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_cpcs.ma @@ -0,0 +1,36 @@ +(**************************************************************************) +(* ___ *) +(* ||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/rt_equivalence/cpcs_cprs.ma". +include "basic_2/i_dynamic/ntas.ma". + +(* ITERATED NATIVE TYPE ASSIGNMENT FOR TERMS ********************************) + +(* Properties with r-equivalence for terms **********************************) + +lemma ntas_zero (h) (a) (G) (L): + ∀T1,T2. ⦃G,L⦄ ⊢ T1 ![h,a] → ⦃G,L⦄ ⊢ T2 ![h,a] → ⦃G,L⦄ ⊢ T1 ⬌*[h] T2 → ⦃G,L⦄ ⊢ T1 :*[h,a,0] T2. +#h #a #G #L #T1 #T2 #HT1 #HT2 #H +elim (cpcs_inv_cprs … H) -H #T0 #HT10 #HT20 +/2 width=3 by ntas_intro/ +qed. + +(* Inversion lemmas with r-equivalence for terms ****************************) + +lemma ntas_inv_zero (h) (a) (G) (L): + ∀T1,T2. ⦃G,L⦄ ⊢ T1 :*[h,a,0] T2 → + ∧∧ ⦃G,L⦄ ⊢ T1 ![h,a] & ⦃G,L⦄ ⊢ T2 ![h,a] & ⦃G,L⦄ ⊢ T1 ⬌*[h] T2. +#h #a #G #L #T1 #T2 * #T0 #HT1 #HT2 #HT20 #HT10 +/3 width=3 by cprs_div, and3_intro/ +qed-.