From: Ferruccio Guidi Date: Sat, 22 Jan 2022 00:35:11 +0000 (+0100) Subject: update in delayed_updating X-Git-Tag: make_still_working~105 X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=commitdiff_plain;h=13584a37bbcde10e03c8a488f5b93e1e042da0a6 update in delayed_updating + mark label added + bugs fixed in depth and reduction + two notations changed --- diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_b_0.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_b_0.ma new file mode 100644 index 000000000..46c63d436 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_b_0.ma @@ -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( 𝐁 )" + non associative with precedence 70 + for @{ 'ClassB }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_p_0.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_p_0.ma new file mode 100644 index 000000000..9f9bbd754 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_p_0.ma @@ -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( 𝐏 )" + non associative with precedence 70 + for @{ 'ClassP }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/m_hook_1.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/m_hook_1.ma new file mode 100644 index 000000000..0860eaffa --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/m_hook_1.ma @@ -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( ɱ. break term 70 t )" + non associative with precedence 70 + for @{ 'MHook $t }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/nodelabel_m_0.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/nodelabel_m_0.ma new file mode 100644 index 000000000..f34f1a7ee --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/nodelabel_m_0.ma @@ -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( 𝗺 )" + non associative with precedence 70 + for @{ 'NodeLabelM }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_p_tail_1.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_p_tail_1.ma deleted file mode 100644 index 73397b8d9..000000000 --- a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_p_tail_1.ma +++ /dev/null @@ -1,19 +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 *) -(* *) -(**************************************************************************) - -(* NOTATION FOR DELAYED UPDATING ********************************************) - -notation "hvbox( Ꝕ term 70 x )" - non associative with precedence 45 - for @{ 'PredicatePTail $x }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_squarecap_1.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_squarecap_1.ma deleted file mode 100644 index 64e50fc91..000000000 --- a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_squarecap_1.ma +++ /dev/null @@ -1,19 +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 *) -(* *) -(**************************************************************************) - -(* NOTATION FOR DELAYED UPDATING ********************************************) - -notation "hvbox( ⊓ term 70 p )" - non associative with precedence 45 - for @{ 'PredicateSquareCap $p }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma index 5b5036593..2ff6159cf 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma @@ -25,8 +25,8 @@ include "delayed_updating/notation/relations/black_rightarrow_df_4.ma". definition dfr (p) (q): relation2 prototerm prototerm ≝ λt1,t2. ∃b. let r ≝ p●𝗔◗b●𝗟◗q in - ∧∧ ⊓(⊗b) & r◖𝗱(↑❘q❘) ϵ t1 & - t2 ⇔ t1[⋔r←𝛗(↑❘q❘).t1⋔(p◖𝗦)] + ∧∧ ⊗b ϵ 𝐁 & r◖𝗱❘q❘ ϵ t1 & + t1[⋔r←𝛗❘q❘.(t1⋔(p◖𝗦))] ⇔ t2 . interpretation diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma index 5d6c3cfef..73d4cbf46 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma @@ -15,6 +15,7 @@ include "delayed_updating/reduction/dfr.ma". include "delayed_updating/reduction/ifr.ma". include "delayed_updating/substitution/fsubst_lift.ma". +include "delayed_updating/syntax/prototerm_proper_constructors.ma". (* DELAYED FOCUSED REDUCTION ************************************************) @@ -24,9 +25,15 @@ lemma dfr_lift_bi (f) (p) (q) (t1) (t2): t1 ϵ 𝐓 → * #b * #Hb #Ht1 #Ht2 @(ex_intro … (⊗b)) @and3_intro [ // -| lapply (in_comp_lift_bi f … Ht1) -Ht1 #Ht1 - - - - +| lapply (in_comp_lift_bi f … Ht1) -Ht1 #Ht1 +| lapply (eq_lift_bi f … Ht2) -Ht2 #Ht2 + @(subset_eq_trans … Ht2) -t2 + @(subset_eq_trans … (lift_fsubst …)) + [ lift_append_proper_dx - /4 width=1 by subset_in_ext_f1_dx, or_introl/ + /4 width=5 by in_comp_lift_bi, in_ppc_comp_trans, or_introl, ex2_intro/ | * #q #Hq #H1 #H0 @(ex2_intro … H1) @or_intror @conj // * [ lift_lcons_alt >lift_append_rcons_sn lift_lcons_alt >lift_append_rcons_sn diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm.ma index 919326045..4a0615a3c 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm.ma @@ -26,4 +26,10 @@ interpretation lemma in_comp_lift_bi (f) (p) (t): p ϵ t → ↑[f]p ϵ ↑[f]t. -/2 width=1 by subset_in_ext_f1_dx/ qed. +/2 width=1 by subset_in_ext_f1_dx/ +qed. + +lemma eq_lift_bi (f) (t1) (t2): + t1 ⇔ t2 → ↑[f]t1 ⇔ ↑[f]t2. +/2 width=1 by subset_equivalence_ext_f1_bi/ +qed. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_structure.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_structure.ma index 4db66c064..b9bc27c54 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_structure.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_structure.ma @@ -41,12 +41,13 @@ lemma lift_des_structure (q) (p) (f): (* Constructions with proper condition for path *****************************) -lemma lift_append_proper_dx (p2) (p1) (f): Ꝕp2 → +lemma lift_append_proper_dx (p2) (p1) (f): p2 ϵ 𝐏 → (⊗p1)●(↑[↑[p1]f]p2) = ↑[f](p1●p2). #p2 #p1 @(path_ind_lift … p1) -p1 // [ #n | #n #l #p1 |*: #p1 ] #IH #f #Hp2 [ elim (ppc_inv_lcons … Hp2) -Hp2 #l #q #H destruct // |