X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsyntax%2Fpath_structure.ma;h=288575c4e7680630668be3a61108478261a6d0c4;hb=9e31ac1f3f868349154b0ce2e550e2476aaf6a30;hp=0330665ad2e55ca16d2417900eef45f61b122aa7;hpb=13584a37bbcde10e03c8a488f5b93e1e042da0a6;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 0330665ad..288575c4e 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,11 +23,11 @@ match p with [ list_empty ⇒ 𝐞 | list_lcons l q ⇒ match l with - [ label_d n ⇒ structure q + [ label_d k ⇒ structure q | label_m ⇒ structure q - | label_L ⇒ 𝗟◗structure q - | label_A ⇒ 𝗔◗structure q - | label_S ⇒ 𝗦◗structure q + | label_L ⇒ (structure q)◖𝗟 + | label_A ⇒ (structure q)◖𝗔 + | label_S ⇒ (structure q)◖𝗦 ] ]. @@ -40,62 +41,220 @@ 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_m_sn (p): - ⊗p = ⊗(𝗺◗p). +lemma structure_m_dx (p): + ⊗p = ⊗(p◖𝗺). // qed. -lemma structure_L_sn (p): - (𝗟◗⊗p) = ⊗(𝗟◗p). +lemma structure_L_dx (p): + (⊗p)◖𝗟 = ⊗(p◖𝗟). // qed. -lemma structure_A_sn (p): - (𝗔◗⊗p) = ⊗(𝗔◗p). +lemma structure_A_dx (p): + (⊗p)◖𝗔 = ⊗(p◖𝗔). // qed. -lemma structure_S_sn (p): - (𝗦◗⊗p) = ⊗(𝗦◗p). +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 ] #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 +