fact: Fixpoint principal_gen n : 'cV[R]_n -> R := if n is p.+1 then fun I : 'cV[R]_(1 + p) => let x := I 0 0 in let y := principal_gen (dsubmx I) in let: (g,_,_,_,_) := egcdr x y in g else fun => 0.
imports: HB(structures) Coq(ssreflect ssrfun ssrbool Arith.Wf_nat) mathcomp(eqtype ssrnat div seq path) mathcomp(ssralg fintype perm tuple choice generic_quotient) mathcomp(matrix bigop zmodp mxalgebra poly) stronglydiscrete