X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=inline;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground_2%2Frelocation%2Frtmap_isuni.ma;h=38443bf59525e6bef7d792921897cfd695c65b1f;hb=6b4da5fa47d474dcf2f203ec7f5ed36938739c9b;hp=efde1a1206efdac0358619eb355839abf4d9f8df;hpb=629687db8a55432e95c82f0c79e3f51c023e65a6;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_isuni.ma b/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_isuni.ma index efde1a120..38443bf59 100644 --- a/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_isuni.ma +++ b/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_isuni.ma @@ -13,13 +13,13 @@ (**************************************************************************) include "ground_2/notation/relations/isuniform_1.ma". -include "ground_2/relocation/rtmap_isid.ma". +include "ground_2/relocation/rtmap_isfin.ma". (* RELOCATION MAP ***********************************************************) inductive isuni: predicate rtmap ≝ | isuni_isid: ∀f. 𝐈⦃f⦄ → isuni f -| isuni_next: ∀f. isuni f → ∀g. ⫯f = g → isuni g +| isuni_next: ∀f. isuni f → ∀g. ↑f = g → isuni g . interpretation "test for uniformity (rtmap)" @@ -27,19 +27,30 @@ interpretation "test for uniformity (rtmap)" (* Basic inversion lemmas ***************************************************) -lemma isuni_inv_push: ∀g. 𝐔⦃g⦄ → ∀f. ↑f = g → 𝐈⦃f⦄. +lemma isuni_inv_push: ∀g. 𝐔⦃g⦄ → ∀f. ⫯f = g → 𝐈⦃f⦄. #g * -g /2 width=3 by isid_inv_push/ #f #_ #g #H #x #Hx destruct elim (discr_push_next … Hx) qed-. -lemma isuni_inv_next: ∀g. 𝐔⦃g⦄ → ∀f. ⫯f = g → 𝐔⦃f⦄. +lemma isuni_inv_next: ∀g. 𝐔⦃g⦄ → ∀f. ↑f = g → 𝐔⦃f⦄. #g * -g #f #Hf [ #x #Hx elim (isid_inv_next … Hf … Hx) | #g #H #x #Hx destruct /2 width=1 by injective_push/ ] qed-. +lemma isuni_split: ∀g. 𝐔⦃g⦄ → (∃∃f. 𝐈⦃f⦄ & ⫯f = g) ∨ (∃∃f.𝐔⦃f⦄ & ↑f = g). +#g #H elim (pn_split g) * #f #Hf +/4 width=3 by isuni_inv_next, isuni_inv_push, or_introl, or_intror, ex2_intro/ +qed-. + (* basic forward lemmas *****************************************************) -lemma isuni_fwd_push: ∀g. 𝐔⦃g⦄ → ∀f. ↑f = g → 𝐔⦃f⦄. +lemma isuni_fwd_push: ∀g. 𝐔⦃g⦄ → ∀f. ⫯f = g → 𝐔⦃f⦄. /3 width=3 by isuni_inv_push, isuni_isid/ qed-. + +(* Forward lemmas with test for finite colength *****************************) + +lemma isuni_fwd_isfin: ∀f. 𝐔⦃f⦄ → 𝐅⦃f⦄. +#f #H elim H -f /3 width=1 by isfin_next, isfin_isid/ +qed-.