X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Funwind%2Funwind2_rmap_head.ma;h=416c6e7924650b412ad854cb119265877fe14151;hb=41a54a797af98d2867d4bf979d424283fb44a1fc;hp=579cbd514cf20c90426d0d9dcb320a2e474e9833;hpb=dfcad1c1a698bac1b7fb6a5f59393b28f45182af;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_rmap_head.ma b/matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_rmap_head.ma index 579cbd514..416c6e792 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_rmap_head.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_rmap_head.ma @@ -13,28 +13,122 @@ (**************************************************************************) include "delayed_updating/unwind/unwind2_rmap_labels.ma". -include "delayed_updating/unwind/nap.ma". +include "delayed_updating/unwind/unwind2_rmap_eq.ma". include "delayed_updating/syntax/path_head_depth.ma". -include "delayed_updating/syntax/path_height.ma". +include "ground/relocation/xap.ma". +include "ground/lib/stream_eq_eq.ma". +include "ground/arith/nat_le_plus.ma". -(* UNWIND MAP FOR PATH ******************************************************) +(* TAILED UNWIND FOR RELOCATION MAP *****************************************) (* Constructions with path_head *********************************************) -lemma unwind2_rmap_head_push (f) (p) (n): - n + ♯(↳[n]p) = (▶[⫯f]↳[n]p)@↑❨n❩. +lemma unwind2_rmap_head_xap_le_closed (f) (p) (q) (n) (m): + q = ↳[n]q → m ≤ n → + ▶[f](p●q)@❨m❩ = ▶[f]↳[n](p●q)@❨m❩. +#f #p #q elim q -q +[ #n #m #Hq + <(eq_inv_path_empty_head … Hq) -n #Hm + <(nle_inv_zero_dx … Hm) -m // +| #l #q #IH #n @(nat_ind_succ … n) -n + [ #m #_ #Hm <(nle_inv_zero_dx … Hm) -m -IH // + | #n #_ #m cases l [ #k ] + [ tr_pushs_swap IH -IH IH -IH tr_xap_ninj >(path_head_refl_append_sn p … Hh) in ⊢ (??%?); +>(unwind2_rmap_head_xap_closed … Hh) -Hh +nrplus_inj_dx >nrplus_inj_sn >nrplus_inj_sn