<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="coqdoc.css" rel="stylesheet" type="text/css" />
<title>mathcomp.algebra.polydiv</title>
</head>

<body>

<div id="page">

<div id="header">
</div>

<div id="main">

<h1 class="libtitle">Library mathcomp.algebra.polydiv</h1>

<div class="code">
<span class="comment">(*&nbsp;(c)&nbsp;Copyright&nbsp;2006-2016&nbsp;Microsoft&nbsp;Corporation&nbsp;and&nbsp;Inria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>
&nbsp;Distributed&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;CeCILL-B.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
<span class="id" title="keyword">Require</span> <span class="id" title="keyword">Import</span> <a class="idref" href="mathcomp.ssreflect.ssreflect.html#"><span class="id" title="library">mathcomp.ssreflect.ssreflect</span></a>.<br/>

<br/>
</div>

<div class="doc">
 This file provides a library for the basic theory of Euclidean and pseudo- 
 Euclidean division for polynomials over ring structures.                   
 The library defines two versions of the pseudo-euclidean division: one for 
 coefficients in a (not necessarily commutative) ring structure and one for 
 coefficients equipped with a structure of integral domain. From the latter 
 we derive the definition of the usual Euclidean division for coefficients  
 in a field. Only the definition of the pseudo-division for coefficients in 
 an integral domain is exported by default and benefits from notations.     
 Also, the only theory exported by default is the one of division for       
 polynomials with coefficients in a field.                                  
 Other definitions and facts are qualified using name spaces indicating the 
 hypotheses made on the structure of coefficients and the properties of the 
 polynomial one divides with.                                               

<div class="paragraph"> </div>

 Pdiv.Field (exported by the present library):                              
          edivp p q == pseudo-division of p by q with p q : {poly R} where  
                       R is an idomainType.                                 
                       Computes (k, quo, rem) : nat * {poly r} * {poly R},  
                       such that size rem &lt; size q and:                     
                       + if lead_coef q is not a unit, then:                
                         (lead_coef q ^+ k) *: p = q * quo + rem            
                       + else if lead_coef q is a unit, then:               
                         p = q * quo + rem and k = 0                        
             p %/ q == quotient (second component) computed by (edivp p q). 
             p %% q == remainder (third component) computed by (edivp p q). 
          scalp p q == exponent (first component) computed by (edivp p q).  
             p %| q == tests the nullity of the remainder of the            
                       pseudo-division of p by q.                           
         rgcdp p q  == Pseudo-greater common divisor obtained by performing 
                       the Euclidean algorithm on p and q using redivp as   
                       Euclidean division.                                  
             p %= q == p and q are associate polynomials, i.e., p %| q and  
                       q %| p, or equivalently, p = c *: q for some nonzero 
                       constant c.                                          
           gcdp p q == Pseudo-greater common divisor obtained by performing 
                       the Euclidean algorithm on p and q using  edivp as   
                       Euclidean division.                                  
          egcdp p q == The pair of Bezout coefficients: if e := egcdp p q,  
                       then size e.1 &lt;= size q, size e.2 &lt;= size p, and     
                       gcdp p q %= e.1 * p + e.2 * q                        
       coprimep p q == p and q are coprime, i.e., (gcdp p q) is a nonzero   
                       constant.                                            
          gdcop q p == greatest divisor of p which is coprime to q.         
 irreducible_poly p &lt;-&gt; p has only trivial (constant) divisors.             

<div class="paragraph"> </div>

 Pdiv.Idomain: theory available for edivp and the related operation under   
    the sole assumption that the ring of coefficients is canonically an     
    integral domain (R : idomainType).                                      

<div class="paragraph"> </div>

 Pdiv.IdomainMonic:  theory available for edivp and the related operations  
    under the assumption that the ring of coefficients is canonically       
    and integral domain (R : idomainType) an the divisor is monic.          

<div class="paragraph"> </div>

 Pdiv.IdomainUnit: theory available for edivp and the related operations    
    under the assumption that the ring of coefficients is canonically an    
    integral domain (R : idomainType) and the leading coefficient of the    
    divisor is a unit.                                                      

<div class="paragraph"> </div>

 Pdiv.ClosedField: theory available for edivp and the related operation     
    under the sole assumption that the ring of coefficients is canonically  
    an algebraically closed field (R : closedField).                        

<div class="paragraph"> </div>

  Pdiv.Ring :                                                               
   redivp p q == pseudo-division of p by q with p q : {poly R} where R is   
                 a ringType.                                                
                 Computes (k, quo, rem) : nat * {poly r} * {poly R},        
                 such that if rem = 0 then quo * q = p * (lead_coef q ^+ k) 

<div class="paragraph"> </div>

   rdivp p q  == quotient (second component) computed by (redivp p q).      
   rmodp p q  == remainder (third component) computed by (redivp p q).      
   rscalp p q == exponent (first component) computed by (redivp p q).       
   rdvdp p q  == tests the nullity of the remainder of the pseudo-division  
                 of p by q.                                                 
   rgcdp p q  == analogue of gcdp for coefficients in a ringType.           
   rgdcop p q == analogue of gdcop for coefficients in a ringType.          
rcoprimep p q == analogue of coprimep p q for coefficients in a ringType.   

<div class="paragraph"> </div>

 Pdiv.RingComRreg : theory of the operations defined in Pdiv.Ring, when the 
   ring of coefficients is canonically commutative (R : comRingType) and    
   the leading coefficient of the divisor is both right regular and         
   commutes as a constant polynomial with the divisor itself                

<div class="paragraph"> </div>

 Pdiv.RingMonic : theory of the operations defined in Pdiv.Ring, under the  
   assumption that the divisor is monic.                                    

<div class="paragraph"> </div>

 Pdiv.UnitRing: theory of the operations defined in Pdiv.Ring, when the     
   ring R of coefficients is canonically with units (R : unitRingType).     
                                                                             
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Set Implicit Arguments</span>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/>
<span class="id" title="keyword">Local Open</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">ring_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Reserved Notation</span> &quot;p %= q" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 70, <span class="id" title="keyword">no</span> <span class="id" title="keyword">associativity</span>).<br/>

<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv"><span class="id" title="module">Pdiv</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.CommonRing"><span class="id" title="module">CommonRing</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.CommonRing.RingPseudoDivision"><span class="id" title="section">RingPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Pseudo division, defined on an arbitrary ring  
</div>
<div class="code">
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.redivp_rec"><span class="id" title="definition">redivp_rec</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>)  :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">sq</span> := <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">cq</span> := <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">fix</span> <span class="id" title="var">loop</span> (<span class="id" title="var">k</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>)(<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>} :=<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">m</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">X</span></a><a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">^(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#sq"><span class="id" title="variable">sq</span></a><a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">qq1</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">r1</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.algebra.polydiv.html#loop"><span class="id" title="variable">loop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq1"><span class="id" title="variable">qq1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r1"><span class="id" title="variable">r1</span></a> <span class="id" title="var">n1</span> <span class="id" title="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq1"><span class="id" title="variable">qq1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r1"><span class="id" title="variable">r1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.redivp_expanded_def"><span class="id" title="definition">redivp_expanded_def</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :=<br/>
&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp_rec"><span class="id" title="definition">redivp_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> 0 0 <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>
<span class="id" title="keyword">Fact</span> <a name="Pdiv.CommonRing.redivp_key"><span class="id" title="lemma">redivp_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>.  <br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> :=<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp_key"><span class="id" title="lemma">redivp_key</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp_expanded_def"><span class="id" title="definition">redivp_expanded_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">redivp_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">).1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">).2</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">).2</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.rscalp"><span class="id" title="definition">rscalp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">((</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">).1).1</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0.<br/>
</div>

<div class="doc">
Definition rmultp := [rel m d | rdvdp d m]. 
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.redivp_def"><span class="id" title="lemma">redivp_def</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdiv0p"><span class="id" title="lemma">rdiv0p</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdivp0"><span class="id" title="lemma">rdivp0</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdivp_small"><span class="id" title="lemma">rdivp_small</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.leq_rdivp"><span class="id" title="lemma">leq_rdivp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rmod0p"><span class="id" title="lemma">rmod0p</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rmodp0"><span class="id" title="lemma">rmodp0</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rscalp_small"><span class="id" title="lemma">rscalp_small</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.ltn_rmodp"><span class="id" title="lemma">ltn_rmodp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.ltn_rmodpN0"><span class="id" title="lemma">ltn_rmodpN0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rmodp1"><span class="id" title="lemma">rmodp1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rmodp_small"><span class="id" title="lemma">rmodp_small</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.leq_rmodp"><span class="id" title="lemma">leq_rmodp</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>)  <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rmodpC"><span class="id" title="lemma">rmodpC</span></a> <span class="id" title="var">p</span> <span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdvdp0"><span class="id" title="lemma">rdvdp0</span></a> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdvd0p"><span class="id" title="lemma">rdvd0p</span></a> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdvd0pP"><span class="id" title="lemma">rdvd0pP</span></a> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdvdpN0"><span class="id" title="lemma">rdvdpN0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdvdp1"><span class="id" title="lemma">rdvdp1</span></a> <span class="id" title="var">d</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdvd1p"><span class="id" title="lemma">rdvd1p</span></a> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> 1 <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.Nrdvdp_small"><span class="id" title="lemma">Nrdvdp_small</span></a> (<span class="id" title="var">n</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#false"><span class="id" title="constructor">false</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rmodp_eq0P"><span class="id" title="lemma">rmodp_eq0P</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rmodp_eq0"><span class="id" title="lemma">rmodp_eq0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rdvdp_leq"><span class="id" title="lemma">rdvdp_leq</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.rgcdp"><span class="id" title="definition">rgcdp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><span class="id" title="var">p1</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <span class="id" title="var">q1</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <span class="id" title="var">p1</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <span class="id" title="var">q1</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="keyword">fix</span> <span class="id" title="var">loop</span> (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">pp</span> <span class="id" title="var">qq</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>} :=<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">rr</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#pp"><span class="id" title="variable">pp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rr"><span class="id" title="variable">rr</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.algebra.polydiv.html#loop"><span class="id" title="variable">loop</span></a> <span class="id" title="var">n1</span> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rr"><span class="id" title="variable">rr</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.algebra.polydiv.html#rr"><span class="id" title="variable">rr</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#loop"><span class="id" title="variable">loop</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <span class="id" title="var">p1</span>) <span class="id" title="var">p1</span> <span class="id" title="var">q1</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rgcd0p"><span class="id" title="lemma">rgcd0p</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgcdp"><span class="id" title="definition">rgcdp</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rgcdp0"><span class="id" title="lemma">rgcdp0</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_id"><span class="id" title="definition">right_id</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgcdp"><span class="id" title="definition">rgcdp</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rgcdpE"><span class="id" title="lemma">rgcdpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgcdp"><span class="id" title="definition">rgcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgcdp"><span class="id" title="definition">rgcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgcdp"><span class="id" title="definition">rgcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">CoInductive</span> <a name="Pdiv.CommonRing.comm_redivp_spec"><span class="id" title="inductive">comm_redivp_spec</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span> :=<br/>
&nbsp;&nbsp;<a name="Pdiv.CommonRing.ComEdivnSpec"><span class="id" title="constructor">ComEdivnSpec</span></a> <span class="id" title="var">k</span> (<span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) <span class="id" title="keyword">of</span><br/>
&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.comm"><span class="id" title="definition">GRing.comm</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) &amp;<br/>
&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) : <a class="idref" href="mathcomp.algebra.polydiv.html#comm_redivp_spec"><span class="id" title="inductive">comm_redivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.comm_redivpP"><span class="id" title="lemma">comm_redivpP</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.comm_redivp_spec"><span class="id" title="inductive">comm_redivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rmodpp"><span class="id" title="lemma">rmodpp</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.comm"><span class="id" title="definition">GRing.comm</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.rcoprimep"><span class="id" title="definition">rcoprimep</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) := <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgcdp"><span class="id" title="definition">rgcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Fixpoint</span> <a name="Pdiv.CommonRing.rgdcop_rec"><span class="id" title="definition">rgdcop_rec</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> <span class="id" title="var">n</span> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">m</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rcoprimep"><span class="id" title="definition">rcoprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rgdcop_rec"><span class="id" title="definition">rgdcop_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgcdp"><span class="id" title="definition">rgcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>)) <span class="id" title="var">m</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonRing.rgdcop"><span class="id" title="definition">rgdcop</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgdcop_rec"><span class="id" title="definition">rgdcop_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonRing.rgdcop0"><span class="id" title="lemma">rgdcop0</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rgdcop"><span class="id" title="definition">rgdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.RingPseudoDivision"><span class="id" title="section">RingPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing"><span class="id" title="module">CommonRing</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.RingComRreg"><span class="id" title="module">RingComRreg</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">CommonRing</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.RingComRreg.ComRegDivisor"><span class="id" title="section">ComRegDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.RingComRreg.ComRegDivisor.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="Pdiv.RingComRreg.ComRegDivisor.Cdl"><span class="id" title="variable">Cdl</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.comm"><span class="id" title="definition">GRing.comm</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>.<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="Pdiv.RingComRreg.ComRegDivisor.Rreg"><span class="id" title="variable">Rreg</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rreg"><span class="id" title="definition">GRing.rreg</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a>).<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.redivp_eq"><span class="id" title="lemma">redivp_eq</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">k</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">).1.1</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">c</span> := <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
</div>

<div class="doc">
 this is a bad name  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.rdivp_eq"><span class="id" title="lemma">rdivp_eq</span></a> <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>.<br/>

<br/>
</div>

<div class="doc">
 section variables impose an inconvenient order on parameters  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.eq_rdvdp"><span class="id" title="lemma">eq_rdvdp</span></a> <span class="id" title="var">k</span> <span class="id" title="var">q1</span> <span class="id" title="var">p</span>:<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">CoInductive</span> <a name="Pdiv.RingComRreg.rdvdp_spec"><span class="id" title="inductive">rdvdp_spec</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#bool"><span class="id" title="inductive">bool</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span> :=<br/>
&nbsp;&nbsp;| <a name="Pdiv.RingComRreg.Rdvdp"><span class="id" title="constructor">Rdvdp</span></a> <span class="id" title="var">k</span> <span class="id" title="var">q1</span> &amp; <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#rdvdp_spec"><span class="id" title="inductive">rdvdp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#true"><span class="id" title="constructor">true</span></a><br/>
&nbsp;&nbsp;| <a name="Pdiv.RingComRreg.RdvdpN"><span class="id" title="constructor">RdvdpN</span></a> &amp; <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 : <a class="idref" href="mathcomp.algebra.polydiv.html#rdvdp_spec"><span class="id" title="inductive">rdvdp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#false"><span class="id" title="constructor">false</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Is that version useable ?  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.rdvdp_eqP"><span class="id" title="lemma">rdvdp_eqP</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.rdvdp_spec"><span class="id" title="inductive">rdvdp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.rdvdp_mull"><span class="id" title="lemma">rdvdp_mull</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.rmodp_mull"><span class="id" title="lemma">rmodp_mull</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.rmodpp"><span class="id" title="lemma">rmodpp</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.rdivpp"><span class="id" title="lemma">rdivpp</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.rdvdpp"><span class="id" title="lemma">rdvdpp</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingComRreg.rdivpK"><span class="id" title="lemma">rdivpK</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.ComRegDivisor"><span class="id" title="section">ComRegDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg"><span class="id" title="module">RingComRreg</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.RingMonic"><span class="id" title="module">RingMonic</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">CommonRing</span>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">RingComRreg</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.RingMonic.MonicDivisor"><span class="id" title="section">MonicDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.RingMonic.MonicDivisor.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="Pdiv.RingMonic.MonicDivisor.mond"><span class="id" title="variable">mond</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.redivp_eq"><span class="id" title="lemma">redivp_eq</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :  <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">k</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">).1.1</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.redivp"><span class="id" title="definition">redivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdivp_eq"><span class="id" title="lemma">rdivp_eq</span></a> <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdivpp"><span class="id" title="lemma">rdivpp</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdivp_addl_mul_small"><span class="id" title="lemma">rdivp_addl_mul_small</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdivp_addl_mul"><span class="id" title="lemma">rdivp_addl_mul</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdivp_addl"><span class="id" title="lemma">rdivp_addl</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdivp_addr"><span class="id" title="lemma">rdivp_addr</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdivp_mull"><span class="id" title="lemma">rdivp_mull</span></a> <span class="id" title="var">p</span>  : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rmodp_mull"><span class="id" title="lemma">rmodp_mull</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rmodpp"><span class="id" title="lemma">rmodpp</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rmodp_addl_mul_small"><span class="id" title="lemma">rmodp_addl_mul_small</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rmodp_add"><span class="id" title="lemma">rmodp_add</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rmodp_mulmr"><span class="id" title="lemma">rmodp_mulmr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rmodp"><span class="id" title="definition">rmodp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdvdpp"><span class="id" title="lemma">rdvdpp</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
</div>

<div class="doc">
 section variables impose an inconvenient order on parameters  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.eq_rdvdp"><span class="id" title="lemma">eq_rdvdp</span></a> <span class="id" title="var">q1</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdvdp_mull"><span class="id" title="lemma">rdvdp_mull</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdvdpP"><span class="id" title="lemma">rdvdpP</span></a> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">qq</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.RingMonic.rdivpK"><span class="id" title="lemma">rdivpK</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic.MonicDivisor"><span class="id" title="section">MonicDivisor</span></a>.<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingMonic"><span class="id" title="module">RingMonic</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.Ring"><span class="id" title="module">Ring</span></a>.<br/>

<br/>
<span class="id" title="keyword">Include</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonRing"><span class="id" title="module">CommonRing</span></a>.<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">RingMonic</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.Ring.ExtraMonicDivisor"><span class="id" title="section">ExtraMonicDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.Ring.ExtraMonicDivisor.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.ExtraMonicDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Ring.rdivp1"><span class="id" title="lemma">rdivp1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Ring.rdvdp_XsubCl"><span class="id" title="lemma">rdvdp_XsubCl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdvdp"><span class="id" title="definition">rdvdp</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Ring.polyXsubCP"><span class="id" title="lemma">polyXsubCP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdvdp"><span class="id" title="definition">rdvdp</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Ring.root_factor_theorem"><span class="id" title="lemma">root_factor_theorem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdvdp"><span class="id" title="definition">rdvdp</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.ExtraMonicDivisor"><span class="id" title="section">ExtraMonicDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring"><span class="id" title="module">Ring</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.ComRing"><span class="id" title="module">ComRing</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring</span>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">RingComRreg</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.ComRing.CommutativeRingPseudoDivision"><span class="id" title="section">CommutativeRingPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.ComRing.CommutativeRingPseudoDivision.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.comRingType"><span class="id" title="abbreviation">comRingType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ComRing.CommutativeRingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">CoInductive</span> <a name="Pdiv.ComRing.redivp_spec"><span class="id" title="inductive">redivp_spec</span></a> (<span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ComRing.CommutativeRingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ComRing.CommutativeRingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ComRing.CommutativeRingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span> :=<br/>
&nbsp;&nbsp;<a name="Pdiv.ComRing.EdivnSpec"><span class="id" title="constructor">EdivnSpec</span></a> <span class="id" title="var">k</span> (<span class="id" title="var">q</span> <span class="id" title="var">r</span>: <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ComRing.CommutativeRingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) <span class="id" title="keyword">of</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> &amp;<br/>
&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) : <a class="idref" href="mathcomp.algebra.polydiv.html#redivp_spec"><span class="id" title="inductive">redivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.ComRing.redivpP"><span class="id" title="lemma">redivpP</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ComRing.redivp_spec"><span class="id" title="inductive">redivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.ComRing.rdivp_eq"><span class="id" title="lemma">rdivp_eq</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.ComRing.rdvdp_eqP"><span class="id" title="lemma">rdvdp_eqP</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.RingComRreg.rdvdp_spec"><span class="id" title="inductive">rdvdp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.ComRing.rdvdp_eq"><span class="id" title="lemma">rdvdp_eq</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ComRing.CommutativeRingPseudoDivision"><span class="id" title="section">CommutativeRingPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ComRing"><span class="id" title="module">ComRing</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.UnitRing"><span class="id" title="module">UnitRing</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.UnitRing.UnitRingPseudoDivision"><span class="id" title="section">UnitRingPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.UnitRing.UnitRingPseudoDivision.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Exports.unitRingType"><span class="id" title="abbreviation">unitRingType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.UnitRing.UnitRingPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.UnitRing.uniq_roots_rdvdp"><span class="id" title="lemma">uniq_roots_rdvdp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">rs</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#rs"><span class="id" title="variable">rs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#uniq_roots"><span class="id" title="definition">uniq_roots</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rs"><span class="id" title="variable">rs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdvdp"><span class="id" title="definition">rdvdp</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rs"><span class="id" title="variable">rs</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#z"><span class="id" title="variable">z</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.UnitRing.UnitRingPseudoDivision"><span class="id" title="section">UnitRingPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.UnitRing"><span class="id" title="module">UnitRing</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.IdomainDefs"><span class="id" title="module">IdomainDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.IdomainDefs.IDomainPseudoDivisionDefs"><span class="id" title="section">IDomainPseudoDivisionDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.IdomainDefs.IDomainPseudoDivisionDefs.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.IDomainPseudoDivisionDefs.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.IdomainDefs.edivp_expanded_def"><span class="id" title="definition">edivp_expanded_def</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><span class="id" title="var">k</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <span class="id" title="var">d</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <span class="id" title="var">r</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <span class="id" title="keyword">as</span> <span class="id" title="var">edvpq</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)^-</span></a><span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <span class="id" title="var">d</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)^-</span></a><span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <span class="id" title="var">r</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <span class="id" title="var">edvpq</span>.<br/>
<span class="id" title="keyword">Fact</span> <a name="Pdiv.IdomainDefs.edivp_key"><span class="id" title="lemma">edivp_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>.  <br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp_key"><span class="id" title="lemma">edivp_key</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp_expanded_def"><span class="id" title="definition">edivp_expanded_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">edivp_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.IdomainDefs.divp"><span class="id" title="definition">divp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">).1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">).2</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.IdomainDefs.modp"><span class="id" title="definition">modp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">).2</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">((</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">).1).1</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.IdomainDefs.dvdp"><span class="id" title="definition">dvdp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.modp"><span class="id" title="definition">modp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0.<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.IdomainDefs.eqp"><span class="id" title="definition">eqp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :=  <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.dvdp"><span class="id" title="definition">dvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.dvdp"><span class="id" title="definition">dvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.IDomainPseudoDivisionDefs"><span class="id" title="section">IDomainPseudoDivisionDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">&quot;</span></a>m %/ d" := (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.divp"><span class="id" title="definition">divp</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span>) : <span class="id" title="var">ring_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">&quot;</span></a>m %% d" := (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.modp"><span class="id" title="definition">modp</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span>) : <span class="id" title="var">ring_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">&quot;</span></a>p %| q" := (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.dvdp"><span class="id" title="definition">dvdp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span>) : <span class="id" title="var">ring_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">&quot;</span></a>p %= q" := (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.eqp"><span class="id" title="definition">eqp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span>) : <span class="id" title="var">ring_scope</span>.<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs"><span class="id" title="module">IdomainDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.WeakIdomain"><span class="id" title="module">WeakIdomain</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring</span> <span class="id" title="var">ComRing</span> <span class="id" title="var">UnitRing</span> <span class="id" title="var">IdomainDefs</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision"><span class="id" title="section">WeakTheoryForIDomainPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.edivp_def"><span class="id" title="lemma">edivp_def</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.divp"><span class="id" title="definition">divp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.modp"><span class="id" title="definition">modp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.edivp_redivp"><span class="id" title="lemma">edivp_redivp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#false"><span class="id" title="constructor">false</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.divpE"><span class="id" title="lemma">divpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)^-(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.modpE"><span class="id" title="lemma">modpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)^-(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.scalpE"><span class="id" title="lemma">scalpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> 0%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.dvdpE"><span class="id" title="lemma">dvdpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.lc_expn_scalp_neq0"><span class="id" title="lemma">lc_expn_scalp_neq0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">lc_expn_scalp_neq0</span>.<br/>

<br/>
<span class="id" title="keyword">CoInductive</span> <a name="Pdiv.WeakIdomain.edivp_spec"><span class="id" title="inductive">edivp_spec</span></a> (<span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#bool"><span class="id" title="inductive">bool</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span> :=<br/>
|<a name="Pdiv.WeakIdomain.Redivp_spec"><span class="id" title="constructor">Redivp_spec</span></a> <span class="id" title="var">k</span> (<span class="id" title="var">q</span> <span class="id" title="var">r</span>: <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) <span class="id" title="keyword">of</span><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> &amp; <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">notin</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> &amp;<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) : <a class="idref" href="mathcomp.algebra.polydiv.html#edivp_spec"><span class="id" title="inductive">edivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#false"><span class="id" title="constructor">false</span></a><br/>
|<a name="Pdiv.WeakIdomain.Fedivp_spec"><span class="id" title="constructor">Fedivp_spec</span></a> (<span class="id" title="var">q</span> <span class="id" title="var">r</span>: <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> &amp; (<a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>) &amp;<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) : <a class="idref" href="mathcomp.algebra.polydiv.html#edivp_spec"><span class="id" title="inductive">edivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#true"><span class="id" title="constructor">true</span></a>.<br/>

<br/>
</div>

<div class="doc">
 There are several ways to state this fact. The most appropriate statement
 might be polished in light of usage.  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.edivpP"><span class="id" title="lemma">edivpP</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain.edivp_spec"><span class="id" title="inductive">edivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) (<a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.edivp_eq"><span class="id" title="lemma">edivp_eq</span></a> <span class="id" title="var">d</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.divp_eq"><span class="id" title="lemma">divp_eq</span></a>  <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.dvdp_eq"><span class="id" title="lemma">dvdp_eq</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.divpK"><span class="id" title="lemma">divpK</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.divpKC"><span class="id" title="lemma">divpKC</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.dvdpP"><span class="id" title="lemma">dvdpP</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">cqq</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#cqq"><span class="id" title="variable">cqq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#cqq"><span class="id" title="variable">cqq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#cqq"><span class="id" title="variable">cqq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.mulpK"><span class="id" title="lemma">mulpK</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.mulKp"><span class="id" title="lemma">mulKp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.WeakIdomain.divpp"><span class="id" title="lemma">divpp</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain.WeakTheoryForIDomainPseudoDivision"><span class="id" title="section">WeakTheoryForIDomainPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">lc_expn_scalp_neq0</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain"><span class="id" title="module">WeakIdomain</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.CommonIdomain"><span class="id" title="module">CommonIdomain</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring</span> <span class="id" title="var">ComRing</span> <span class="id" title="var">UnitRing</span> <span class="id" title="var">IdomainDefs</span> <span class="id" title="var">WeakIdomain</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.CommonIdomain.IDomainPseudoDivision"><span class="id" title="section">IDomainPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.scalp0"><span class="id" title="lemma">scalp0</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.divp_small"><span class="id" title="lemma">divp_small</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.leq_divp"><span class="id" title="lemma">leq_divp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.div0p"><span class="id" title="lemma">div0p</span></a> <span class="id" title="var">p</span> : 0 <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.divp0"><span class="id" title="lemma">divp0</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.divp1"><span class="id" title="lemma">divp1</span></a> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp0"><span class="id" title="lemma">modp0</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.mod0p"><span class="id" title="lemma">mod0p</span></a> <span class="id" title="var">p</span> : 0 <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp1"><span class="id" title="lemma">modp1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">divp0</span> <span class="id" title="var">divp1</span> <span class="id" title="var">mod0p</span> <span class="id" title="var">modp0</span> <span class="id" title="var">modp1</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp_small"><span class="id" title="lemma">modp_small</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modpC"><span class="id" title="lemma">modpC</span></a> <span class="id" title="var">p</span> <span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp_mull"><span class="id" title="lemma">modp_mull</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp_mulr"><span class="id" title="lemma">modp_mulr</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modpp"><span class="id" title="lemma">modpp</span></a> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.ltn_modp"><span class="id" title="lemma">ltn_modp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.ltn_divpl"><span class="id" title="lemma">ltn_divpl</span></a> <span class="id" title="var">d</span> <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.leq_divpr"><span class="id" title="lemma">leq_divpr</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.divpN0"><span class="id" title="lemma">divpN0</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.size_divp"><span class="id" title="lemma">size_divp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">).-1</span></a>)%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.ltn_modpN0"><span class="id" title="lemma">ltn_modpN0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp_mod"><span class="id" title="lemma">modp_mod</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.leq_modp"><span class="id" title="lemma">leq_modp</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>)  <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp0"><span class="id" title="lemma">dvdp0</span></a> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">dvdp0</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvd0p"><span class="id" title="lemma">dvd0p</span></a> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a>0 <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvd0pP"><span class="id" title="lemma">dvd0pP</span></a> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0) (0 <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdpN0"><span class="id" title="lemma">dvdpN0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp1"><span class="id" title="lemma">dvdp1</span></a> <span class="id" title="var">d</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvd1p"><span class="id" title="lemma">dvd1p</span></a> <span class="id" title="var">m</span> : 1 <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gtNdvdp"><span class="id" title="lemma">gtNdvdp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#false"><span class="id" title="constructor">false</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp_eq0P"><span class="id" title="lemma">modp_eq0P</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0) (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp_eq0"><span class="id" title="lemma">modp_eq0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.leq_divpl"><span class="id" title="lemma">leq_divpl</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_leq"><span class="id" title="lemma">dvdp_leq</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eq_dvdp"><span class="id" title="lemma">eq_dvdp</span></a> <span class="id" title="var">c</span> <span class="id" title="var">quo</span> <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#quo"><span class="id" title="variable">quo</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdpp"><span class="id" title="lemma">dvdpp</span></a> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">dvdpp</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.divp_dvd"><span class="id" title="lemma">divp_dvd</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mull"><span class="id" title="lemma">dvdp_mull</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mulr"><span class="id" title="lemma">dvdp_mulr</span></a> <span class="id" title="var">n</span> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">dvdp_mull</span> <span class="id" title="var">dvdp_mulr</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mul"><span class="id" title="lemma">dvdp_mul</span></a> <span class="id" title="var">d1</span> <span class="id" title="var">d2</span> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d1"><span class="id" title="variable">d1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d2"><span class="id" title="variable">d2</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d1"><span class="id" title="variable">d1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d2"><span class="id" title="variable">d2</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m2"><span class="id" title="variable">m2</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_addr"><span class="id" title="lemma">dvdp_addr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_addl"><span class="id" title="lemma">dvdp_addl</span></a> <span class="id" title="var">n</span> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_add"><span class="id" title="lemma">dvdp_add</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_add_eq"><span class="id" title="lemma">dvdp_add_eq</span></a>  <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_subr"><span class="id" title="lemma">dvdp_subr</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_subl"><span class="id" title="lemma">dvdp_subl</span></a>  <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_sub"><span class="id" title="lemma">dvdp_sub</span></a>  <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mod"><span class="id" title="lemma">dvdp_mod</span></a> <span class="id" title="var">d</span> <span class="id" title="var">n</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_trans"><span class="id" title="lemma">dvdp_trans</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#transitive"><span class="id" title="definition">transitive</span></a> (@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.dvdp"><span class="id" title="definition">dvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mulIl"><span class="id" title="lemma">dvdp_mulIl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mulIr"><span class="id" title="lemma">dvdp_mulIr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mul2r"><span class="id" title="lemma">dvdp_mul2r</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mul2l"><span class="id" title="lemma">dvdp_mul2l</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.ltn_divpr"><span class="id" title="lemma">ltn_divpr</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_exp"><span class="id" title="lemma">dvdp_exp</span></a> <span class="id" title="var">d</span> <span class="id" title="var">k</span> <span class="id" title="var">p</span> : 0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_exp2l"><span class="id" title="lemma">dvdp_exp2l</span></a> <span class="id" title="var">d</span> <span class="id" title="var">k</span> <span class="id" title="var">l</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#l"><span class="id" title="variable">l</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#l"><span class="id" title="variable">l</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_Pexp2l"><span class="id" title="lemma">dvdp_Pexp2l</span></a>  <span class="id" title="var">d</span> <span class="id" title="var">k</span> <span class="id" title="var">l</span> : 1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#l"><span class="id" title="variable">l</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#l"><span class="id" title="variable">l</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_exp2r"><span class="id" title="lemma">dvdp_exp2r</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_exp_sub"><span class="id" title="lemma">dvdp_exp_sub</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">k</span> <span class="id" title="var">l</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#l"><span class="id" title="variable">l</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#l"><span class="id" title="variable">l</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_XsubCl"><span class="id" title="lemma">dvdp_XsubCl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.polyXsubCP"><span class="id" title="lemma">polyXsubCP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0) (<a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_div_XsubC"><span class="id" title="lemma">eqp_div_XsubC</span></a> <span class="id" title="var">p</span> <span class="id" title="var">c</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.root_factor_theorem"><span class="id" title="lemma">root_factor_theorem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.uniq_roots_dvdp"><span class="id" title="lemma">uniq_roots_dvdp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">rs</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#rs"><span class="id" title="variable">rs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#uniq_roots"><span class="id" title="definition">uniq_roots</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rs"><span class="id" title="variable">rs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rs"><span class="id" title="variable">rs</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#z"><span class="id" title="variable">z</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.root_bigmul"><span class="id" title="lemma">root_bigmul</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>),<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a><a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">*%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">R</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a>1<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">(</span></a><span class="id" title="var">p</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#ps"><span class="id" title="variable">ps</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">p</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#ps"><span class="id" title="variable">ps</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqpP"><span class="id" title="lemma">eqpP</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">c12</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c12"><span class="id" title="variable">c12</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c12"><span class="id" title="variable">c12</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c12"><span class="id" title="variable">c12</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c12"><span class="id" title="variable">c12</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_eq"><span class="id" title="lemma">eqp_eq</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqpxx"><span class="id" title="lemma">eqpxx</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflexive"><span class="id" title="definition">reflexive</span></a> (@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.eqp"><span class="id" title="definition">eqp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">eqpxx</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_sym"><span class="id" title="lemma">eqp_sym</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#symmetric"><span class="id" title="definition">symmetric</span></a> (@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.eqp"><span class="id" title="definition">eqp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_trans"><span class="id" title="lemma">eqp_trans</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#transitive"><span class="id" title="definition">transitive</span></a> (@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.eqp"><span class="id" title="definition">eqp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_ltrans"><span class="id" title="lemma">eqp_ltrans</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#left_transitive"><span class="id" title="definition">left_transitive</span></a> (@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.eqp"><span class="id" title="definition">eqp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_rtrans"><span class="id" title="lemma">eqp_rtrans</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#right_transitive"><span class="id" title="definition">right_transitive</span></a> (@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.eqp"><span class="id" title="definition">eqp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp0"><span class="id" title="lemma">eqp0</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span>, <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp01"><span class="id" title="lemma">eqp01</span></a> : 0 <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a>1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#false"><span class="id" title="constructor">false</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_scale"><span class="id" title="lemma">eqp_scale</span></a> <span class="id" title="var">p</span> <span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_size"><span class="id" title="lemma">eqp_size</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.size_poly_eq1"><span class="id" title="lemma">size_poly_eq1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.polyXsubC_eqp1"><span class="id" title="lemma">polyXsubC_eqp1</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#false"><span class="id" title="constructor">false</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_eqp1"><span class="id" title="lemma">dvdp_eqp1</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_dvdr"><span class="id" title="lemma">eqp_dvdr</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> <span class="id" title="var">d</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_dvdl"><span class="id" title="lemma">eqp_dvdl</span></a> <span class="id" title="var">d2</span> <span class="id" title="var">d1</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d1"><span class="id" title="variable">d1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d2"><span class="id" title="variable">d2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d1"><span class="id" title="variable">d1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d2"><span class="id" title="variable">d2</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_scaler"><span class="id" title="lemma">dvdp_scaler</span></a> <span class="id" title="var">c</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_scalel"><span class="id" title="lemma">dvdp_scalel</span></a> <span class="id" title="var">c</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_opp"><span class="id" title="lemma">dvdp_opp</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_mul2r"><span class="id" title="lemma">eqp_mul2r</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_mul2l"><span class="id" title="lemma">eqp_mul2l</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_mull"><span class="id" title="lemma">eqp_mull</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_mulr"><span class="id" title="lemma">eqp_mulr</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> <span class="id" title="var">r</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_exp"><span class="id" title="lemma">eqp_exp</span></a>  <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.polyC_eqp1"><span class="id" title="lemma">polyC_eqp1</span></a> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdUp"><span class="id" title="lemma">dvdUp</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_size_eqp"><span class="id" title="lemma">dvdp_size_eqp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_root"><span class="id" title="lemma">eqp_root</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_rmod_mod"><span class="id" title="lemma">eqp_rmod_mod</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.modp"><span class="id" title="definition">modp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_rdiv_div"><span class="id" title="lemma">eqp_rdiv_div</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.divp"><span class="id" title="definition">divp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvd_eqp_divl"><span class="id" title="lemma">dvd_eqp_divl</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> (<span class="id" title="var">dvd_dp</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) (<span class="id" title="var">eq_pq</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonIdomain.gcdp_rec"><span class="id" title="definition">gcdp_rec</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><span class="id" title="var">p1</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <span class="id" title="var">q1</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <span class="id" title="var">p1</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <span class="id" title="var">q1</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="keyword">fix</span> <span class="id" title="var">loop</span> (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">pp</span> <span class="id" title="var">qq</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>} :=<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">rr</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.modp"><span class="id" title="definition">modp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#pp"><span class="id" title="variable">pp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rr"><span class="id" title="variable">rr</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.algebra.polydiv.html#loop"><span class="id" title="variable">loop</span></a> <span class="id" title="var">n1</span> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#rr"><span class="id" title="variable">rr</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.algebra.polydiv.html#rr"><span class="id" title="variable">rr</span></a> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#loop"><span class="id" title="variable">loop</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <span class="id" title="var">p1</span>) <span class="id" title="var">p1</span> <span class="id" title="var">q1</span>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#nosimpl"><span class="id" title="abbreviation">nosimpl</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp_rec"><span class="id" title="definition">gcdp_rec</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcd0p"><span class="id" title="lemma">gcd0p</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp0"><span class="id" title="lemma">gcdp0</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_id"><span class="id" title="definition">right_id</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdpE"><span class="id" title="lemma">gcdpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.modp"><span class="id" title="definition">modp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.modp"><span class="id" title="definition">modp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.size_gcd1p"><span class="id" title="lemma">size_gcd1p</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> 1 <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.size_gcdp1"><span class="id" title="lemma">size_gcdp1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 1) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdpp"><span class="id" title="lemma">gcdpp</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#idempotent"><span class="id" title="definition">idempotent</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_gcdlr"><span class="id" title="lemma">dvdp_gcdlr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_gcdl"><span class="id" title="lemma">dvdp_gcdl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_gcdr"><span class="id" title="lemma">dvdp_gcdr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.leq_gcdpl"><span class="id" title="lemma">leq_gcdpl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.leq_gcdpr"><span class="id" title="lemma">leq_gcdpr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_gcd"><span class="id" title="lemma">dvdp_gcd</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdpC"><span class="id" title="lemma">gcdpC</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcd1p"><span class="id" title="lemma">gcd1p</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> 1 <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp1"><span class="id" title="lemma">gcdp1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 1 <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_addl_mul"><span class="id" title="lemma">gcdp_addl_mul</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_addl"><span class="id" title="lemma">gcdp_addl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_addr"><span class="id" title="lemma">gcdp_addr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_mull"><span class="id" title="lemma">gcdp_mull</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_mulr"><span class="id" title="lemma">gcdp_mulr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_scalel"><span class="id" title="lemma">gcdp_scalel</span></a> <span class="id" title="var">c</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_scaler"><span class="id" title="lemma">gcdp_scaler</span></a> <span class="id" title="var">c</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_gcd_idl"><span class="id" title="lemma">dvdp_gcd_idl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_gcd_idr"><span class="id" title="lemma">dvdp_gcd_idr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_exp"><span class="id" title="lemma">gcdp_exp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">k</span> <span class="id" title="var">l</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#l"><span class="id" title="variable">l</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#minn"><span class="id" title="definition">minn</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#l"><span class="id" title="variable">l</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_eq0"><span class="id" title="lemma">gcdp_eq0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_gcdr"><span class="id" title="lemma">eqp_gcdr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_gcdl"><span class="id" title="lemma">eqp_gcdl</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :  <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_gcd"><span class="id" title="lemma">eqp_gcd</span></a> <span class="id" title="var">p1</span> <span class="id" title="var">p2</span> <span class="id" title="var">q1</span> <span class="id" title="var">q2</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p2"><span class="id" title="variable">p2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q2"><span class="id" title="variable">q2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p2"><span class="id" title="variable">p2</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q2"><span class="id" title="variable">q2</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_rgcd_gcd"><span class="id" title="lemma">eqp_rgcd_gcd</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgcdp"><span class="id" title="definition">rgcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_modr"><span class="id" title="lemma">gcdp_modr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_modl"><span class="id" title="lemma">gcdp_modl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_def"><span class="id" title="lemma">gcdp_def</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">d'</span>, <a class="idref" href="mathcomp.algebra.polydiv.html#d'"><span class="id" title="variable">d'</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d'"><span class="id" title="variable">d'</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d'"><span class="id" title="variable">d'</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> := <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_size_gcd"><span class="id" title="lemma">coprimep_size_gcd</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_def"><span class="id" title="lemma">coprimep_def</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_scalel"><span class="id" title="lemma">coprimep_scalel</span></a> <span class="id" title="var">c</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_scaler"><span class="id" title="lemma">coprimep_scaler</span></a> <span class="id" title="var">c</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span>:<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimepp"><span class="id" title="lemma">coprimepp</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_eqp1"><span class="id" title="lemma">gcdp_eqp1</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_sym"><span class="id" title="lemma">coprimep_sym</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprime1p"><span class="id" title="lemma">coprime1p</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> 1 <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep1"><span class="id" title="lemma">coprimep1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 1.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep0"><span class="id" title="lemma">coprimep0</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprime0p"><span class="id" title="lemma">coprime0p</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> 0 <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
</div>

<div class="doc">
 This is different from coprimeP in div. shall we keep this?  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimepP"><span class="id" title="lemma">coprimepP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">d</span>, <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimepPn"><span class="id" title="lemma">coprimepPn</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">d</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">)</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_dvdl"><span class="id" title="lemma">coprimep_dvdl</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_dvdr"><span class="id" title="lemma">coprimep_dvdr</span></a>  <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_modl"><span class="id" title="lemma">coprimep_modl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_modr"><span class="id" title="lemma">coprimep_modr</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.rcoprimep_coprimep"><span class="id" title="lemma">rcoprimep_coprimep</span></a>  <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rcoprimep"><span class="id" title="definition">rcoprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_coprimepr"><span class="id" title="lemma">eqp_coprimepr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_coprimepl"><span class="id" title="lemma">eqp_coprimepl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
</div>

<div class="doc">
 This should be implemented with an extended remainder sequence  
</div>
<div class="code">
<span class="id" title="keyword">Fixpoint</span> <a name="Pdiv.CommonIdomain.egcdp_rec"><span class="id" title="definition">egcdp_rec</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">k</span> {<span class="id" title="keyword">struct</span> <span class="id" title="var">k</span>} : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">k'</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <span class="id" title="var">v</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.polydiv.html#egcdp_rec"><span class="id" title="definition">egcdp_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <span class="id" title="var">k'</span> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <span class="id" title="var">v</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><span class="id" title="var">u</span> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <span class="id" title="var">v</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">))</span></a><br/>
&nbsp;&nbsp;<span class="id" title="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonIdomain.egcdp"><span class="id" title="definition">egcdp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :=<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.egcdp_rec"><span class="id" title="definition">egcdp_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <span class="id" title="keyword">let</span> <span class="id" title="var">e</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.egcdp_rec"><span class="id" title="definition">egcdp_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <span class="id" title="tactic">in</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
</div>

<div class="doc">
 No provable egcd0p  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.egcdp0"><span class="id" title="lemma">egcdp0</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.egcdp"><span class="id" title="definition">egcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.egcdp_recP"><span class="id" title="lemma">egcdp_recP</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">k</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">e</span> := (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.egcdp_rec"><span class="id" title="definition">egcdp_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>) <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.egcdpP"><span class="id" title="lemma">egcdpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a>  <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">∀</span> (<span class="id" title="var">e</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.egcdp"><span class="id" title="definition">egcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>),<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.egcdpE"><span class="id" title="lemma">egcdpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> (<span class="id" title="var">e</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.egcdp"><span class="id" title="definition">egcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.Bezoutp"><span class="id" title="lemma">Bezoutp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.Bezout_coprimepP"><span class="id" title="lemma">Bezout_coprimepP</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>,<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_root"><span class="id" title="lemma">coprimep_root</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.Gauss_dvdpl"><span class="id" title="lemma">Gauss_dvdpl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">d</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.Gauss_dvdpr"><span class="id" title="lemma">Gauss_dvdpr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">d</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
</div>

<div class="doc">
 This could be simplified with the introduction of lcmp  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.Gauss_dvdp"><span class="id" title="lemma">Gauss_dvdp</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.Gauss_gcdpr"><span class="id" title="lemma">Gauss_gcdpr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.Gauss_gcdpl"><span class="id" title="lemma">Gauss_gcdpl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_mulr"><span class="id" title="lemma">coprimep_mulr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_mull"><span class="id" title="lemma">coprimep_mull</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span>: <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp_coprime"><span class="id" title="lemma">modp_coprime</span></a> <span class="id" title="var">k</span> <span class="id" title="var">u</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_pexpl"><span class="id" title="lemma">coprimep_pexpl</span></a> <span class="id" title="var">k</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : 0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_pexpr"><span class="id" title="lemma">coprimep_pexpr</span></a> <span class="id" title="var">k</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : 0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_expl"><span class="id" title="lemma">coprimep_expl</span></a> <span class="id" title="var">k</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_expr"><span class="id" title="lemma">coprimep_expr</span></a> <span class="id" title="var">k</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_mul2l"><span class="id" title="lemma">gcdp_mul2l</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_mul2r"><span class="id" title="lemma">gcdp_mul2r</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.mulp_gcdr"><span class="id" title="lemma">mulp_gcdr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.mulp_gcdl"><span class="id" title="lemma">mulp_gcdl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_div_gcd"><span class="id" title="lemma">coprimep_div_gcd</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">||</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.divp_eq0"><span class="id" title="lemma">divp_eq0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#61dc88e70df6fc30a5b49c217ac7b79d"><span class="id" title="notation">[||</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#61dc88e70df6fc30a5b49c217ac7b79d"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a>0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#61dc88e70df6fc30a5b49c217ac7b79d"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#61dc88e70df6fc30a5b49c217ac7b79d"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_div_eq0"><span class="id" title="lemma">dvdp_div_eq0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.Bezout_coprimepPn"><span class="id" title="lemma">Bezout_coprimepPn</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">uv</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">,</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a>0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#432e31800fc09abd260feb634dbbd1af"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#uv"><span class="id" title="variable">uv</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#432e31800fc09abd260feb634dbbd1af"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a>0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#432e31800fc09abd260feb634dbbd1af"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#uv"><span class="id" title="variable">uv</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#432e31800fc09abd260feb634dbbd1af"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">&amp;</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#uv"><span class="id" title="variable">uv</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#uv"><span class="id" title="variable">uv</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">)</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_pexp2r"><span class="id" title="lemma">dvdp_pexp2r</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.root_gcd"><span class="id" title="lemma">root_gcd</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.root_biggcd"><span class="id" title="lemma">root_biggcd</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>),<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a>0<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">(</span></a><span class="id" title="var">p</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#ps"><span class="id" title="variable">ps</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">p</span> ⇒ <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#ps"><span class="id" title="variable">ps</span></a>.<br/>

<br/>
</div>

<div class="doc">
 "gdcop Q P" is the Greatest Divisor of P which is coprime to Q 
 if P null, we pose that gdcop returns 1 if Q null, 0 otherwise 
</div>
<div class="code">
<span class="id" title="keyword">Fixpoint</span> <a name="Pdiv.CommonIdomain.gdcop_rec"><span class="id" title="definition">gdcop_rec</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> <span class="id" title="var">k</span> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">m</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#gdcop_rec"><span class="id" title="definition">gdcop_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.divp"><span class="id" title="definition">divp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>)) <span class="id" title="var">m</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonIdomain.gdcop"><span class="id" title="definition">gdcop</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop_rec"><span class="id" title="definition">gdcop_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">CoInductive</span> <a name="Pdiv.CommonIdomain.gdcop_spec"><span class="id" title="inductive">gdcop_spec</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span> :=<br/>
&nbsp;&nbsp;<a name="Pdiv.CommonIdomain.GdcopSpec"><span class="id" title="constructor">GdcopSpec</span></a> <span class="id" title="var">r</span> <span class="id" title="keyword">of</span> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.dvdp"><span class="id" title="definition">dvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) &amp; (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">||</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">)</span></a>)<br/>
&nbsp;&nbsp;&amp; (<span class="id" title="keyword">∀</span> <span class="id" title="var">d</span>,  <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.dvdp"><span class="id" title="definition">dvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.dvdp"><span class="id" title="definition">dvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>)<br/>
&nbsp;&nbsp;: <a class="idref" href="mathcomp.algebra.polydiv.html#gdcop_spec"><span class="id" title="inductive">gdcop_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gdcop0"><span class="id" title="lemma">gdcop0</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gdcop_recP"><span class="id" title="lemma">gdcop_recP</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">q</span> <span class="id" title="var">p</span> <span class="id" title="var">k</span>,<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop_spec"><span class="id" title="inductive">gdcop_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop_rec"><span class="id" title="definition">gdcop_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#k"><span class="id" title="variable">k</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gdcopP"><span class="id" title="lemma">gdcopP</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop_spec"><span class="id" title="inductive">gdcop_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_gdco"><span class="id" title="lemma">coprimep_gdco</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0)%<span class="id" title="var">B</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.size2_dvdp_gdco"><span class="id" title="lemma">size2_dvdp_gdco</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 2%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_gdco"><span class="id" title="lemma">dvdp_gdco</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.root_gdco"><span class="id" title="lemma">root_gdco</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~(</span></a><a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_comp_poly"><span class="id" title="lemma">dvdp_comp_poly</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">Po</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">Po</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.gcdp_comp_poly"><span class="id" title="lemma">gcdp_comp_poly</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">Po</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a>  <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.gcdp"><span class="id" title="definition">gcdp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">Po</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">Po</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_comp_poly"><span class="id" title="lemma">coprimep_comp_poly</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">Po</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#cad3d28b9cdd7490720002e244568365"><span class="id" title="notation">Po</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_addl_mul"><span class="id" title="lemma">coprimep_addl_mul</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonIdomain.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> <span class="id" title="var">p</span> :=<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 1%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0fffdc558ce71ab561d36c8a8094dbe5"><span class="id" title="notation">:</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0fffdc558ce71ab561d36c8a8094dbe5"><span class="id" title="notation">Prop</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.irredp_neq0"><span class="id" title="lemma">irredp_neq0</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Definition</span> <a name="Pdiv.CommonIdomain.apply_irredp"><span class="id" title="definition">apply_irredp</span></a> <span class="id" title="var">p</span> (<span class="id" title="var">irr_p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) := <a class="idref" href="mathcomp.algebra.polydiv.html#irr_p"><span class="id" title="variable">irr_p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a>.<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.apply_irredp"><span class="id" title="definition">apply_irredp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.apply_irredp"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.apply_irredp"><span class="id" title="definition">irreducible_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.apply_irredp"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.apply_irredp"><span class="id" title="definition">Funclass</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.modp_XsubC"><span class="id" title="lemma">modp_XsubC</span></a> <span class="id" title="var">p</span> <span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimep_XsubC"><span class="id" title="lemma">coprimep_XsubC</span></a> <span class="id" title="var">p</span> <span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.coprimepX"><span class="id" title="lemma">coprimepX</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a>  <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.eqp_monic"><span class="id" title="lemma">eqp_monic</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&amp;,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>, <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_mul_XsubC"><span class="id" title="lemma">dvdp_mul_XsubC</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">c</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.dvdp_prod_XsubC"><span class="id" title="lemma">dvdp_prod_XsubC</span></a> (<span class="id" title="var">I</span> : <span class="id" title="keyword">Type</span>) (<span class="id" title="var">r</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>) <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">m</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#mask"><span class="id" title="definition">mask</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.irredp_XsubC"><span class="id" title="lemma">irredp_XsubC</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision.R"><span class="id" title="variable">R</span></a>) : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.CommonIdomain.irredp_XsubCP"><span class="id" title="lemma">irredp_XsubCP</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5bf2050e90b21ebc82dc5463d1ba338e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5bf2050e90b21ebc82dc5463d1ba338e"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5bf2050e90b21ebc82dc5463d1ba338e"><span class="id" title="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5bf2050e90b21ebc82dc5463d1ba338e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5bf2050e90b21ebc82dc5463d1ba338e"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain.IDomainPseudoDivision"><span class="id" title="section">IDomainPseudoDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">eqpxx</span> <span class="id" title="var">divp0</span> <span class="id" title="var">divp1</span> <span class="id" title="var">mod0p</span> <span class="id" title="var">modp0</span> <span class="id" title="var">modp1</span> <span class="id" title="var">dvdp_mull</span> <span class="id" title="var">dvdp_mulr</span> <span class="id" title="var">dvdpp</span>.<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">dvdp0</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain"><span class="id" title="module">CommonIdomain</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.Idomain"><span class="id" title="module">Idomain</span></a>.<br/>

<br/>
<span class="id" title="keyword">Include</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs"><span class="id" title="module">IdomainDefs</span></a>.<br/>
<span class="id" title="keyword">Export</span> <span class="id" title="var">IdomainDefs</span>.<br/>
<span class="id" title="keyword">Include</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.WeakIdomain"><span class="id" title="module">WeakIdomain</span></a>.<br/>
<span class="id" title="keyword">Include</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain"><span class="id" title="module">CommonIdomain</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Idomain"><span class="id" title="module">Idomain</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.IdomainMonic"><span class="id" title="module">IdomainMonic</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring</span> <span class="id" title="var">ComRing</span> <span class="id" title="var">UnitRing</span> <span class="id" title="var">IdomainDefs</span> <span class="id" title="var">Idomain</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.IdomainMonic.MonicDivisor"><span class="id" title="section">MonicDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.IdomainMonic.MonicDivisor.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>.<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="Pdiv.IdomainMonic.MonicDivisor.monq"><span class="id" title="variable">monq</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a>.<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">p</span> <span class="id" title="var">d</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.divpE"><span class="id" title="lemma">divpE</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.modpE"><span class="id" title="lemma">modpE</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.scalpE"><span class="id" title="lemma">scalpE</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.divp_eq"><span class="id" title="lemma">divp_eq</span></a>  <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.divpp"><span class="id" title="lemma">divpp</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.dvdp_eq"><span class="id" title="lemma">dvdp_eq</span></a> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.dvdpP"><span class="id" title="lemma">dvdpP</span></a> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">qq</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.mulpK"><span class="id" title="lemma">mulpK</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainMonic.mulKp"><span class="id" title="lemma">mulKp</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor.q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic.MonicDivisor"><span class="id" title="section">MonicDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainMonic"><span class="id" title="module">IdomainMonic</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.IdomainUnit"><span class="id" title="module">IdomainUnit</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring</span> <span class="id" title="var">ComRing</span> <span class="id" title="var">UnitRing</span> <span class="id" title="var">IdomainDefs</span> <span class="id" title="var">Idomain</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.IdomainUnit.UnitDivisor"><span class="id" title="section">UnitDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.IdomainUnit.UnitDivisor.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>.<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="Pdiv.IdomainUnit.UnitDivisor.ulcd"><span class="id" title="variable">ulcd</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>.<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_eq"><span class="id" title="lemma">divp_eq</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.edivpP"><span class="id" title="lemma">edivpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divpP"><span class="id" title="lemma">divpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.modpP"><span class="id" title="lemma">modpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :  <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.ulc_eqpP"><span class="id" title="lemma">ulc_eqpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">c</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.dvdp_eq"><span class="id" title="lemma">dvdp_eq</span></a> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.ucl_eqp_eq"><span class="id" title="lemma">ucl_eqp_eq</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4fa85b0aa898c2a7e18c3b076438c2e7"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.modp_scalel"><span class="id" title="lemma">modp_scalel</span></a> <span class="id" title="var">c</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_scalel"><span class="id" title="lemma">divp_scalel</span></a> <span class="id" title="var">c</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.eqp_modpl"><span class="id" title="lemma">eqp_modpl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.eqp_divl"><span class="id" title="lemma">eqp_divl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.modp_opp"><span class="id" title="lemma">modp_opp</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_opp"><span class="id" title="lemma">divp_opp</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.modp_add"><span class="id" title="lemma">modp_add</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_add"><span class="id" title="lemma">divp_add</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.mulpK"><span class="id" title="lemma">mulpK</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.mulKp"><span class="id" title="lemma">mulKp</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_addl_mul_small"><span class="id" title="lemma">divp_addl_mul_small</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.modp_addl_mul_small"><span class="id" title="lemma">modp_addl_mul_small</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_addl_mul"><span class="id" title="lemma">divp_addl_mul</span></a> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divpp"><span class="id" title="lemma">divpp</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.leq_trunc_divp"><span class="id" title="lemma">leq_trunc_divp</span></a> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.dvdpP"><span class="id" title="lemma">dvdpP</span></a> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">q</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divpK"><span class="id" title="lemma">divpK</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divpKC"><span class="id" title="lemma">divpKC</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.dvdp_eq_div"><span class="id" title="lemma">dvdp_eq_div</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :  <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.dvdp_eq_mul"><span class="id" title="lemma">dvdp_eq_mul</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_mulA"><span class="id" title="lemma">divp_mulA</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_mulAC"><span class="id" title="lemma">divp_mulAC</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_mulCA"><span class="id" title="lemma">divp_mulCA</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.modp_mul"><span class="id" title="lemma">modp_mul</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor.d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.UnitDivisor"><span class="id" title="section">UnitDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.IdomainUnit.MoreUnitDivisor"><span class="id" title="section">MoreUnitDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.IdomainUnit.MoreUnitDivisor.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>.<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="Pdiv.IdomainUnit.MoreUnitDivisor.ulcd"><span class="id" title="variable">ulcd</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>.<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.expp_sub"><span class="id" title="lemma">expp_sub</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_pmul2l"><span class="id" title="lemma">divp_pmul2l</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_pmul2r"><span class="id" title="lemma">divp_pmul2r</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a>  <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_divl"><span class="id" title="lemma">divp_divl</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divpAC"><span class="id" title="lemma">divpAC</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a>  <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.modp_scaler"><span class="id" title="lemma">modp_scaler</span></a> <span class="id" title="var">c</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.IdomainUnit.divp_scaler"><span class="id" title="lemma">divp_scaler</span></a> <span class="id" title="var">c</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit.MoreUnitDivisor"><span class="id" title="section">MoreUnitDivisor</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainUnit"><span class="id" title="module">IdomainUnit</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.Field"><span class="id" title="module">Field</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring</span> <span class="id" title="var">ComRing</span> <span class="id" title="var">UnitRing</span>.<br/>
<span class="id" title="keyword">Include</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs"><span class="id" title="module">IdomainDefs</span></a>.<br/>
<span class="id" title="keyword">Export</span> <span class="id" title="var">IdomainDefs</span>.<br/>
<span class="id" title="keyword">Include</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.CommonIdomain"><span class="id" title="module">CommonIdomain</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.Field.FieldDivision"><span class="id" title="section">FieldDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_eq"><span class="id" title="lemma">divp_eq</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_modpP"><span class="id" title="lemma">divp_modpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">d</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divpP"><span class="id" title="lemma">divpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">d</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modpP"><span class="id" title="lemma">modpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">d</span> <span class="id" title="var">r</span> :  <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqpfP"><span class="id" title="lemma">eqpfP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4fa85b0aa898c2a7e18c3b076438c2e7"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.dvdp_eq"><span class="id" title="lemma">dvdp_eq</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqpf_eq"><span class="id" title="lemma">eqpf_eq</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">c</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modp_scalel"><span class="id" title="lemma">modp_scalel</span></a> <span class="id" title="var">c</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.mulpK"><span class="id" title="lemma">mulpK</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.mulKp"><span class="id" title="lemma">mulKp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_scalel"><span class="id" title="lemma">divp_scalel</span></a> <span class="id" title="var">c</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modp_scaler"><span class="id" title="lemma">modp_scaler</span></a> <span class="id" title="var">c</span> <span class="id" title="var">p</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_scaler"><span class="id" title="lemma">divp_scaler</span></a> <span class="id" title="var">c</span> <span class="id" title="var">p</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_modpl"><span class="id" title="lemma">eqp_modpl</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_divl"><span class="id" title="lemma">eqp_divl</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_modpr"><span class="id" title="lemma">eqp_modpr</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_mod"><span class="id" title="lemma">eqp_mod</span></a> <span class="id" title="var">p1</span> <span class="id" title="var">p2</span> <span class="id" title="var">q1</span> <span class="id" title="var">q2</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p2"><span class="id" title="variable">p2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q2"><span class="id" title="variable">q2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p2"><span class="id" title="variable">p2</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q2"><span class="id" title="variable">q2</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_divr"><span class="id" title="lemma">eqp_divr</span></a> (<span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_div"><span class="id" title="lemma">eqp_div</span></a> <span class="id" title="var">p1</span> <span class="id" title="var">p2</span> <span class="id" title="var">q1</span> <span class="id" title="var">q2</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p2"><span class="id" title="variable">p2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q2"><span class="id" title="variable">q2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q1"><span class="id" title="variable">q1</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p2"><span class="id" title="variable">p2</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q2"><span class="id" title="variable">q2</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_gdcor"><span class="id" title="lemma">eqp_gdcor</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_gdcol"><span class="id" title="lemma">eqp_gdcol</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_rgdco_gdco"><span class="id" title="lemma">eqp_rgdco_gdco</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgdcop"><span class="id" title="definition">rgdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modp_opp"><span class="id" title="lemma">modp_opp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_opp"><span class="id" title="lemma">divp_opp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modp_add"><span class="id" title="lemma">modp_add</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modNp"><span class="id" title="lemma">modNp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_add"><span class="id" title="lemma">divp_add</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_addl_mul_small"><span class="id" title="lemma">divp_addl_mul_small</span></a> <span class="id" title="var">d</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modp_addl_mul_small"><span class="id" title="lemma">modp_addl_mul_small</span></a> <span class="id" title="var">d</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_addl_mul"><span class="id" title="lemma">divp_addl_mul</span></a> <span class="id" title="var">d</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divpp"><span class="id" title="lemma">divpp</span></a> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.leq_trunc_divp"><span class="id" title="lemma">leq_trunc_divp</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divpK"><span class="id" title="lemma">divpK</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divpKC"><span class="id" title="lemma">divpKC</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.dvdp_eq_div"><span class="id" title="lemma">dvdp_eq_div</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :  <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.dvdp_eq_mul"><span class="id" title="lemma">dvdp_eq_mul</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_mulA"><span class="id" title="lemma">divp_mulA</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_mulAC"><span class="id" title="lemma">divp_mulAC</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_mulCA"><span class="id" title="lemma">divp_mulCA</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.expp_sub"><span class="id" title="lemma">expp_sub</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#08fe8636f4b45ae6787c490d19de1366"><span class="id" title="notation">≥</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_pmul2l"><span class="id" title="lemma">divp_pmul2l</span></a> <span class="id" title="var">d</span> <span class="id" title="var">q</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_pmul2r"><span class="id" title="lemma">divp_pmul2r</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a>  <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divp_divl"><span class="id" title="lemma">divp_divl</span></a> <span class="id" title="var">r</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :  <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divpAC"><span class="id" title="lemma">divpAC</span></a> <span class="id" title="var">d</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a>  <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.edivp_def"><span class="id" title="lemma">edivp_def</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.divpE"><span class="id" title="lemma">divpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)^-(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modpE"><span class="id" title="lemma">modpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)^-(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c3d3108f22e21916f6afd1f17c0f8125"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.scalpE"><span class="id" title="lemma">scalpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0%<span class="id" title="var">N</span>.<br/>

<br/>
</div>

<div class="doc">
 Just to have it without importing the weak theory  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.dvdpE"><span class="id" title="lemma">dvdpE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdvdp"><span class="id" title="definition">rdvdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.  <br/>

<br/>
<span class="id" title="keyword">CoInductive</span> <a name="Pdiv.Field.edivp_spec"><span class="id" title="inductive">edivp_spec</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span> :=<br/>
&nbsp;&nbsp;<a name="Pdiv.Field.EdivpSpec"><span class="id" title="constructor">EdivpSpec</span></a> <span class="id" title="var">n</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> <span class="id" title="keyword">of</span><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> &amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3b17cb5f3a16fa64a62421f68786f750"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3b17cb5f3a16fa64a62421f68786f750"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3b17cb5f3a16fa64a62421f68786f750"><span class="id" title="notation">==&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3b17cb5f3a16fa64a62421f68786f750"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3b17cb5f3a16fa64a62421f68786f750"><span class="id" title="notation">)</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#edivp_spec"><span class="id" title="inductive">edivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.edivpP"><span class="id" title="lemma">edivpP</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.edivp_spec"><span class="id" title="inductive">edivp_spec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.edivp_eq"><span class="id" title="lemma">edivp_eq</span></a> <span class="id" title="var">d</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.modp_mul"><span class="id" title="lemma">modp_mul</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#m"><span class="id" title="variable">m</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.dvdpP"><span class="id" title="lemma">dvdpP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">qq</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>) (<a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.Bezout_eq1_coprimepP"><span class="id" title="lemma">Bezout_eq1_coprimepP</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>,<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.dvdp_gdcor"><span class="id" title="lemma">dvdp_gdcor</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.reducible_cubic_root"><span class="id" title="lemma">reducible_cubic_root</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> 4 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> 1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#432e31800fc09abd260feb634dbbd1af"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#432e31800fc09abd260feb634dbbd1af"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">r</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.cubic_irreducible"><span class="id" title="lemma">cubic_irreducible</span></a> <span class="id" title="var">p</span> :<br/>
&nbsp;&nbsp;1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4610c9b0191ef6128bca4d20062a6923"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4610c9b0191ef6128bca4d20062a6923"><span class="id" title="notation">≤</span></a> 4 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.Field.FieldDivision.FieldRingMap"><span class="id" title="section">FieldRingMap</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.Field.FieldDivision.FieldRingMap.rR"><span class="id" title="variable">rR</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.Field.FieldDivision.FieldRingMap.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.FieldRingMap.rR"><span class="id" title="variable">rR</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">a</span> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.redivp_map"><span class="id" title="lemma">redivp_map</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.redivp"><span class="id" title="definition">redivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rscalp"><span class="id" title="definition">rscalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rdivp"><span class="id" title="definition">rdivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#67d6f029332878db8c6f4efc5c9b26ee"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.FieldRingMap"><span class="id" title="section">FieldRingMap</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.Field.FieldDivision.FieldMap"><span class="id" title="section">FieldMap</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.Field.FieldDivision.FieldMap.rR"><span class="id" title="variable">rR</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.Field.FieldDivision.FieldMap.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.FieldMap.rR"><span class="id" title="variable">rR</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">a</span> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.edivp_map"><span class="id" title="lemma">edivp_map</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.edivp"><span class="id" title="definition">edivp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.scalp_map"><span class="id" title="lemma">scalp_map</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.IdomainDefs.scalp"><span class="id" title="definition">scalp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.map_divp"><span class="id" title="lemma">map_divp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.map_modp"><span class="id" title="lemma">map_modp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.egcdp_map"><span class="id" title="lemma">egcdp_map</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.egcdp"><span class="id" title="definition">egcdp</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.FieldMap.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.FieldMap.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.FieldMap.f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.egcdp"><span class="id" title="definition">egcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">).1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.FieldMap.f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.egcdp"><span class="id" title="definition">egcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">).2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.dvdp_map"><span class="id" title="lemma">dvdp_map</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.eqp_map"><span class="id" title="lemma">eqp_map</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.gcdp_map"><span class="id" title="lemma">gcdp_map</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.coprimep_map"><span class="id" title="lemma">coprimep_map</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.gdcop_rec_map"><span class="id" title="lemma">gdcop_rec_map</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop_rec"><span class="id" title="definition">gdcop_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop_rec"><span class="id" title="definition">gdcop_rec</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.Field.gdcop_map"><span class="id" title="lemma">gdcop_map</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#34b65849dab7adb22098517124e67650"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision.FieldMap"><span class="id" title="section">FieldMap</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.FieldDivision"><span class="id" title="section">FieldDivision</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field"><span class="id" title="module">Field</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <a name="Pdiv.ClosedField"><span class="id" title="module">ClosedField</span></a>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Field</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Pdiv.ClosedField.closed"><span class="id" title="section">closed</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="Pdiv.ClosedField.closed.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ClosedField.Exports.closedFieldType"><span class="id" title="abbreviation">closedFieldType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.ClosedField.root_coprimep"><span class="id" title="lemma">root_coprimep</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ClosedField.closed.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>):<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Pdiv.ClosedField.coprimepP"><span class="id" title="lemma">coprimepP</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ClosedField.closed.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>):<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0) (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.coprimep"><span class="id" title="definition">coprimep</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#q"><span class="id" title="variable">q</span></a>).<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ClosedField.closed"><span class="id" title="section">closed</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.ClosedField"><span class="id" title="module">ClosedField</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv"><span class="id" title="module">Pdiv</span></a>.<br/>

<br/>
<span class="id" title="keyword">Export</span> <span class="id" title="var">Pdiv.Field</span>.<br/>
</div>
</div>

<div id="footer">
<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
</div>

</div>

</body>
</html>