From: Ferruccio Guidi Date: Sun, 6 Nov 2022 18:21:23 +0000 (+0100) Subject: update in delayed_updating X-Git-Tag: make_still_working~30 X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=commitdiff_plain;h=df1bcd1387439133c0c33f597a5f8b2331c07772 update in delayed_updating + core reduction parked + paths of one repeated label resumed --- diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_df_3.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_df_3.etc new file mode 100644 index 000000000..1750f335b --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_df_3.etc @@ -0,0 +1,19 @@ +(**************************************************************************) +(* ___ *) +(* ||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 *) +(* *) +(**************************************************************************) + +(* NOTATION FOR DELAYED UPDATING ********************************************) + +notation "hvbox( t1 ➡𝐝𝐟[ break term 46 r ] break term 46 t2 )" + non associative with precedence 45 + for @{ 'BlackRightArrowDF $t1 $r $t2 }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_if_3.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_if_3.etc new file mode 100644 index 000000000..90fe54b75 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_if_3.etc @@ -0,0 +1,19 @@ +(**************************************************************************) +(* ___ *) +(* ||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 *) +(* *) +(**************************************************************************) + +(* NOTATION FOR DELAYED UPDATING ********************************************) + +notation "hvbox( t1 ➡𝐢𝐟[ break term 46 r ] break term 46 t2 )" + non associative with precedence 45 + for @{ 'BlackRightArrowIF $t1 $r $t2 }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr.etc new file mode 100644 index 000000000..8e26b62b9 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr.etc @@ -0,0 +1,33 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fsubst.ma". +include "delayed_updating/syntax/prototerm_constructors.ma". +include "delayed_updating/syntax/prototerm_eq.ma". +include "delayed_updating/syntax/path_closed.ma". +include "delayed_updating/notation/relations/black_rightarrow_df_3.ma". +include "ground/xoa/ex_4_3.ma". + +(* DELAYED FOCUSED REDUCTION ************************************************) + +definition dfr (r): relation2 prototerm prototerm ≝ + λt1,t2. + ∃∃p,q,n. p●𝗔◗𝗟◗q = r & + q ϵ 𝐂❨Ⓕ,n❩ & r◖𝗱↑n ϵ t1 & + t1[⋔r←𝛕↑n.(t1⋔(p◖𝗦))] ⇔ t2 +. + +interpretation + "focused reduction with delayed updating (prototerm)" + 'BlackRightArrowDF t1 r t2 = (dfr r t1 t2). diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_ifr.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_ifr.etc new file mode 100644 index 000000000..1cb62ed3b --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_ifr.etc @@ -0,0 +1,68 @@ +(**************************************************************************) +(* ___ *) +(* ||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_closed.ma". + +include "delayed_updating/substitution/fsubst_eq.ma". +include "delayed_updating/substitution/lift_prototerm_eq.ma". + +include "delayed_updating/syntax/prototerm_proper_constructors.ma". +include "delayed_updating/syntax/path_closed_structure.ma". +include "delayed_updating/syntax/path_structure_depth.ma". + +(* DELAYED FOCUSED REDUCTION ************************************************) + +(* Main destructions with ifr ***********************************************) + +theorem dfr_des_ifr (f) (t1) (t2) (r): t1 ϵ 𝐓 → + t1 ➡𝐝𝐟[r] t2 → ▼[f]t1 ➡𝐢𝐟[⊗r] ▼[f]t2. +#f #t1 #t2 #r #H0t1 +* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct +@(ex4_3_intro … (⊗p) (⊗q) (♭q)) +[ -H0t1 -Hn -Ht1 -Ht2 // +| -H0t1 -Ht1 -Ht2 + /2 width=2 by path_closed_structure_depth/ +| lapply (in_comp_unwind2_path_term f … Ht1) -Ht2 -Ht1 -H0t1 + nsucc_unfold + /2 width=2 by tls_succ_lift_rmap_append_closed_Lq_dx/ +(* Note: crux of the proof ends *) +] +qed. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_unwind.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_unwind.etc new file mode 100644 index 000000000..d931a1a7b --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_unwind.etc @@ -0,0 +1,66 @@ +(**************************************************************************) +(* ___ *) +(* ||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/ifr.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_closed.ma". + +include "delayed_updating/substitution/fsubst_eq.ma". +include "delayed_updating/substitution/lift_prototerm_eq.ma". + +include "delayed_updating/syntax/path_closed_structure.ma". +include "delayed_updating/syntax/path_structure_depth.ma". + +(* IMMEDIATE FOCUSED REDUCTION **********************************************) + +(* Constructions with unwind2 ***********************************************) + +lemma ifr_unwind_bi (f) (t1) (t2) (r): + t1 ϵ 𝐓 → r ϵ 𝐈 → + t1 ➡𝐢𝐟[r] t2 → ▼[f]t1 ➡𝐢𝐟[⊗r] ▼[f]t2. +#f #t1 #t2 #r #H1t1 #H2r +* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct +@(ex4_3_intro … (⊗p) (⊗q) (♭q)) +[ -H1t1 -H2r -Hn -Ht1 -Ht2 // +| -H1t1 -H2r -Ht1 -Ht2 + /2 width=2 by path_closed_structure_depth/ +| lapply (in_comp_unwind2_path_term f … Ht1) -Ht2 -Ht1 -H1t1 -H2r + nsucc_unfold - /2 width=2 by tls_succ_lift_rmap_append_closed_Lq_dx/ -(* Note: crux of the proof ends *) -] -qed. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_unwind.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_unwind.ma deleted file mode 100644 index d931a1a7b..000000000 --- a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_unwind.ma +++ /dev/null @@ -1,66 +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/reduction/ifr.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_closed.ma". - -include "delayed_updating/substitution/fsubst_eq.ma". -include "delayed_updating/substitution/lift_prototerm_eq.ma". - -include "delayed_updating/syntax/path_closed_structure.ma". -include "delayed_updating/syntax/path_structure_depth.ma". - -(* IMMEDIATE FOCUSED REDUCTION **********************************************) - -(* Constructions with unwind2 ***********************************************) - -lemma ifr_unwind_bi (f) (t1) (t2) (r): - t1 ϵ 𝐓 → r ϵ 𝐈 → - t1 ➡𝐢𝐟[r] t2 → ▼[f]t1 ➡𝐢𝐟[⊗r] ▼[f]t2. -#f #t1 #t2 #r #H1t1 #H2r -* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct -@(ex4_3_intro … (⊗p) (⊗q) (♭q)) -[ -H1t1 -H2r -Hn -Ht1 -Ht2 // -| -H1t1 -H2r -Ht1 -Ht2 - /2 width=2 by path_closed_structure_depth/ -| lapply (in_comp_unwind2_path_term f … Ht1) -Ht2 -Ht1 -H1t1 -H2r -