(* RELOCATION MAP ***********************************************************)
definition isfin: predicate rtmap ≝
- λf. â\88\83n. ð\9d\90\82â¦\83fâ¦\84 ≘ n.
+ λf. â\88\83n. ð\9d\90\82â\9dªfâ\9d« ≘ n.
interpretation "test for finite colength (rtmap)"
'IsFinite f = (isfin f).
(* Basic eliminators ********************************************************)
-lemma isfin_ind (R:predicate rtmap): (â\88\80f. ð\9d\90\88â¦\83fâ¦\84 → R f) →
- (â\88\80f. ð\9d\90\85â¦\83fâ¦\84 → R f → R (⫯f)) →
- (â\88\80f. ð\9d\90\85â¦\83fâ¦\84 → R f → R (↑f)) →
- â\88\80f. ð\9d\90\85â¦\83fâ¦\84 → R f.
+lemma isfin_ind (R:predicate rtmap): (â\88\80f. ð\9d\90\88â\9dªfâ\9d« → R f) →
+ (â\88\80f. ð\9d\90\85â\9dªfâ\9d« → R f → R (⫯f)) →
+ (â\88\80f. ð\9d\90\85â\9dªfâ\9d« → R f → R (↑f)) →
+ â\88\80f. ð\9d\90\85â\9dªfâ\9d« → R f.
#R #IH1 #IH2 #IH3 #f #H elim H -H
#n #H elim H -f -n /3 width=2 by ex_intro/
qed-.
(* Basic inversion lemmas ***************************************************)
-lemma isfin_inv_push: â\88\80g. ð\9d\90\85â¦\83gâ¦\84 â\86\92 â\88\80f. ⫯f = g â\86\92 ð\9d\90\85â¦\83fâ¦\84.
+lemma isfin_inv_push: â\88\80g. ð\9d\90\85â\9dªgâ\9d« â\86\92 â\88\80f. ⫯f = g â\86\92 ð\9d\90\85â\9dªfâ\9d«.
#g * /3 width=4 by fcla_inv_px, ex_intro/
qed-.
-lemma isfin_inv_next: â\88\80g. ð\9d\90\85â¦\83gâ¦\84 â\86\92 â\88\80f. â\86\91f = g â\86\92 ð\9d\90\85â¦\83fâ¦\84.
+lemma isfin_inv_next: â\88\80g. ð\9d\90\85â\9dªgâ\9d« â\86\92 â\88\80f. â\86\91f = g â\86\92 ð\9d\90\85â\9dªfâ\9d«.
#g * #n #H #f #H0 elim (fcla_inv_nx … H … H0) -g
/2 width=2 by ex_intro/
qed-.
lemma isfin_eq_repl_fwd: eq_repl_fwd … isfin.
/3 width=3 by isfin_eq_repl_back, eq_repl_sym/ qed-.
-lemma isfin_isid: â\88\80f. ð\9d\90\88â¦\83fâ¦\84 â\86\92 ð\9d\90\85â¦\83fâ¦\84.
+lemma isfin_isid: â\88\80f. ð\9d\90\88â\9dªfâ\9d« â\86\92 ð\9d\90\85â\9dªfâ\9d«.
/3 width=2 by fcla_isid, ex_intro/ qed.
-lemma isfin_push: â\88\80f. ð\9d\90\85â¦\83fâ¦\84 â\86\92 ð\9d\90\85â¦\83⫯fâ¦\84.
+lemma isfin_push: â\88\80f. ð\9d\90\85â\9dªfâ\9d« â\86\92 ð\9d\90\85â\9dªâ«¯fâ\9d«.
#f * /3 width=2 by fcla_push, ex_intro/
qed.
-lemma isfin_next: â\88\80f. ð\9d\90\85â¦\83fâ¦\84 â\86\92 ð\9d\90\85â¦\83â\86\91fâ¦\84.
+lemma isfin_next: â\88\80f. ð\9d\90\85â\9dªfâ\9d« â\86\92 ð\9d\90\85â\9dªâ\86\91fâ\9d«.
#f * /3 width=2 by fcla_next, ex_intro/
qed.
(* Properties with iterated push ********************************************)
-lemma isfin_pushs: â\88\80n,f. ð\9d\90\85â¦\83fâ¦\84 â\86\92 ð\9d\90\85â¦\83⫯*[n]fâ¦\84.
+lemma isfin_pushs: â\88\80n,f. ð\9d\90\85â\9dªfâ\9d« â\86\92 ð\9d\90\85â\9dªâ«¯*[n]fâ\9d«.
#n elim n -n /3 width=3 by isfin_push/
qed.
(* Inversion lemmas with iterated push **************************************)
-lemma isfin_inv_pushs: â\88\80n,g. ð\9d\90\85â¦\83⫯*[n]gâ¦\84 â\86\92 ð\9d\90\85â¦\83gâ¦\84.
+lemma isfin_inv_pushs: â\88\80n,g. ð\9d\90\85â\9dªâ«¯*[n]gâ\9d« â\86\92 ð\9d\90\85â\9dªgâ\9d«.
#n elim n -n /3 width=3 by isfin_inv_push/
qed.
(* Properties with tail *****************************************************)
-lemma isfin_tl: â\88\80f. ð\9d\90\85â¦\83fâ¦\84 â\86\92 ð\9d\90\85â¦\83⫱fâ¦\84.
+lemma isfin_tl: â\88\80f. ð\9d\90\85â\9dªfâ\9d« â\86\92 ð\9d\90\85â\9dªâ«±fâ\9d«.
#f elim (pn_split f) * #g #H #Hf destruct
/3 width=3 by isfin_inv_push, isfin_inv_next/
qed.
(* Inversion lemmas with tail ***********************************************)
-lemma isfin_inv_tl: â\88\80f. ð\9d\90\85â¦\83⫱fâ¦\84 â\86\92 ð\9d\90\85â¦\83fâ¦\84.
+lemma isfin_inv_tl: â\88\80f. ð\9d\90\85â\9dªâ«±fâ\9d« â\86\92 ð\9d\90\85â\9dªfâ\9d«.
#f elim (pn_split f) * /2 width=1 by isfin_next, isfin_push/
qed-.
(* Inversion lemmas with iterated tail **************************************)
-lemma isfin_inv_tls: â\88\80n,f. ð\9d\90\85â¦\83⫱*[n]fâ¦\84 â\86\92 ð\9d\90\85â¦\83fâ¦\84.
+lemma isfin_inv_tls: â\88\80n,f. ð\9d\90\85â\9dªâ«±*[n]fâ\9d« â\86\92 ð\9d\90\85â\9dªfâ\9d«.
#n elim n -n /3 width=1 by isfin_inv_tl/
qed-.