X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fdynamic%2Fcnv.ma;h=c3fa8e11bcb9000d92c76518604cf109360f305a;hb=5c92c318030a05c766b3f6070dbd23589cbdee04;hp=97c1feca2ff0271bf2794c13797b2a8ee76b5799;hpb=ede00573e3e4cb28df7ca9a5dae6228c2b432608;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv.ma b/matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv.ma index 97c1feca2..c3fa8e11b 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv.ma @@ -13,6 +13,8 @@ (**************************************************************************) include "basic_2/notation/relations/exclaim_5.ma". +include "basic_2/notation/relations/exclaim_4.ma". +include "basic_2/notation/relations/exclaimstar_4.ma". include "basic_2/rt_computation/cpms.ma". (* CONTEXT-SENSITIVE NATIVE VALIDITY FOR TERMS ******************************) @@ -33,6 +35,12 @@ inductive cnv (a) (h): relation3 genv lenv term ≝ interpretation "context-sensitive native validity (term)" 'Exclaim a h G L T = (cnv a h G L T). +interpretation "context-sensitive restricted native validity (term)" + 'Exclaim h G L T = (cnv true h G L T). + +interpretation "context-sensitive extended native validity (term)" + 'ExclaimStar h G L T = (cnv false h G L T). + (* Basic inversion lemmas ***************************************************) fact cnv_inv_zero_aux (a) (h): ∀G,L,X. ⦃G, L⦄ ⊢ X ![a, h] → X = #0 → @@ -140,7 +148,17 @@ lemma cnv_inv_cast (a) (h): ∀G,L,U,T. ⦃G, L⦄ ⊢ ⓝU.T ![a, h] → ⦃G, L⦄ ⊢ U ➡*[h] U0 & ⦃G, L⦄ ⊢ T ➡*[1, h] U0. /2 width=3 by cnv_inv_cast_aux/ qed-. -(* Basic_2A1: removed theorems 6: - snv_fwd_da snv_fwd_lstas snv_cast_scpes +(* Basic forward lemmas *****************************************************) + +lemma cnv_fwd_flat (a) (h) (I) (G) (L): + ∀V,T. ⦃G, L⦄ ⊢ ⓕ{I}V.T ![a,h] → + ∧∧ ⦃G, L⦄ ⊢ V ![a,h] & ⦃G, L⦄ ⊢ T ![a,h]. +#a #h * #G #L #V #T #H +[ elim (cnv_inv_appl … H) #n #p #W #U #_ #HV #HT #_ #_ +| elim (cnv_inv_cast … H) #U #HV #HT #_ #_ +] -H /2 width=1 by conj/ +qed-. + +(* Basic_2A1: removed theorems 3: shnv_cast shnv_inv_cast snv_shnv_cast *)