]> matita.cs.unibo.it Git - helm.git/commitdiff
update in basic_2
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Mon, 5 Mar 2018 23:41:50 +0000 (00:41 +0100)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Mon, 5 Mar 2018 23:41:50 +0000 (00:41 +0100)
+ new equivalent of lfsx opens the road to lfsx_pair_lpxs
+ minor corrections

matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfpxs_lpxs.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx_lpxs.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/rt_computation/lsubsx_lfsx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/partial.txt
matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_lfeq.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl

index fa56ac09c806666345372163c95d4ead953ed4a2..746bc369e0b5c13727b950567702a7a71f94b004 100644 (file)
@@ -22,12 +22,15 @@ include "basic_2/rt_computation/lfpxs.ma".
 
 (* Properties with uncounted parallel rt-computation for local environments *)
 
+lemma lfpxs_lpxs: ∀h,G,L1,L2,T. ⦃G, L1⦄ ⊢ ⬈*[h] L2 → ⦃G, L1⦄ ⊢ ⬈*[h, T] L2.
+/2 width=1 by tc_lfxs_lex/ qed.
+
 lemma lfpxs_lpxs_lfeq: ∀h,G,L1,L. ⦃G, L1⦄ ⊢ ⬈*[h] L →
                        ∀L2,T. L ≡[T] L2 → ⦃G, L1⦄ ⊢ ⬈*[h, T] L2.
 /2 width=3 by tc_lfxs_lex_lfeq/ qed.
 
 (* Inversion lemmas with uncounted parallel rt-computation for local envs ***)
 
-lemma tc_lfxs_inv_lex_lfeq: ∀h,G,L1,L2,T. ⦃G, L1⦄ ⊢ ⬈*[h, T] L2 →
-                            ∃∃L. ⦃G, L1⦄ ⊢ ⬈*[h] L & L ≡[T] L2.
+lemma lfpxs_inv_lpxs_lfeq: ∀h,G,L1,L2,T. ⦃G, L1⦄ ⊢ ⬈*[h, T] L2 →
+                           ∃∃L. ⦃G, L1⦄ ⊢ ⬈*[h] L & L ≡[T] L2.
 /3 width=5 by lfpx_fsle_comp, lpx_cpxs_trans, lfeq_cpx_trans, tc_lfxs_inv_lex_lfeq/ qed-.
diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx_lpxs.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx_lpxs.ma
new file mode 100644 (file)
index 0000000..8c8bd5a
--- /dev/null
@@ -0,0 +1,44 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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/static/lfdeq_lfeq.ma".
+include "basic_2/rt_computation/lfpxs_lpxs.ma".
+include "basic_2/rt_computation/lfsx_lfpxs.ma".
+
+(* STRONGLY NORMALIZING LOCAL ENV.S FOR UNCOUNTED PARALLEL RT-TRANSITION ****)
+
+(* Properties with uncounted rt-computation *********************************)
+
+lemma lfsx_intro_lpxs: ∀h,o,G,L1,T.
+                       (∀L2. ⦃G, L1⦄ ⊢ ⬈*[h] L2 → (L1 ≛[h, o, T] L2 → ⊥) → G ⊢ ⬈*[h, o, T] 𝐒⦃L2⦄) →
+                       G ⊢ ⬈*[h, o, T] 𝐒⦃L1⦄.
+#h #o #G #L1 #T #HT
+@lfsx_intro_lfpxs #L2 #H
+elim (lfpxs_inv_lpxs_lfeq … H) -H
+/6 width=3 by lfsx_lfdeq_trans, lfdeq_trans, lfeq_lfdeq/
+qed-.
+
+lemma lfsx_lpxs_trans: ∀h,o,G,L1,T. G ⊢ ⬈*[h, o, T] 𝐒⦃L1⦄ →
+                       ∀L2. ⦃G, L1⦄ ⊢ ⬈*[h] L2 → G ⊢ ⬈*[h, o, T] 𝐒⦃L2⦄.
+/3 width=3 by lfsx_lfpxs_trans, lfpxs_lpxs/ qed-.
+
+(* Eliminators with uncounted rt-computation ********************************)
+
+lemma lfsx_ind_lpxs: ∀h,o,G,T. ∀R:predicate lenv.
+                     (∀L1. G ⊢ ⬈*[h, o, T] 𝐒⦃L1⦄ →
+                           (∀L2. ⦃G, L1⦄ ⊢ ⬈*[h] L2 → (L1 ≛[h, o, T] L2 → ⊥) → R L2) →
+                           R L1
+                     ) →
+                     ∀L. G ⊢ ⬈*[h, o, T] 𝐒⦃L⦄  → R L.
+/5 width=6 by lfsx_ind_lfpxs, lfpxs_lpxs/ qed-.
index 4ef9cf96238e41a1c213148fc011d42563e6c2fe..059cb1ece177dee1167068ee30d3f8c145d34bd2 100644 (file)
@@ -62,3 +62,12 @@ qed-.
 lemma lfsx_cpx_trans: ∀h,o,G,L,T1,T2. ⦃G, L⦄ ⊢ T1 ⬈[h] T2 →
                       G ⊢ ⬈*[h, o, T1] 𝐒⦃L⦄ → G ⊢ ⬈*[h, o, T2] 𝐒⦃L⦄.
 /3 width=6 by lfsx_cpx_trans_lsubsx, lsubsx_refl/ qed-.
+
+(* Properties with strong normalizing env's for uncounted rt-computation ****)
+
+lemma lfsx_cpxs_trans: ∀h,o,G,L,T1,T2. ⦃G, L⦄ ⊢ T1 ⬈*[h] T2 →
+                       G ⊢ ⬈*[h, o, T1] 𝐒⦃L⦄ → G ⊢ ⬈*[h, o, T2] 𝐒⦃L⦄.
+#h #o #G #L #T1 #T2 #H
+@(cpxs_ind_dx ???????? H) -T1 //
+/3 width=3 by lfsx_cpx_trans/
+qed-.
index 6b53efa076f2fe08cce225939d517a3126423c24..8bd713ca3c902a0576cffc9d1b801fdfed6cf9aa 100644 (file)
@@ -4,5 +4,5 @@ lpxs.ma lpxs_length.ma
 lfpxs.ma lfpxs_length.ma lfpxs_drops.ma lfpxs_fqup.ma lfpxs_lfdeq.ma lfpxs_aaa.ma lfpxs_cpxs.ma lfpxs_lpxs.ma lfpxs_lfpxs.ma
 csx.ma csx_simple.ma csx_simple_theq.ma csx_drops.ma csx_lsubr.ma csx_lfdeq.ma csx_aaa.ma csx_gcp.ma csx_gcr.ma csx_lfpx.ma csx_cnx.ma csx_cpxs.ma csx_lfpxs.ma csx_csx.ma
 csx_vector.ma csx_cnx_vector.ma csx_csx_vector.ma 
-lfsx.ma lfsx_drops.ma lfsx_fqup.ma lfsx_lfpxs.ma lfsx_lfsx.ma
+lfsx.ma lfsx_drops.ma lfsx_fqup.ma lfsx_lpxs.ma lfsx_lfpxs.ma lfsx_lfsx.ma
 lsubsx.ma lsubsx_lfsx.ma lsubsx_lsubsx.ma
diff --git a/matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_lfeq.ma b/matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_lfeq.ma
new file mode 100644 (file)
index 0000000..41b2c03
--- /dev/null
@@ -0,0 +1,23 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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/static/lfeq.ma".
+include "basic_2/static/lfdeq.ma".
+
+(* DEGREE-BASED EQUIVALENCE FOR LOCAL ENVIRONMENTS ON REFERRED ENTRIES ******)
+
+(* Properties with syntactic equivalence on referred entries ****************)
+
+lemma lfeq_lfdeq: ∀h,o,L1,L2,T. L1 ≡[T] L2 → L1 ≛[h, o, T] L2.
+/2 width=3 by lfxs_co/ qed.
index 3f4cb8fbf314965bb850894c810ccd88c6499b2e..3a40bb09a0c30e68c34884932dc95d2a2b5f695e 100644 (file)
@@ -108,7 +108,7 @@ table {
 *)
         [ { "uncounted context-sensitive parallel rt-computation" * } {
              [ [ "refinement for lenvs" ] "lsubsx" + "( ? ⊢ ? ⊆ⓧ[?,?,?] ? )" "lsubsx_lfsx" + "lsubsx_lsubsx" * ]
-             [ [ "strongly normalizing for lenvs on referred entries" ] "lfsx" + "( ? ⊢ ⬈*[?,?,?] 𝐒⦃?⦄ )" "lfsx_drops" + "lfsx_fqup" + "lfsx_lfpxs" + "lfsx_lfsx" * ]
+             [ [ "strongly normalizing for lenvs on referred entries" ] "lfsx" + "( ? ⊢ ⬈*[?,?,?] 𝐒⦃?⦄ )" "lfsx_drops" + "lfsx_fqup" + "lfsx_cpxs" + "lfsx_lfpxs" + "lfsx_lfsx" * ]
              [ [ "strongly normalizing for term vectors" ] "csx_vector" + "( ⦃?,?⦄ ⊢ ⬈*[?,?] 𝐒⦃?⦄ )" "csx_cnx_vector" + "csx_csx_vector" * ]
              [ [ "strongly normalizing for terms" ] "csx" + "( ⦃?,?⦄ ⊢ ⬈*[?,?] 𝐒⦃?⦄ )" "csx_simple" + "csx_simple_theq" + "csx_drops" + "csx_lsubr" + "csx_lfdeq" + "csx_aaa" + "csx_gcp" + "csx_gcr" + "csx_lfpx" + "csx_cnx" + "csx_cpxs" + "csx_lfpxs" + "csx_csx" * ]
              [ [ "for lenvs on referred entries" ] "lfpxs" + "( ⦃?,?⦄ ⊢ ⬈*[?,?] ? )" "lfpxs_length" + "lfpxs_drops" + "lfpxs_fqup" + "lfpxs_lfdeq" + "lfpxs_aaa" + "lfpxs_cpxs" + "lfpxs_lpxs" + "lfpxs_lfpxs" * ]
@@ -173,7 +173,7 @@ table {
         ]
         [ { "degree-based equivalence" * } {
              [ [ "for closures on referred entries" ] "ffdeq" + "( ⦃?,?,?⦄ ≛[?,?] ⦃?,?,?⦄ )" "ffdeq_fqup" + "ffdeq_ffdeq" * ]
-             [ [ "for lenvs on referred entries" ] "lfdeq" + "( ? ≛[?,?,?] ? )" "lfdeq_length" + "lfdeq_drops" + "lfdeq_fqup" + "lfdeq_fqus" + "lfdeq_lfdeq" * ]
+             [ [ "for lenvs on referred entries" ] "lfdeq" + "( ? ≛[?,?,?] ? )" "lfdeq_length" + "lfdeq_drops" + "lfdeq_fqup" + "lfdeq_fqus" + "lfdeq_lfeq" + "lfdeq_lfdeq" * ]
           }
         ]
         [ { "syntactic equivalence" * } {