Definition orbit x := traject f x (order x).Definition findex x y := index y (orbit x).

(* Specifications: *)
Lemma fconnect_iter n x : fconnect f x (iter n f x).
Lemma fconnect1 x : fconnect f x (f x).
Lemma fconnect_finv x : fconnect f x (finv x).
Lemma size_orbit x : size (orbit x) = order x.
Lemma looping_order x : looping f x (order x).
Lemma orbit_uniq x : uniq (orbit x).
Lemma findex_max x y : fconnect f x y -> findex x y < order x.
Lemma findex_iter x i : i < order x -> findex x (iter i f x) = i.
Lemma iter_findex x y : fconnect f x y -> iter (findex x y) f x = y.
Lemma findex0 x : findex x x = 0.
Lemma fconnect_invariant (T' : eqType) (k : T -> T') : invariant f k =1 xpredT -> forall x y, fconnect f x y -> k x = k y.
Lemma order_cycle : order x = size p.
Lemma orbit_rot_cycle : {i : nat | orbit x = rot i p}.
Lemma f_finv : cancel finv f.
Lemma finv_f : cancel f finv.
Lemma fin_inj_bij : bijective f.
Lemma finv_bij : bijective finv.
Lemma finv_inj : injective finv.
Lemma fconnect_sym x y : fconnect f x y = fconnect f y x.
Lemma iter_order x : iter (order x) f x = x.
Lemma iter_finv n x : n <= order x -> iter n finv x = iter (order x - n) f x.
Lemma cycle_orbit x : fcycle f (orbit x).
Lemma fpath_finv x p : fpath finv x p = fpath f (last x p) (rev (belast x p)).
Lemma same_fconnect_finv : fconnect finv =2 fconnect f.
Lemma fcard_finv : fcard_mem finv =1 fcard_mem f.
Lemma same_fconnect1 x : fconnect f x =1 fconnect f (f x).
Lemma same_fconnect1_r x y : fconnect f x y = fconnect f x (f y).
Lemma fconnect_id (x : T) : fconnect id x =1 xpred1 x.
Lemma order_id (x : T) : order id x = 1.
Lemma froots_id (x : T) : froots id x.
Lemma froot_id (x : T) : froot id x = x.
Lemma finv_eq_can : cancel f f' -> finv f =1 f'.
Lemma eq_fconnect : fconnect f =2 fconnect f'.
Lemma eq_fcard : fcard_mem f =1 fcard_mem f'.
Lemma eq_finv : finv f =1 finv f'.
Lemma eq_froot : froot f =1 froot f'.
Lemma eq_froots : froots f =1 froots f'.
Lemma finv_inv : finv (finv f) =1 f.
Lemma order_finv : order (finv f) =1 order f.
Lemma order_set_finv n : order_set (finv f) n =i order_set f n.