proposition: Lemma canporbitE x y : (porbit s x == porbit s y) = (canporbit x == canporbit y).
proof: Proof. Proof using. apply/eqP/eqP => [| H]. - rewrite /canporbit => ->; case: pickP => [x0 //|]. by move => /(_ y) /=; rewrite porbit_id. - have:= canporbitP x; rewrite H. rewrite -eq_porbit_mem => /eqP ->. apply esym; apply/eqP; rewrite eq_porbit_mem. exact: canporbitP. Qed.
imports: mathcomp.ssreflect.ssreflect mathcomp(ssrfun ssrbool eqtype ssrnat seq choice fintype) mathcomp(tuple finfun finset path bigop) mathcomp(fingroup perm action) mathcomp(ssralg matrix mxalgebra algC classfun) partition tools sorted permcomp fibered_set cycles