From: Ferruccio Guidi Date: Mon, 9 May 2022 19:08:36 +0000 (+0200) Subject: update in delayed_updating X-Git-Tag: make_still_working~74 X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=commitdiff_plain;h=d59f1c74c62ad3706d50707bb68758d88fbed006;hp=8c6e4521acc9dad59b3ceebae66ce5e7a63a7c44;p=helm.git update in delayed_updating + main function to locate the referred binder + update function for unfold --- diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/downarrowright_2.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/downarrowright_2.ma new file mode 100644 index 000000000..7531c6bcc --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/downarrowright_2.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( ↳[ term 46 n ] break term 70 p )" + non associative with precedence 70 + for @{ 'DownArrowRight $n $p }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/power_2.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/power_2.ma new file mode 100644 index 000000000..bed0c7fe5 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/power_2.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( a ∗∗ break b )" + left associative with precedence 65 + for @{ 'Power $a $b }. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_closed.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_closed.ma deleted file mode 100644 index d8b00cabc..000000000 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_closed.ma +++ /dev/null @@ -1,48 +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/syntax/path.ma". -include "delayed_updating/notation/functions/class_c_1.ma". -include "ground/lib/subset.ma". - -include "delayed_updating/syntax/path_depth.ma". -include "delayed_updating/syntax/path_height.ma". - -(* CLOSED CONDITION FOR PATH ************************************************) - -axiom pcc: relation2 nat path. - -interpretation - "closed condition (path)" - 'ClassC n = (pcc n). - -(* Basic destructions *******************************************************) - -axiom pcc_empty: - (𝐞) ϵ 𝐂❨𝟎❩. - -axiom pcc_d (p) (d) (n:pnat): - p ϵ 𝐂❨d+n❩ → p◖𝗱n ϵ 𝐂❨d❩. - -axiom pcc_L (p) (d): - p ϵ 𝐂❨d❩ → p◖𝗟 ϵ 𝐂❨↑d❩. - -axiom pcc_A (p) (d): - p ϵ 𝐂❨d❩ → p◖𝗔 ϵ 𝐂❨d❩. - -axiom pcc_S (p) (d): - p ϵ 𝐂❨d❩ → p◖𝗦 ϵ 𝐂❨d❩. - -axiom pcc_des_gen (p) (d): - p ϵ 𝐂❨d❩ → d + ♯p = ❘p❘. diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_labels.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_labels.ma new file mode 100644 index 000000000..a01c225ee --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_labels.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/syntax/path.ma". +include "delayed_updating/notation/functions/power_2.ma". +include "ground/arith/nat_succ_iter.ma". + +(* *) + +definition labels (l) (n:nat): path ≝ + ((list_lcons ? l)^n) (𝐞). + +interpretation + "labels (path)" + 'Power l n = (labels l n). + +(* Basic constructions ******************************************************) + +lemma labels_unfold (l) (n): + ((list_lcons ? l)^n) (𝐞) = l∗∗n. +// qed. + +lemma labels_zero (l): + (𝐞) = l∗∗𝟎. +// qed. + +lemma labels_succ (l) (n): + l◗(l∗∗n) = l∗∗(↑n). +#l #n +IH -IH