X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground_2%2Frelocation%2Frtmap_isuni.ma;h=b88288a824d93a0badb988c507ce423b47ac2a51;hb=bd53c4e895203eb049e75434f638f26b5a161a2b;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..b88288a82 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_isid: ∀f. 𝐈❪f❫ → isuni f +| 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-.