X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground_2%2Frelocation%2Frtmap_coafter.ma;h=7992f334e06e86041ceefb358348c00cfe427821;hb=f4e73c50acfc4ed453edd423c9bbe28af5dc9c4c;hp=5ac0c06f75173c8f70e35e0cd8194ef0143d3546;hpb=926796df5884453d8f0cf9f294d7776d469ef45b;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_coafter.ma b/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_coafter.ma index 5ac0c06f7..7992f334e 100644 --- a/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_coafter.ma +++ b/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_coafter.ma @@ -278,6 +278,17 @@ lemma coafter_mono_eq: ∀f1,f2,f. f1 ~⊚ f2 ≡ f → ∀g1,g2,g. g1 ~⊚ g2 f1 ≗ g1 → f2 ≗ g2 → f ≗ g. /4 width=4 by coafter_mono, coafter_eq_repl_back1, coafter_eq_repl_back2/ qed-. +(* Inversion lemmas with pushs **********************************************) + +lemma coafter_fwd_pushs: ∀n,g2,g1,g. g2 ~⊚ g1 ≡ g → @⦃0, g2⦄ ≡ n → + ∃f. ↑*[n]f = g. +#n elim n -n /2 width=2 by ex_intro/ +#n #IH #g2 #g1 #g #Hg #Hg2 +cases (at_inv_pxn … Hg2) -Hg2 [ |*: // ] #f2 #Hf2 #H2 +cases (coafter_inv_nxx … Hg … H2) -Hg -H2 #f #Hf #H0 destruct +elim (IH … Hf Hf2) -g1 -g2 -f2 /2 width=2 by ex_intro/ +qed-. + (* Inversion lemmas with tail ***********************************************) lemma coafter_inv_tl1: ∀g2,g1,g. g2 ~⊚ ⫱g1 ≡ g → @@ -303,9 +314,46 @@ lemma coafter_tls: ∀n,f1,f2,f. @⦃0, f1⦄ ≡ n → #n elim n -n // #n #IH #f1 #f2 #f #Hf1 #Hf cases (at_inv_pxn … Hf1) -Hf1 [ |*: // ] #g1 #Hg1 #H1 -cases (coafter_inv_nxx … Hf … H1) -Hf /2 width=1 by/ +cases (coafter_inv_nxx … Hf … H1) -Hf #g #Hg #H0 destruct +