proposition: Fact smith_inv_subproof : pres M %| pres D *m invmx Q.
proof: Proof. apply/dvdmxP; exists P. by rewrite /D mulmx_diag_mx mulmxKV ?row_ebase_unit // /col_ebase invmxK. Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat div seq path) mathcomp(ssralg fintype perm choice matrix bigop zmodp mxalgebra poly) ssrcomplements stronglydiscrete coherent edr