X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsyntax%2Fpath_depth.ma;h=2e638b8ac43bfba05ccc9783d2045d130d302a9d;hb=797a607af83f82102033270087722a7e59ddcd17;hp=88952c2bc0b4b4edcd60a53c291f1c85a7a4866c;hpb=13584a37bbcde10e03c8a488f5b93e1e042da0a6;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_depth.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_depth.ma index 88952c2bc..2e638b8ac 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_depth.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_depth.ma @@ -13,43 +13,95 @@ (**************************************************************************) include "delayed_updating/syntax/path.ma". -include "ground/notation/functions/verticalbars_1.ma". +include "delayed_updating/notation/functions/flat_1.ma". +include "ground/arith/nat_plus.ma". (* DEPTH FOR PATH ***********************************************************) -rec definition depth (p) on p: pnat ≝ +rec definition depth (p) on p: nat ≝ match p with -[ list_empty ⇒ 𝟏 +[ list_empty ⇒ 𝟎 | list_lcons l q ⇒ match l with - [ label_d _ ⇒ depth q - | label_m ⇒ depth q - | label_L ⇒ ↑(depth q) - | label_A ⇒ depth q - | label_S ⇒ depth q + [ label_d k ⇒ depth q + | label_d2 k d ⇒ depth q + | label_m ⇒ depth q + | label_L ⇒ ↑(depth q) + | label_A ⇒ depth q + | label_S ⇒ depth q ] ]. interpretation "depth (path)" - 'VerticalBars p = (depth p). + 'Flat p = (depth p). (* Basic constructions ******************************************************) -lemma depth_empty: 𝟏 = ❘𝐞❘. +lemma depth_empty: 𝟎 = ♭𝐞. // qed. -lemma depth_d (q) (n): ❘q❘ = ❘𝗱n◗q❘. +lemma depth_d_dx (p) (k): + ♭p = ♭(p◖𝗱k). // qed. -lemma depth_m (q): ❘q❘ = ❘𝗺◗q❘. +lemma depth_d2_dx (p) (k) (d): + ♭p = ♭(p◖𝗱❨k,d❩). // qed. -lemma depth_L (q): ↑❘q❘ = ❘𝗟◗q❘. +lemma depth_m_dx (p): + ♭p = ♭(p◖𝗺). // qed. -lemma depth_A (q): ❘q❘ = ❘𝗔◗q❘. +lemma depth_L_dx (p): + ↑♭p = ♭(p◖𝗟). // qed. -lemma depth_S (q): ❘q❘ = ❘𝗦◗q❘. +lemma depth_A_dx (p): + ♭p = ♭(p◖𝗔). +// qed. + +lemma depth_S_dx (p): + ♭p = ♭(p◖𝗦). +// qed. + +(* Main constructions *******************************************************) + +theorem depth_append (p) (q): + (♭p)+(♭q) = ♭(p●q). +#p #q elim q -q // +* [ #k | #k #d ] #q #IH