fact: Definition Frobenius_form n (A : 'M[F]_n) := let sp := invariant_factors A in let size := [seq (size p).-2 | p : E <- sp] in let blocks n i := [seq companion_mxn n.+1 p | p <- sp]`_i in diag_block_mx size blocks.
imports: mathcomp(all_ssreflect) mathcomp(all_algebra) mathcomp(all_fingroup) mathcomp(all_real_closed) CoqEAL(binetcauchy ssrcomplements mxstructure minor) CoqEAL(smith dvdring polydvd) CoqEAL(similar perm_eq_image companion closed_poly smith_complements)