X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_conversion%2Flpce.ma;h=8da6c1af49c1378e4bb34e543aff6651b478f5b9;hb=f308429a0fde273605a2330efc63268b4ac36c99;hp=8aca0e26b4b29abd55221bcf4227bcc6bf3689b9;hpb=bbb6dd07ecb430bf06bb52c2506626106449a5af;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_conversion/lpce.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_conversion/lpce.ma index 8aca0e26b..8da6c1af4 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_conversion/lpce.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_conversion/lpce.ma @@ -14,7 +14,7 @@ include "static_2/relocation/lex.ma". include "basic_2/notation/relations/pconveta_4.ma". -include "basic_2/rt_conversion/cpce.ma". +include "basic_2/rt_conversion/cpce_ext.ma". (* PARALLEL ETA-CONVERSION FOR FULL LOCAL ENVIRONMENTS **********************) @@ -24,6 +24,13 @@ interpretation "parallel eta-conversion on all entries (local environment)" 'PConvEta h G L1 L2 = (lpce h G L1 L2). +(* Basic properties *********************************************************) + +lemma lpce_bind (h) (G): + ∀K1,K2. ⦃G,K1⦄ ⊢ ⬌η[h] K2 → + ∀I1,I2. ⦃G,K1⦄ ⊢ I1 ⬌η[h] I2 → ⦃G,K1.ⓘ{I1}⦄ ⊢ ⬌η[h] K2.ⓘ{I2}. +/2 width=1 by lex_bind/ qed. + (* Advanced properties ******************************************************) lemma lpce_pair (h) (G): @@ -37,15 +44,25 @@ lemma lpce_inv_atom_sn (h) (G): ∀L2. ⦃G,⋆⦄ ⊢ ⬌η[h] L2 → L2 = ⋆. /2 width=2 by lex_inv_atom_sn/ qed-. +lemma lpce_inv_bind_sn (h) (G): + ∀I1,L2,K1. ⦃G,K1.ⓘ{I1}⦄ ⊢ ⬌η[h] L2 → + ∃∃I2,K2. ⦃G,K1⦄ ⊢ ⬌η[h] K2 & ⦃G,K1⦄ ⊢ I1 ⬌η[h] I2 & L2 = K2.ⓘ{I2}. +/2 width=1 by lex_inv_bind_sn/ qed-. + lemma lpce_inv_atom_dx (h) (G): ∀L1. ⦃G,L1⦄ ⊢ ⬌η[h] ⋆ → L1 = ⋆. /2 width=2 by lex_inv_atom_dx/ qed-. +lemma lpce_inv_bind_dx (h) (G): + ∀I2,L1,K2. ⦃G,L1⦄ ⊢ ⬌η[h] K2.ⓘ{I2} → + ∃∃I1,K1. ⦃G,K1⦄ ⊢ ⬌η[h] K2 & ⦃G,K1⦄ ⊢ I1 ⬌η[h] I2 & L1 = K1.ⓘ{I1}. +/2 width=1 by lex_inv_bind_dx/ qed-. + (* Advanced inversion lemmas ************************************************) lemma lpce_inv_unit_sn (h) (G): ∀I,L2,K1. ⦃G,K1.ⓤ{I}⦄ ⊢ ⬌η[h] L2 → - ∃∃K2. ⦃G, K1⦄ ⊢ ⬌η[h] K2 & L2 = K2.ⓤ{I}. + ∃∃K2. ⦃G,K1⦄ ⊢ ⬌η[h] K2 & L2 = K2.ⓤ{I}. /2 width=1 by lex_inv_unit_sn/ qed-. lemma lpce_inv_pair_sn (h) (G):