From: Ferruccio Guidi Date: Thu, 20 Jan 2022 19:48:22 +0000 (+0100) Subject: update in delayed_updating X-Git-Tag: make_still_working~106 X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=commitdiff_plain;h=2cc4eb5d0210be58286e028278852122dcb68052;p=helm.git update in delayed_updating + a premise removed from lift_fsubst_sn + dfr and ifr restated to take equiprovability into account + notatation update for preterms --- diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_t_0.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_t_0.ma new file mode 100644 index 000000000..182544bf0 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/class_t_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 @{ 'ClassT }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_t_hook_1.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_t_hook_1.ma deleted file mode 100644 index 34af172fb..000000000 --- a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/predicate_t_hook_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 @{ 'PredicateTHook $x }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma index ed077ae2c..5b5036593 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma @@ -16,15 +16,17 @@ include "delayed_updating/syntax/path_depth.ma". include "delayed_updating/syntax/path_structure.ma". include "delayed_updating/syntax/path_balanced.ma". include "delayed_updating/syntax/prototerm_constructors.ma". +include "delayed_updating/syntax/prototerm_equivalence.ma". include "delayed_updating/substitution/fsubst.ma". include "delayed_updating/notation/relations/black_rightarrow_df_4.ma". (* DELAYED FOCUSED REDUCTION ************************************************) -inductive dfr (p) (q) (t): predicate prototerm ≝ -| dfr_beta (b): - let r ≝ p●𝗔◗b●𝗟◗q in - r◖𝗱(↑❘q❘) ϵ t → ⊓(⊗b) → dfr p q t (t[⋔r←𝛗(↑❘q❘).t⋔(p◖𝗦)]) +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◖𝗦)] . 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 9a713d1e5..5d6c3cfef 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma @@ -18,7 +18,15 @@ include "delayed_updating/substitution/fsubst_lift.ma". (* DELAYED FOCUSED REDUCTION ************************************************) -lemma dfr_lift_bi (f) (p) (q) (t1) (t2): Ƭt1 → +lemma dfr_lift_bi (f) (p) (q) (t1) (t2): t1 ϵ 𝐓 → t1 ➡𝐝𝐟[p,q] t2 → ↑[f]t1 ➡𝐟[⊗p,⊗q] ↑[f]t2. -#f #p #q #t1 #t2 #Ht1 -* -t2 #b #Hr #Hb +#f #p #q #t1 #t2 #H0t1 +* #b * #Hb #Ht1 #Ht2 +@(ex_intro … (⊗b)) @and3_intro +[ // +| lapply (in_comp_lift_bi f … Ht1) -Ht1 #Ht1 + + + + + diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr.ma index d087bdbb7..582f6ed57 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr.ma @@ -21,10 +21,11 @@ include "delayed_updating/notation/relations/black_rightarrow_f_4.ma". (* IMMEDIATE FOCUSED REDUCTION ************************************************) -inductive ifr (p) (q) (t): predicate prototerm ≝ -| ifr_beta (b): - let r ≝ p●𝗔◗b●𝗟◗q in - r◖𝗱(↑❘q❘) ϵ t → ⊓(⊗b) → ifr p q t (t[⋔r←↑[𝐮❨↑❘q❘❩]t⋔(p◖𝗦)]) +definition ifr (p) (q): relation2 prototerm prototerm ≝ + λt1,t2. ∃b. + let r ≝ p●𝗔◗b●𝗟◗q in + ∧∧ ⊓(⊗b) & r◖𝗱(↑❘q❘) ϵ t1 & + t2 ⇔ t1[⋔r←↑[𝐮❨↑❘q❘❩]t1⋔(p◖𝗦)] . interpretation diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/fsubst_lift.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/fsubst_lift.ma index c9d656028..08ff3ebb3 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/fsubst_lift.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/fsubst_lift.ma @@ -20,20 +20,23 @@ include "delayed_updating/syntax/prototerm_proper.ma". (* FOCALIZED SUBSTITUTION ***************************************************) -lemma lift_fsubst_sn (f) (t) (u) (p): Ꝕu → p ⧸ϵ t → +lemma lift_fsubst_sn (f) (t) (u) (p): Ꝕu → (↑[f]t)[⋔(⊗p)←↑[↑[p]f]u] ⊆ ↑[f](t[⋔p←u]). -#f #t #u #p #Hu #Hp #ql * * +#f #t #u #p #Hu #ql * * [ #rl * #r #Hr #H1 #H2 destruct >lift_append_proper_dx /4 width=1 by subset_in_ext_f1_dx, or_introl/ | * #q #Hq #H1 #H0 - @(ex2_intro … H1) @or_intror @conj // - #r #H2 destruct - @H0 -H0 [|