X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground_2%2Frelocation%2Frtmap_isdiv.ma;h=16062b44b5dfb7f36ed72f06497c71dd577695fd;hp=006fbc0dfdfcc9d70fe67cac96cd1a11d561966d;hb=bd53c4e895203eb049e75434f638f26b5a161a2b;hpb=3b7b8afcb429a60d716d5226a5b6ab0d003228b1 diff --git a/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_isdiv.ma b/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_isdiv.ma index 006fbc0df..16062b44b 100644 --- a/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_isdiv.ma +++ b/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_isdiv.ma @@ -27,26 +27,26 @@ interpretation "test for divergence (rtmap)" (* Basic inversion lemmas ***************************************************) -lemma isdiv_inv_gen: ∀g. 𝛀⦃g⦄ → ∃∃f. 𝛀⦃f⦄ & ↑f = g. +lemma isdiv_inv_gen: ∀g. 𝛀❪g❫ → ∃∃f. 𝛀❪f❫ & ↑f = g. #g * -g #f #g #Hf * /2 width=3 by ex2_intro/ qed-. (* Advanced inversion lemmas ************************************************) -lemma isdiv_inv_next: ∀g. 𝛀⦃g⦄ → ∀f. ↑f = g → 𝛀⦃f⦄. +lemma isdiv_inv_next: ∀g. 𝛀❪g❫ → ∀f. ↑f = g → 𝛀❪f❫. #g #H elim (isdiv_inv_gen … H) -H #f #Hf * -g #g #H >(injective_next … H) -H // qed-. -lemma isdiv_inv_push: ∀g. 𝛀⦃g⦄ → ∀f. ⫯f = g → ⊥. +lemma isdiv_inv_push: ∀g. 𝛀❪g❫ → ∀f. ⫯f = g → ⊥. #g #H elim (isdiv_inv_gen … H) -H #f #Hf * -g #g #H elim (discr_push_next … H) qed-. (* Main inversion lemmas ****************************************************) -corec theorem isdiv_inv_eq_repl: ∀f1,f2. 𝛀⦃f1⦄ → 𝛀⦃f2⦄ → f1 ≡ f2. +corec theorem isdiv_inv_eq_repl: ∀f1,f2. 𝛀❪f1❫ → 𝛀❪f2❫ → f1 ≡ f2. #f1 #f2 #H1 #H2 cases (isdiv_inv_gen … H1) -H1 cases (isdiv_inv_gen … H2) -H2 @@ -66,11 +66,11 @@ lemma isdiv_eq_repl_fwd: eq_repl_fwd … isdiv. (* Alternative definition ***************************************************) -corec lemma eq_next_isdiv: ∀f. ↑f ≡ f → 𝛀⦃f⦄. +corec lemma eq_next_isdiv: ∀f. ↑f ≡ f → 𝛀❪f❫. #f #H cases (eq_inv_nx … H) -H /4 width=3 by isdiv_next, eq_trans/ qed. -corec lemma eq_next_inv_isdiv: ∀f. 𝛀⦃f⦄ → ↑f ≡ f. +corec lemma eq_next_inv_isdiv: ∀f. 𝛀❪f❫ → ↑f ≡ f. #f * -f #f #g #Hf #Hg @(eq_next … Hg) [2: @eq_next_inv_isdiv // | skip ] @eq_f // @@ -78,19 +78,19 @@ qed-. (* Properties with iterated next ********************************************) -lemma isdiv_nexts: ∀n,f. 𝛀⦃f⦄ → 𝛀⦃↑*[n]f⦄. +lemma isdiv_nexts: ∀n,f. 𝛀❪f❫ → 𝛀❪↑*[n]f❫. #n elim n -n /3 width=3 by isdiv_next/ qed. (* Inversion lemmas with iterated next **************************************) -lemma isdiv_inv_nexts: ∀n,g. 𝛀⦃↑*[n]g⦄ → 𝛀⦃g⦄. +lemma isdiv_inv_nexts: ∀n,g. 𝛀❪↑*[n]g❫ → 𝛀❪g❫. #n elim n -n /3 width=3 by isdiv_inv_next/ qed. (* Properties with tail *****************************************************) -lemma isdiv_tl: ∀f. 𝛀⦃f⦄ → 𝛀⦃⫱f⦄. +lemma isdiv_tl: ∀f. 𝛀❪f❫ → 𝛀❪⫱f❫. #f cases (pn_split f) * #g * -f #H [ elim (isdiv_inv_push … H) -H // | /2 width=3 by isdiv_inv_next/ @@ -99,6 +99,6 @@ qed. (* Properties with iterated tail ********************************************) -lemma isdiv_tls: ∀n,g. 𝛀⦃g⦄ → 𝛀⦃⫱*[n]g⦄. +lemma isdiv_tls: ∀n,g. 𝛀❪g❫ → 𝛀❪⫱*[n]g❫. #n elim n -n /3 width=1 by isdiv_tl/ qed.