X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Frelocation%2Fpr_coafter_nat_tls_pushs.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Frelocation%2Fpr_coafter_nat_tls_pushs.ma;h=9445dccd0117302cae679744f88d57e169b03259;hb=f8b4eb67c2437f7b5174d7dca46e102e0ac0d19d;hp=0000000000000000000000000000000000000000;hpb=8bbe582d87984526f40182c4409cbfd43108cb79;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/pr_coafter_nat_tls_pushs.ma b/matita/matita/contribs/lambdadelta/ground/relocation/pr_coafter_nat_tls_pushs.ma new file mode 100644 index 000000000..9445dccd0 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/ground/relocation/pr_coafter_nat_tls_pushs.ma @@ -0,0 +1,44 @@ +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + +include "ground/relocation/pr_pushs.ma". +include "ground/relocation/pr_tls.ma". +include "ground/relocation/pr_nat.ma". +include "ground/relocation/pr_coafter.ma". + +(* RELATIONAL CO-COMPOSITION FOR PARTIAL RELOCATION MAPS ********************) + +(* Destructions with pr_nat and pr_tls and pr_pushs *************************) + +(*** coafter_fwd_pushs *) +lemma pr_coafter_des_pushs_dx (n) (m): + ∀g2,f1,g. g2 ~⊚ ⫯*[m]f1 ≘ g → @↑❪m, g2❫ ≘ n → + ∃∃f. ⫰*[n]g2 ~⊚ f1 ≘ f & ⫯*[n] f = g. +#n @(nat_ind_succ … n) -n +[ #m #g2 #f1 #g #Hg #H + elim (pr_nat_inv_zero_dx … H) -H [|*: // ] #f2 #H1 #H2 destruct + /2 width=3 by ex2_intro/ +| #n #IH * [| #m ] #g2 #f1 #g #Hg #H + [ elim (pr_nat_inv_zero_succ … H) -H [|*: // ] #f2 #Hmn #H destruct + elim (pr_coafter_inv_next_sn … Hg) -Hg [|*: // ] #f #Hf #H destruct + elim (IH … Hf Hmn) -IH -Hf -Hmn /2 width=3 by ex2_intro/ + | elim (pr_nat_inv_succ_bi … H) -H [1,4: * |*: // ] #f2 #Hmn #H destruct + [ elim (pr_coafter_inv_push_bi … Hg) -Hg [|*: // ] #f #Hf #H destruct + elim (IH … Hf Hmn) -IH -Hf -Hmn /2 width=3 by ex2_intro/ + | elim (pr_coafter_inv_next_sn … Hg) -Hg [|*: // ] #f #Hf #H destruct + elim (IH … Hf Hmn) -IH -Hf -Hmn /2 width=3 by ex2_intro/ + ] + ] +] +qed-.