From f5fa6554c93bec72a5bb098c0a2991fe294883b6 Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Mon, 30 May 2022 23:50:58 +0200 Subject: [PATCH 1/1] update in delayed_updating + lift: additions and refactoring + reduction: WIP --- .../delayed_updating/reduction/dfr_lift.ma | 70 +++++++++++++++++ .../delayed_updating/reduction/ifr_unwind.ma | 77 +++++++++++++++++++ .../delayed_updating/substitution/lift.ma | 2 +- .../substitution/lift_constructors.ma | 2 +- .../delayed_updating/substitution/lift_eq.ma | 3 +- .../{lift_after.ma => lift_path_after.ma} | 4 +- .../{lift_id.ma => lift_path_id.ma} | 4 +- .../substitution/lift_path_proper.ma | 42 ++++++++++ .../{lift_uni.ma => lift_path_uni.ma} | 6 +- .../substitution/lift_prototerm_eq.ma | 2 +- .../substitution/lift_prototerm_id.ma | 6 +- .../substitution/lift_prototerm_proper.ma | 36 +++++++++ 12 files changed, 242 insertions(+), 12 deletions(-) create mode 100644 matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_lift.ma create mode 100644 matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_unwind.ma rename matita/matita/contribs/lambdadelta/delayed_updating/substitution/{lift_after.ma => lift_path_after.ma} (98%) rename matita/matita/contribs/lambdadelta/delayed_updating/substitution/{lift_id.ma => lift_path_id.ma} (97%) create mode 100644 matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_proper.ma rename matita/matita/contribs/lambdadelta/delayed_updating/substitution/{lift_uni.ma => lift_path_uni.ma} (94%) create mode 100644 matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm_proper.ma diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_lift.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_lift.ma new file mode 100644 index 000000000..d25ddc502 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_lift.ma @@ -0,0 +1,70 @@ +(**************************************************************************) +(* ___ *) +(* ||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 "delayed_updating/reduction/dfr.ma". +include "delayed_updating/reduction/ifr.ma". +(* +include "delayed_updating/unwind/unwind2_constructors.ma". +include "delayed_updating/unwind/unwind2_preterm_fsubst.ma". +include "delayed_updating/unwind/unwind2_preterm_eq.ma". +include "delayed_updating/unwind/unwind2_prototerm_lift.ma". +include "delayed_updating/unwind/unwind2_rmap_head.ma". +*) +include "delayed_updating/substitution/fsubst_eq.ma". +include "delayed_updating/substitution/lift_prototerm_eq.ma". + +include "delayed_updating/syntax/prototerm_proper_constructors.ma". + +(* DELAYED FOCUSED REDUCTION ************************************************) + +(* Constructions with lift **************************************************) + +theorem dfr_lift_bi (f) (p) (q) (t1) (t2): (*t1 ϵ 𝐓 → *) + t1 ➡𝐝𝐟[p,q] t2 → ↑[f]t1 ➡𝐟[↑[f]p,↑[↑[p◖𝗔◖𝗟]f]q] ↑[f]t2. +#f #p #q #t1 #t2 +* #n * #H1n #Ht1 #Ht2 +@(ex_intro … ((↑[p●𝗔◗𝗟◗q]f)@⧣❨n❩)) @and3_intro +[ -Ht1 -Ht2 + >H1n >path_head_structure_depth list_append_rcons_sn in H1n; list_append_rcons_sn in H1n; nrplus_inj_dx in ⊢ (???%); structure_L_sn >structure_reverse + >H1n >path_head_structure_depth list_append_rcons_sn in H1n; list_append_rcons_sn in H1n; nrplus_inj_dx in ⊢ (???%); nrplus_inj_dx /2 width=1 by tr_tls_compose_uni_dx/ qed. + *) diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_after.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_after.ma similarity index 98% rename from matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_after.ma rename to matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_after.ma index 756b73587..869d680fe 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_after.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_after.ma @@ -17,9 +17,9 @@ include "ground/relocation/tr_compose_pap.ma". include "ground/relocation/tr_compose_pn.ma". include "ground/relocation/tr_compose_tls.ma". -(* LIFT FOR PATH ***********************************************************) +(* LIFT FOR PATH ************************************************************) -(* Constructions with tr_after *********************************************) +(* Constructions with tr_after **********************************************) lemma lift_path_after (p) (f1) (f2): ↑[f2]↑[f1]p = ↑[f2∘f1]p. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_id.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_id.ma similarity index 97% rename from matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_id.ma rename to matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_id.ma index 1d8b45295..1966c25f2 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_id.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_id.ma @@ -16,9 +16,9 @@ include "delayed_updating/substitution/lift_eq.ma". include "ground/relocation/tr_id_pap.ma". include "ground/relocation/tr_id_tls.ma". -(* LIFT FOR PATH ***********************************************************) +(* LIFT FOR PATH ************************************************************) -(* Constructions with tr_id ************************************************) +(* Constructions with tr_id *************************************************) lemma lift_path_id (p): p = ↑[𝐢]p. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_proper.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_proper.ma new file mode 100644 index 000000000..0eef97896 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_proper.ma @@ -0,0 +1,42 @@ +(**************************************************************************) +(* ___ *) +(* ||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 "delayed_updating/substitution/lift_eq.ma". +include "delayed_updating/syntax/path_proper.ma". + +(* LIFT FOR PATH ************************************************************) + +(* Constructions with proper condition for path *****************************) + +lemma lift_path_proper (f) (p): + p ϵ 𝐏 → ↑[f]p ϵ 𝐏. +#f * +[ #H0 elim (ppc_inv_empty … H0) +| * [ #n ] #p #_ + [