proposition: Lemma posP x : reflect (exists y, x = y * conj y) (le 0 x).
proof: Proof. rewrite posE; apply: (iffP eqP) => [Dx | [y {x}->]]; first by exists (sqrt x). by rewrite (normE (normK y)) rmorphM /= conjK (mulrC (conj _)) -expr2 normK. Qed.
imports: HB(structures) mathcomp(ssreflect ssrbool ssrfun ssrnat eqtype seq choice) mathcomp(div fintype path bigop finset prime order ssralg) mathcomp(poly polydiv mxpoly generic_quotient countalg) mathcomp(ssrnum closed_field ssrint archimedean rat intdiv) mathcomp(algebraics_fundamentals)