From: Ferruccio Guidi Date: Mon, 30 May 2022 21:50:58 +0000 (+0200) Subject: update in delayed_updating X-Git-Tag: make_still_working~66 X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=commitdiff_plain;h=f5fa6554c93bec72a5bb098c0a2991fe294883b6;hp=12d58352dbd62df65d44becc0f69fc5a7b370866;p=helm.git update in delayed_updating + lift: additions and refactoring + reduction: WIP --- 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 ⊢ (???%); tr_compose_push_bi // -] -qed. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_constructors.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_constructors.ma index 06e03b13a..1cdcd4650 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_constructors.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_constructors.ma @@ -13,7 +13,7 @@ (**************************************************************************) include "delayed_updating/substitution/lift_prototerm_id.ma". -include "delayed_updating/substitution/lift_uni.ma". +include "delayed_updating/substitution/lift_path_uni.ma". include "delayed_updating/syntax/prototerm_constructors.ma". (* LIFT FOR PROTOTERM *******************************************************) diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_eq.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_eq.ma index 5eac1985e..9c4b0f3b5 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_eq.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_eq.ma @@ -17,7 +17,7 @@ include "ground/relocation/tr_pap_eq.ma". include "ground/relocation/tr_pn_eq.ma". include "ground/lib/stream_tls_eq.ma". -(* LIFT FOR PATH ***********************************************************) +(* LIFT FOR PATH ************************************************************) definition lift_exteq (A): relation2 (lift_continuation A) (lift_continuation A) ≝ λk1,k2. ∀f1,f2,p. f1 ≗ f2 → k1 f1 p = k2 f2 p. @@ -153,4 +153,5 @@ lemma lift_rmap_tls_d_dx (f) (p) (m) (n): nrplus_inj_dx /2 width=1 by tr_tls_compose_uni_dx/ qed. + *) diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_id.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_id.ma deleted file mode 100644 index 1d8b45295..000000000 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_id.ma +++ /dev/null @@ -1,30 +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 "delayed_updating/substitution/lift_eq.ma". -include "ground/relocation/tr_id_pap.ma". -include "ground/relocation/tr_id_tls.ma". - -(* LIFT FOR PATH ***********************************************************) - -(* Constructions with tr_id ************************************************) - -lemma lift_path_id (p): - p = ↑[𝐢]p. -#p elim p -p // -* [ #n ] #p #IH // -[ tr_compose_push_bi // +] +qed. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_id.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_id.ma new file mode 100644 index 000000000..1966c25f2 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_path_id.ma @@ -0,0 +1,30 @@ +(**************************************************************************) +(* ___ *) +(* ||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 "ground/relocation/tr_id_pap.ma". +include "ground/relocation/tr_id_tls.ma". + +(* LIFT FOR PATH ************************************************************) + +(* Constructions with tr_id *************************************************) + +lemma lift_path_id (p): + p = ↑[𝐢]p. +#p elim p -p // +* [ #n ] #p #IH // +[ nsucc_pnpred +nsucc_pnpred -