proposition: Lemma kerE (R : coherentRingType) m n (M : 'M[R]_(m, n)) : ker M = castmx (congr1 _ (col_0mx _), erefl) (0.-ker M).
proof: Proof. rewrite /(0.-ker) -(esymK (col_0mx _)). case: _ / (esym (col_0mx _)); rewrite castmx_id. by apply/matrixP => i j; rewrite mxE /=; congr (ker M _ _); apply: val_inj. Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat div seq path) mathcomp(ssralg fintype perm choice matrix bigop zmodp mxalgebra poly) ssrcomplements dvdring stronglydiscrete