(* RELOCATION MAP ***********************************************************)
coinductive isdiv: predicate rtmap ≝
-| isdiv_next: â\88\80f,g. isdiv f â\86\92 ⫯f = g → isdiv g
+| isdiv_next: â\88\80f,g. isdiv f â\86\92 â\86\91f = g → isdiv g
.
interpretation "test for divergence (rtmap)"
(* Basic inversion lemmas ***************************************************)
-lemma isdiv_inv_gen: â\88\80g. ð\9d\9b\80â¦\83gâ¦\84 â\86\92 â\88\83â\88\83f. ð\9d\9b\80â¦\83fâ¦\84 & ⫯f = g.
+lemma isdiv_inv_gen: â\88\80g. ð\9d\9b\80â¦\83gâ¦\84 â\86\92 â\88\83â\88\83f. ð\9d\9b\80â¦\83fâ¦\84 & â\86\91f = g.
#g * -g
#f #g #Hf * /2 width=3 by ex2_intro/
qed-.
(* Advanced inversion lemmas ************************************************)
-lemma isdiv_inv_next: â\88\80g. ð\9d\9b\80â¦\83gâ¦\84 â\86\92 â\88\80f. ⫯f = g → 𝛀⦃f⦄.
+lemma isdiv_inv_next: â\88\80g. ð\9d\9b\80â¦\83gâ¦\84 â\86\92 â\88\80f. â\86\91f = g → 𝛀⦃f⦄.
#g #H elim (isdiv_inv_gen … H) -H
#f #Hf * -g #g #H >(injective_next … H) -H //
qed-.
-lemma isdiv_inv_push: â\88\80g. ð\9d\9b\80â¦\83gâ¦\84 â\86\92 â\88\80f. â\86\91f = g → ⊥.
+lemma isdiv_inv_push: â\88\80g. ð\9d\9b\80â¦\83gâ¦\84 â\86\92 â\88\80f. ⫯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: â\88\80f1,f2. ð\9d\9b\80â¦\83f1â¦\84 â\86\92 ð\9d\9b\80â¦\83f2â¦\84 â\86\92 f1 â\89\97 f2.
+corec theorem isdiv_inv_eq_repl: â\88\80f1,f2. ð\9d\9b\80â¦\83f1â¦\84 â\86\92 ð\9d\9b\80â¦\83f2â¦\84 â\86\92 f1 â\89¡ f2.
#f1 #f2 #H1 #H2
cases (isdiv_inv_gen … H1) -H1
cases (isdiv_inv_gen … H2) -H2
(* Alternative definition ***************************************************)
-corec lemma eq_next_isdiv: â\88\80f. ⫯f â\89\97 f → 𝛀⦃f⦄.
+corec lemma eq_next_isdiv: â\88\80f. â\86\91f â\89¡ 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: â\88\80f. ð\9d\9b\80â¦\83fâ¦\84 â\86\92 ⫯f â\89\97 f.
+corec lemma eq_next_inv_isdiv: â\88\80f. ð\9d\9b\80â¦\83fâ¦\84 â\86\92 â\86\91f â\89¡ f.
#f * -f
#f #g #Hf #Hg @(eq_next … Hg) [2: @eq_next_inv_isdiv // | skip ]
@eq_f //
(* Properties with iterated next ********************************************)
-lemma isdiv_nexts: â\88\80n,f. ð\9d\9b\80â¦\83fâ¦\84 â\86\92 ð\9d\9b\80â¦\83⫯*[n]f⦄.
+lemma isdiv_nexts: â\88\80n,f. ð\9d\9b\80â¦\83fâ¦\84 â\86\92 ð\9d\9b\80â¦\83â\86\91*[n]f⦄.
#n elim n -n /3 width=3 by isdiv_next/
qed.
(* Inversion lemmas with iterated next **************************************)
-lemma isdiv_inv_nexts: â\88\80n,g. ð\9d\9b\80â¦\83⫯*[n]g⦄ → 𝛀⦃g⦄.
+lemma isdiv_inv_nexts: â\88\80n,g. ð\9d\9b\80â¦\83â\86\91*[n]g⦄ → 𝛀⦃g⦄.
#n elim n -n /3 width=3 by isdiv_inv_next/
qed.