interpretation "test for finite colength (rtmap)"
'IsFinite f = (isfin f).
-(* Basic properties *********************************************************)
-
-lemma isfin_isid: āf. šā¦fā¦ ā š
ā¦fā¦.
-/3 width=2 by fcla_isid, ex_intro/ qed.
-
-lemma isfin_push: āf. š
ā¦fā¦ ā š
ā¦āfā¦.
-#f * /3 width=2 by fcla_push, ex_intro/
-qed.
-
-lemma isfin_next: āf. š
ā¦fā¦ ā š
ā¦ā«Æfā¦.
-#f * /3 width=2 by fcla_next, ex_intro/
-qed.
-
-lemma isfin_eq_repl_back: eq_repl_back ā¦ isfin.
-#f1 * /3 width=4 by fcla_eq_repl_back, ex_intro/
-qed-.
-
-lemma isfin_eq_repl_fwd: eq_repl_fwd ā¦ isfin.
-/3 width=3 by isfin_eq_repl_back, eq_repl_sym/ qed-.
-
(* Basic eliminators ********************************************************)
lemma isfin_ind (R:predicate rtmap): (āf. šā¦fā¦ ā R f) ā
lemma isfin_fwd_push: āg. š
ā¦gā¦ ā āf. āf = g ā š
ā¦fā¦.
#g * /3 width=4 by fcla_inv_px, ex_intro/
qed-.
+
+(* Basic properties *********************************************************)
+
+lemma isfin_eq_repl_back: eq_repl_back ā¦ isfin.
+#f1 * /3 width=4 by fcla_eq_repl_back, 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: āf. šā¦fā¦ ā š
ā¦fā¦.
+/3 width=2 by fcla_isid, ex_intro/ qed.
+
+lemma isfin_push: āf. š
ā¦fā¦ ā š
ā¦āfā¦.
+#f * /3 width=2 by fcla_push, ex_intro/
+qed.
+
+lemma isfin_next: āf. š
ā¦fā¦ ā š
ā¦ā«Æfā¦.
+#f * /3 width=2 by fcla_next, ex_intro/
+qed.
+
+lemma isfin_tl: āf. š
ā¦fā¦ ā š
ā¦ā«±fā¦.
+#f elim (pn_split f) * #g #H #Hf destruct
+/3 width=3 by isfin_fwd_push, isfin_inv_next/
+qed.