proposition: Lemma similar_exp m n (A : 'M[R]_m.+1) (B : 'M_n.+1) k: similar A B -> similar (A ^+ k) (B ^+ k).
proof: Proof. case=> /eqP; rewrite eqSS=> /eqP eq [P HP]; move: B. rewrite /similar -eq=> B; rewrite conform_mx_id=> HAB. split=> //; exists P => //; rewrite conform_mx_id. elim: k=> [|k IHk]. by rewrite !expr0 mulmx1 mul1mx. by rewrite exprSr mulmxA IHk -mulmxA HAB exprSr mulmxA. Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype fintype finfun ssrnat seq) mathcomp(choice ssralg poly polydiv mxpoly matrix bigop) mathcomp(mxalgebra perm fingroup tuple) mxstructure dvdring