X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsyntax%2Fpath_structure.ma;h=95c728682db4058cc10f4caca52bb357be601634;hb=797a607af83f82102033270087722a7e59ddcd17;hp=8c60eea7595c8a88c43250865500b11010701dee;hpb=f83215ca9b8d0019c85a991ec90c6c658c0aaff8;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 8c60eea75..95c728682 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure.ma @@ -14,6 +14,7 @@ include "delayed_updating/syntax/path.ma". include "delayed_updating/notation/functions/circled_times_1.ma". +include "ground/xoa/ex_3_2.ma". (* STRUCTURE FOR PATH *******************************************************) @@ -22,10 +23,12 @@ match p with [ list_empty ⇒ 𝐞 | list_lcons l q ⇒ match l with - [ label_node_d n ⇒ structure q - | label_edge_L ⇒ 𝗟◗structure q - | label_edge_A ⇒ 𝗔◗structure q - | label_edge_S ⇒ 𝗦◗structure q + [ label_d k ⇒ structure q + | label_d2 k d ⇒ structure q + | label_m ⇒ structure q + | label_L ⇒ (structure q)◖𝗟 + | label_A ⇒ (structure q)◖𝗔 + | label_S ⇒ (structure q)◖𝗦 ] ]. @@ -39,53 +42,262 @@ lemma structure_empty: 𝐞 = ⊗𝐞. // qed. -lemma structure_d_sn (p) (n): - ⊗p = ⊗(𝗱n◗p). +lemma structure_d_dx (p) (k): + ⊗p = ⊗(p◖𝗱k). // qed. -lemma structure_L_sn (p): - 𝗟◗⊗p = ⊗(𝗟◗p). +lemma structure_d2_dx (p) (k) (d): + ⊗p = ⊗(p◖𝗱❨k,d❩). // qed. -lemma structure_A_sn (p): - 𝗔◗⊗p = ⊗(𝗔◗p). +lemma structure_m_dx (p): + ⊗p = ⊗(p◖𝗺). // qed. -lemma structure_S_sn (p): - 𝗦◗⊗p = ⊗(𝗦◗p). +lemma structure_L_dx (p): + (⊗p)◖𝗟 = ⊗(p◖𝗟). +// qed. + +lemma structure_A_dx (p): + (⊗p)◖𝗔 = ⊗(p◖𝗔). +// qed. + +lemma structure_S_dx (p): + (⊗p)◖𝗦 = ⊗(p◖𝗦). // qed. (* Main constructions *******************************************************) theorem structure_idem (p): ⊗p = ⊗⊗p. -#p elim p -p [| * [ #n ] #p #IH ] // +#p elim p -p // +* [ #k | #k #d ] #p #IH // qed. -theorem structure_append (p1) (p2): - ⊗p1●⊗p2 = ⊗(p1●p2). -#p1 elim p1 -p1 [| * [ #n ] #p1 #IH ] #p2 -[||*: list_cons_comm #H0 +elim (eq_inv_append_structure … H0) -H0 #r1 #r2 +list_cons_comm #H0 +elim (eq_inv_append_structure … H0) -H0 #r1 #r2 +list_cons_comm #H0 +elim (eq_inv_append_structure … H0) -H0 #r1 #r2 +list_cons_comm #H0 +elim (eq_inv_append_structure … H0) -H0 #r1 #r2 +list_cons_comm #H0 +elim (eq_inv_append_structure … H0) -H0 #r1 #r2 +list_cons_comm #H0 +elim (eq_inv_append_structure … H0) -H0 #r1 #r2 +