fact: Fixpoint Pol_Q2Z (p : Pol Q) : Pol Z * positive := match p with | Pc (Qmake n d) => (Pc n, d) | Pinj j p => let (p, n) := Pol_Q2Z p in (Pinj j p, n) | PX p1 i p2 => let (p1, n1) := Pol_Q2Z p1 in let (p2, n2) := Pol_Q2Z p2 in let mulc c p := PmulC Z0 (Zpos 1) Z.mul Z.eqb p (Zpos c) in (PX (mulc n2 p1) i (mulc n1 p2), Pos.mul n1 n2) end.
imports: elpi(elpi) Coq(QArith Ring) Coq.micromega(RingMicromega QMicromega EnvRing Tauto Lqa) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat choice seq) mathcomp(fintype finfun bigop order ssralg ssrnum ssrint) mathcomp.zify(ssrZ zify) mathcomp.algebra_tactics(common)