proposition: Lemma porbit_tpermL x y : porbit (tperm x y) x = [set x; y].
proof: Proof. apply/setP => t; rewrite !inE. apply/porbitP/idP => [[n ->{t}] | /orP[] /eqP ->{t}]. - rewrite -(odd_double_half n) expgD -mul2n expgM expgS expg1 tperm2 expg1n mulg1. case: (odd n) => /=; apply/orP; first by right; rewrite expg1 tpermL. by left; rewrite expg0 perm1. - by exists 0; rewrite expg0 perm1. - by exists 1; rewrite expg1 tpermL. 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