X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsyntax%2Fpath_structure.ma;h=6ba6e937b48778b995bae2d16e1ca16f326ce13f;hb=2bc0ba993e26ab77a792b38ba39da7a3dd03ad43;hp=5bf678ebe01edecc6abb6e061d592e809def6711;hpb=873fb39bdd21aa14877bf5d50db26e3a050c6d43;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure.ma index 5bf678ebe..6ba6e937b 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure.ma @@ -17,18 +17,75 @@ include "delayed_updating/notation/functions/circled_times_1.ma". (* STRUCTURE FOR PATH *******************************************************) -rec definition path_structure (p) on p ≝ +rec definition structure (p) on p ≝ match p with [ list_empty ⇒ 𝐞 | list_lcons l q ⇒ match l with - [ label_node_d n ⇒ path_structure q - | label_edge_L ⇒ 𝗟◗path_structure q - | label_edge_A ⇒ 𝗔◗path_structure q - | label_edge_S ⇒ 𝗦◗path_structure q + [ label_node_d n ⇒ structure q + | label_edge_L ⇒ 𝗟◗structure q + | label_edge_A ⇒ 𝗔◗structure q + | label_edge_S ⇒ 𝗦◗structure q ] ]. interpretation "structure (path)" - 'CircledTimes p = (path_structure p). + 'CircledTimes p = (structure p). + +(* Basic constructions ******************************************************) + +lemma structure_empty: + 𝐞 = ⊗𝐞. +// qed. + +lemma structure_d_sn (p) (n): + ⊗p = ⊗(𝗱❨n❩◗p). +// qed. + +lemma structure_L_sn (p): + 𝗟◗⊗p = ⊗(𝗟◗p). +// qed. + +lemma structure_A_sn (p): + 𝗔◗⊗p = ⊗(𝗔◗p). +// qed. + +lemma structure_S_sn (p): + 𝗦◗⊗p = ⊗(𝗦◗p). +// qed. + +(* Main constructions *******************************************************) + +theorem structure_idem (p): + ⊗p = ⊗⊗p. +#p elim p -p [| * [ #n ] #p #IH ] // +qed. + +theorem structure_append (p1) (p2): + ⊗p1●⊗p2 = ⊗(p1●p2). +#p1 elim p1 -p1 [| * [ #n ] #p1 #IH ] #p2 +[||*: