proposition: Lemma diag_neq0 m n (M : 'M[R]_(m,n)) i (his : i < size (diag M)) : (diag M)`_i != 0.
proof: Proof. exact: (all_nthP 0 (filter_all (fun x => x != 0) (take _ (smith M).1.2))). Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat div seq path tuple) mathcomp(perm fingroup choice ssralg fintype finfun poly polydiv) mathcomp(bigop matrix zmodp mxalgebra) ssrcomplements dvdring mxstructure similar minor binetcauchy stronglydiscrete coherent