From 7a38c18c277529cb0e0d72d46cd73f6e1097309b Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Tue, 17 Jan 2017 20:41:45 +0000 Subject: [PATCH] lfpx_frees and confluence of lfpr! --- .../basic_2/rt_transition/lfpr_lfpr.ma | 8 +++++++ .../basic_2/rt_transition/lfpr_lfpx.ma | 4 ++++ .../basic_2/rt_transition/lfpr_main.ma | 21 ------------------- .../basic_2/rt_transition/lfpx_frees.ma | 5 ----- .../basic_2/rt_transition/partial.txt | 2 +- .../lambdadelta/basic_2/web/basic_2.ldw.xml | 3 +++ .../lambdadelta/basic_2/web/basic_2_src.tbl | 4 ++-- 7 files changed, 18 insertions(+), 29 deletions(-) delete mode 100644 matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_main.ma diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpr.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpr.ma index 80310acaf..fe854ea45 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpr.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpr.ma @@ -12,11 +12,14 @@ (* *) (**************************************************************************) +include "basic_2/static/lfxs_lfxs.ma". +include "basic_2/rt_transition/lfpx_frees.ma". include "basic_2/rt_transition/cpm_lsubr.ma". include "basic_2/rt_transition/cpr.ma". include "basic_2/rt_transition/cpr_drops.ma". include "basic_2/rt_transition/lfpr_drops.ma". include "basic_2/rt_transition/lfpr_fqup.ma". +include "basic_2/rt_transition/lfpr_lfpx.ma". (* PARALLEL R-TRANSITION FOR LOCAL ENV.S ON REFERRED ENTRIES ****************) @@ -371,3 +374,8 @@ lemma lfpr_cpr_conf_sn: ∀h,G,L0,T0,T1. ⦃G, L0⦄ ⊢ T0 ➡[h] T1 → ∀L1. #h #G #L0 #T0 #T1 #HT01 #L1 #HL01 elim (cpr_conf_lfpr … HT01 T0 … L0 … HL01) /2 width=3 by ex2_intro/ qed-. + +(* Main properties **********************************************************) + +theorem lfpr_conf: ∀h,G,T. confluent … (lfpr h G T). +/4 width=6 by cpr_conf_lfpr, lfpx_frees_conf_fwd_lfpr, lfpx_frees_conf, lfxs_conf/ qed-. diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpx.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpx.ma index 47323a86d..aea28258e 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpx.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpx.ma @@ -20,5 +20,9 @@ include "basic_2/rt_transition/lfpr.ma". (* Fwd. lemmas with unc. rt-transition for local env.s on referred entries **) +lemma lfpx_frees_conf_fwd_lfpr: ∀h,G. lexs_frees_confluent (cpx h G) cfull → + lexs_frees_confluent (cpm 0 h G) cfull. +/4 width=7 by cpm_fwd_cpx, lexs_co/ qed-. + lemma lfpr_fwd_lfpx: ∀h,T,G,L1,L2. ⦃G, L1⦄ ⊢ ➡[h, T] L2 → ⦃G, L1⦄ ⊢ ⬈[h, T] L2. /3 width=3 by cpm_fwd_cpx, lfxs_co/ qed-. diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_main.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_main.ma deleted file mode 100644 index de8e8a719..000000000 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_main.ma +++ /dev/null @@ -1,21 +0,0 @@ -(**************************************************************************) -(* ___ *) -(* ||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/lfxs_lfxs.ma". -include "basic_2/rt_transition/lfpr_lfpr.ma". - -theorem lfpr_conf: ∀h,G,T. confluent … (lfpr h G T). -#h #G @lfxs_conf [ | @cpr_conf_lfpr ] -qed-. - diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpx_frees.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpx_frees.ma index 250760ca7..46fd8a229 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpx_frees.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpx_frees.ma @@ -22,11 +22,6 @@ include "basic_2/rt_transition/cpx_drops.ma". (* Properties with context-sensitive free variables *************************) -axiom frees_pair_flat: ∀L,T,f1,I1,V1. L.ⓑ{I1}V1 ⊢ 𝐅*⦃T⦄ ≡ f1 → - ∀f2,I2,V2. L.ⓑ{I2}V2 ⊢ 𝐅*⦃T⦄ ≡ f2 → - ∀f0. f1 ⋓ f2 ≡ f0 → - ∀I0,I. L.ⓑ{I0}ⓕ{I}V1.V2 ⊢ 𝐅*⦃T⦄ ≡ f0. - (* Basic_2A1: was: lpx_cpx_frees_trans *) lemma cpx_frees_conf_lfpx: ∀h,G,L1,T1,f1. L1 ⊢ 𝐅*⦃T1⦄ ≡ f1 → ∀L2. L1 ⦻*[cpx h G, cfull, f1] L2 → diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/partial.txt b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/partial.txt index d0eb3451c..26a059fa7 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/partial.txt +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/partial.txt @@ -1,6 +1,6 @@ cpg.ma cpg_simple.ma cpg_drops.ma cpg_lsubr.ma cpx.ma cpx_simple.ma cpx_drops.ma cpx_lsubr.ma -lfpx.ma lfpx_length.ma lfpx_drops.ma lfpx_fqup.ma +lfpx.ma lfpx_length.ma lfpx_drops.ma lfpx_fqup.ma lfpx_frees.ma cpm.ma cpm_simple.ma cpm_drops.ma cpm_lsubr.ma cpm_cpx.ma cpr.ma cpr_drops.ma lfpr.ma lfpr_length.ma lfpr_drops.ma lfpr_fqup.ma lfpr_lfpx.ma lfpr_lfpr.ma diff --git a/matita/matita/contribs/lambdadelta/basic_2/web/basic_2.ldw.xml b/matita/matita/contribs/lambdadelta/basic_2/web/basic_2.ldw.xml index d5f8b0b7f..9f80ad898 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/web/basic_2.ldw.xml +++ b/matita/matita/contribs/lambdadelta/basic_2/web/basic_2.ldw.xml @@ -34,6 +34,9 @@ Stage "A2": "Extending the Applicability Condition" + + Confluence for parallel r-transition on referred entries of local environments. + Confluence for context-sensitive parallel r-transition on terms. diff --git a/matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl b/matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl index 14974f02b..fa1bbc81a 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl +++ b/matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl @@ -138,7 +138,7 @@ table { } ] [ { "context-sensitive rt-reduction" * } { - [ "lpx_drop" + "lpx_frees" + "lpx_lleq" + "lpx_aaa" * ] + [ "lpx_lleq" + "lpx_aaa" * ] [ "cpx_lreq" + "cpx_fqus" + "cpx_llpx_sn" + "cpx_lleq" * ] } ] @@ -150,7 +150,7 @@ table { } ] [ { "uncounted context-sensitive rt-transition" * } { - [ "lfpx ( ⦃?,?⦄ ⊢ ⬈[?,?] ? )" "lfpx_length" + "lfpx_drops" + "lfpx_fqup" * ] + [ "lfpx ( ⦃?,?⦄ ⊢ ⬈[?,?] ? )" "lfpx_length" + "lfpx_drops" + "lfpx_fqup" + "lfpx_frees" * ] [ "cpx ( ⦃?,?⦄ ⊢ ? ⬈[?] ? )" "cpx_simple" + "cpx_drops" + "cpx_lsubr" * ] } ] -- 2.39.2