fact: Fixpoint divmx m n l : 'M_(l, n) -> 'M[R]_(m, n) -> 'M_(l, m) := if n is p.+1 return 'M_(l, n) -> 'M_(m, n) -> 'M_(l, m) then fun (B: 'M_(_, 1 + _)) (M : 'M_(_, 1 + _)) => let K := ker (lsubmx M) in let W := divid (lsubmx B) (lsubmx M) in divmx (rsubmx B - W *m rsubmx M) (K *m rsubmx M) *m K + W else fun _ _ => 0.
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