diff options
Diffstat (limited to 'docs/htmldoc/mathcomp.algebra.intdiv.html')
| -rw-r--r-- | docs/htmldoc/mathcomp.algebra.intdiv.html | 726 |
1 files changed, 726 insertions, 0 deletions
diff --git a/docs/htmldoc/mathcomp.algebra.intdiv.html b/docs/htmldoc/mathcomp.algebra.intdiv.html new file mode 100644 index 0000000..ccede4d --- /dev/null +++ b/docs/htmldoc/mathcomp.algebra.intdiv.html @@ -0,0 +1,726 @@ +<!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.intdiv</title> +</head> + +<body> + +<div id="page"> + +<div id="header"> +</div> + +<div id="main"> + +<h1 class="libtitle">Library mathcomp.algebra.intdiv</h1> + +<div class="code"> +<span class="comment">(* (c) Copyright 2006-2016 Microsoft Corporation and Inria. <br/> + Distributed under the terms of CeCILL-B. *)</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 various results on divisibility of integers. + It defines, for m, n, d : int, + (m %% d)%Z == the remainder of the Euclidean division of m by d; this is + the least non-negative element of the coset m + dZ when + d != 0, and m if d = 0. + (m %/ d)%Z == the quotient of the Euclidean division of m by d, such + that m = (m %/ d)%Z * d + (m %% d)%Z. Since for d != 0 the + remainder is non-negative, (m %/ d)%Z is non-zero for + (d %| m)%Z <=> m is divisible by d; dvdz d is the (collective) predicate + for integers divisible by d, and (d %| m)%Z is actually + (transposing) notation for m \in dvdz d. + (m = n % [mod d])%Z, (m == n % [mod d])%Z, (m != n % [mod d])%Z + m and n are (resp. compare, don't compare) equal mod d. + gcdz m n == the (non-negative) greatest common divisor of m and n, + with gcdz 0 0 = 0. + coprimez m n <=> m and n are coprime. + egcdz m n == the Bezout coefficients of the gcd of m and n: a pair + (u, v) of coprime integers such that u*m + v*n = gcdz m n. + Alternatively, a Bezoutz lemma states such u and v exist. + zchinese m1 m2 n1 n2 == for coprime m1 and m2, a solution to the Chinese + remainder problem for n1 and n2, i.e., and integer n such + that n = n1 % [mod m1] and n = n2 % [mod m2]. + zcontents p == the contents of p : {poly int}, that is, the gcd of the + coefficients of p, with the lead coefficient of p, + zprimitive p == the primitive part of p : {poly int}, i.e., p divided by + its contents. + inIntSpan X v <-> v is an integral linear combination of elements of + X : seq V, where V is a zmodType. We prove that this is a + decidable property for Q-vector spaces. + int_Smith_normal_form :: a theorem asserting the existence of the Smith + normal form for integer matrices. + Note that many of the concepts and results in this file could and perhaps + sould be generalized to the more general setting of integral, unique + factorization, principal ideal, or Euclidean domains. +</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> <span class="id" title="var">Num.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">Definition</span> <a name="divz"><span class="id" title="definition">divz</span></a> (<span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a>) :=<br/> + <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">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> := <span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <span class="id" title="keyword">with</span> <a class="idref" href="mathcomp.algebra.ssrint.html#Posz"><span class="id" title="constructor">Posz</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#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#Posz"><span class="id" title="constructor">Posz</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">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.ssrint.html#Negz"><span class="id" title="constructor">Negz</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#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#Negz"><span class="id" title="constructor">Negz</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">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> <span class="id" title="keyword">end</span> <span class="id" title="tactic">in</span><br/> + <a class="idref" href="mathcomp.algebra.ssrint.html#sgz"><span class="id" title="definition">sgz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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> <span class="id" title="var">K</span> (<span class="id" title="var">n</span> <a class="idref" href="mathcomp.ssreflect.div.html#df17451da28eb630dbb51b12706ba39e"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="modz"><span class="id" title="definition">modz</span></a> (<span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a>) : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a> := <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#divz"><span class="id" title="definition">divz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="dvdz"><span class="id" title="definition">dvdz</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> := (<a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="gcdz"><span class="id" title="definition">gcdz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.div.html#gcdn"><span class="id" title="definition">gcdn</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="egcdz"><span class="id" title="definition">egcdz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</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.ssrint.html#int"><span class="id" title="inductive">int</span></a> :=<br/> + <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.intdiv.html#m"><span class="id" title="variable">m</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<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#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a>-1<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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> 0)%<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> <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/> + <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.ssreflect.div.html#egcdn"><span class="id" title="definition">egcdn</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</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.ssrint.html#sgz"><span class="id" title="definition">sgz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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> <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> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a>-1<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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> 0)%<span class="id" title="var">R</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <span class="id" title="var">v</span><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</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="coprimez"><span class="id" title="definition">coprimez</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> := (<a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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> 1).<br/> + +<br/> +<span class="id" title="keyword">Infix</span> <a name="1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">"</span></a>%/" := <a class="idref" href="mathcomp.algebra.intdiv.html#divz"><span class="id" title="definition">divz</span></a> : <span class="id" title="var">int_scope</span>.<br/> +<span class="id" title="keyword">Infix</span> <a name="ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">"</span></a>%%" := <a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</span></a> : <span class="id" title="var">int_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">"</span></a>d %| m" := (<span class="id" title="var">m</span> <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.intdiv.html#dvdz"><span class="id" title="definition">dvdz</span></a> <span class="id" title="var">d</span>) : <span class="id" title="var">int_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">"</span></a>m = n %[mod d ]" := (<a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</span></a> <span class="id" title="var">n</span> <span class="id" title="var">d</span>) : <span class="id" title="var">int_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">"</span></a>m == n %[mod d ]" := (<a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</span></a> <span class="id" title="var">n</span> <span class="id" title="var">d</span>) : <span class="id" title="var">int_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="18a942e27ed4bcfee28be2c104a73b3c"><span class="id" title="notation">"</span></a>m <> n %[mod d ]" := (<a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</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.Logic.html#32263a1c8b01baecdff9deb038955bc9"><span class="id" title="notation">≠</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</span></a> <span class="id" title="var">n</span> <span class="id" title="var">d</span>) : <span class="id" title="var">int_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="f08cc121a940c60081869f6d9b0a633a"><span class="id" title="notation">"</span></a>m != n %[mod d ]" := (<a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#modz"><span class="id" title="definition">modz</span></a> <span class="id" title="var">n</span> <span class="id" title="var">d</span>) : <span class="id" title="var">int_scope</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divz_nat"><span class="id" title="lemma">divz_nat</span></a> (<span class="id" title="var">n</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="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#df17451da28eb630dbb51b12706ba39e"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzN"><span class="id" title="lemma">divzN</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><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.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divz_abs"><span class="id" title="lemma">divz_abs</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a>)%<span class="id" title="var">Z</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.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a>-1<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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> 0)%<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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="div0z"><span class="id" title="lemma">div0z</span></a> <span class="id" title="var">d</span> : (0 <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divNz_nat"><span class="id" title="lemma">divNz_nat</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><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.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.ssrint.html#Negz"><span class="id" title="constructor">Negz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#df17451da28eb630dbb51b12706ba39e"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</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.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divz_eq"><span class="id" title="lemma">divz_eq</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzN"><span class="id" title="lemma">modzN</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><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.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modz_abs"><span class="id" title="lemma">modz_abs</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>%<span class="id" title="var">N</span>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modz_nat"><span class="id" title="lemma">modz_nat</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="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#2179ac53e82aa7c0b2f2f5a16b5510ea"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modNz_nat"><span class="id" title="lemma">modNz_nat</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><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.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.ssrint.html#Negz"><span class="id" title="constructor">Negz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> 1 <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#2179ac53e82aa7c0b2f2f5a16b5510ea"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modz_ge0"><span class="id" title="lemma">modz_ge0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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> 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divz0"><span class="id" title="lemma">divz0</span></a> <span class="id" title="var">m</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> 0)%<span class="id" title="var">Z</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. <br/> +<span class="id" title="keyword">Lemma</span> <a name="mod0z"><span class="id" title="lemma">mod0z</span></a> <span class="id" title="var">d</span> : (0 <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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. <br/> +<span class="id" title="keyword">Lemma</span> <a name="modz0"><span class="id" title="lemma">modz0</span></a> <span class="id" title="var">m</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> 0)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a>. <br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divz_small"><span class="id" title="lemma">divz_small</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzMDl"><span class="id" title="lemma">divzMDl</span></a> <span class="id" title="var">q</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulzK"><span class="id" title="lemma">mulzK</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulKz"><span class="id" title="lemma">mulKz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="expzB"><span class="id" title="lemma">expzB</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.intdiv.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.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.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="http://coq.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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modz1"><span class="id" title="lemma">modz1</span></a> <span class="id" title="var">m</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> 1)%<span class="id" title="var">Z</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.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divz1"><span class="id" title="lemma">divz1</span></a> <span class="id" title="var">m</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> 1)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a>. <br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzz"><span class="id" title="lemma">divzz</span></a> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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="mathcomp.algebra.intdiv.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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ltz_pmod"><span class="id" title="lemma">ltz_pmod</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#07bcd9d86ae6b6828fbc17b15193853f"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ltz_mod"><span class="id" title="lemma">ltz_mod</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzMpl"><span class="id" title="lemma">divzMpl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#07bcd9d86ae6b6828fbc17b15193853f"><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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzMpr"><span class="id" title="lemma">divzMpr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#07bcd9d86ae6b6828fbc17b15193853f"><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.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="lez_floor"><span class="id" title="lemma">lez_floor</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + leq_mod does not extend to negative m. +</div> +<div class="code"> +<span class="id" title="keyword">Lemma</span> <a name="lez_div"><span class="id" title="lemma">lez_div</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a>(<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ltz_ceil"><span class="id" title="lemma">ltz_ceil</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#07bcd9d86ae6b6828fbc17b15193853f"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> 1<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.intdiv.html#d"><span class="id" title="variable">d</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ltz_divLR"><span class="id" title="lemma">ltz_divLR</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#07bcd9d86ae6b6828fbc17b15193853f"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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="lez_divRL"><span class="id" title="lemma">lez_divRL</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#07bcd9d86ae6b6828fbc17b15193853f"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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="divz_ge0"><span class="id" title="lemma">divz_ge0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#07bcd9d86ae6b6828fbc17b15193853f"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssrnum.html#4a55c8439dfd5912be472b2910ab4015"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#4a55c8439dfd5912be472b2910ab4015"><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="divzMA_ge0"><span class="id" title="lemma">divzMA_ge0</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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#4a55c8439dfd5912be472b2910ab4015"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modz_small"><span class="id" title="lemma">modz_small</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modz_mod"><span class="id" title="lemma">modz_mod</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : ((<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzMDl"><span class="id" title="lemma">modzMDl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulz_modr"><span class="id" title="lemma">mulz_modr</span></a> {<span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span>} : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulz_modl"><span class="id" title="lemma">mulz_modl</span></a> {<span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span>} : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzDl"><span class="id" title="lemma">modzDl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzDr"><span class="id" title="lemma">modzDr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzz"><span class="id" title="lemma">modzz</span></a> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzMl"><span class="id" title="lemma">modzMl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzMr"><span class="id" title="lemma">modzMr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzDml"><span class="id" title="lemma">modzDml</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : ((<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzDmr"><span class="id" title="lemma">modzDmr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzDm"><span class="id" title="lemma">modzDm</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : ((<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqz_modDl"><span class="id" title="lemma">eqz_modDl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqz_modDr"><span class="id" title="lemma">eqz_modDr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzMml"><span class="id" title="lemma">modzMml</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : ((<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzMmr"><span class="id" title="lemma">modzMmr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzMm"><span class="id" title="lemma">modzMm</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> : ((<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzXm"><span class="id" title="lemma">modzXm</span></a> <span class="id" title="var">k</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : ((<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modzNm"><span class="id" title="lemma">modzNm</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="modz_absm"><span class="id" title="lemma">modz_absm</span></a> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a>-1<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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> 0)%<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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +</div> + +<div class="doc"> + Divisibility * +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="dvdz_key"><span class="id" title="lemma">dvdz_key</span></a> <span class="id" title="var">d</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_key"><span class="id" title="inductive">pred_key</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz"><span class="id" title="definition">dvdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>). <br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dvdz_keyed</span> <span class="id" title="var">d</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#KeyedPred"><span class="id" title="definition">KeyedPred</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz_key"><span class="id" title="lemma">dvdz_key</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdzE"><span class="id" title="lemma">dvdzE</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>)%<span class="id" title="var">N</span>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz0"><span class="id" title="lemma">dvdz0</span></a> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> 0)%<span class="id" title="var">Z</span>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="dvd0z"><span class="id" title="lemma">dvd0z</span></a> <span class="id" title="var">n</span> : (0 <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</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="mathcomp.algebra.intdiv.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/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz1"><span class="id" title="lemma">dvdz1</span></a> <span class="id" title="var">d</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> 1)%<span class="id" title="var">Z</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="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>%<span class="id" title="var">N</span> <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/> +<span class="id" title="keyword">Lemma</span> <a name="dvd1z"><span class="id" title="lemma">dvd1z</span></a> <span class="id" title="var">m</span> : (1 <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdzz"><span class="id" title="lemma">dvdzz</span></a> <span class="id" title="var">m</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>. <br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_mull"><span class="id" title="lemma">dvdz_mull</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_mulr"><span class="id" title="lemma">dvdz_mulr</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + <span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">dvdz0</span> <span class="id" title="var">dvd1z</span> <span class="id" title="var">dvdzz</span> <span class="id" title="var">dvdz_mull</span> <span class="id" title="var">dvdz_mulr</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_mul"><span class="id" title="lemma">dvdz_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.intdiv.html#d1"><span class="id" title="variable">d1</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d2"><span class="id" title="variable">d2</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#d2"><span class="id" title="variable">d2</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m2"><span class="id" title="variable">m2</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_trans"><span class="id" title="lemma">dvdz_trans</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdzP"><span class="id" title="lemma">dvdzP</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</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.intdiv.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.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a>) (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_mod0P"><span class="id" title="lemma">dvdz_mod0P</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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)%<span class="id" title="var">Z</span> (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_eq"><span class="id" title="lemma">dvdz_eq</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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="divzK"><span class="id" title="lemma">divzK</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="lez_divLR"><span class="id" title="lemma">lez_divLR</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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="http://coq.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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="ltz_divRL"><span class="id" title="lemma">ltz_divRL</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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="eqz_div"><span class="id" title="lemma">eqz_div</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.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.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> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.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="eqz_mul"><span class="id" title="lemma">eqz_mul</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.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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="http://coq.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divz_mulAC"><span class="id" title="lemma">divz_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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulz_divA"><span class="id" title="lemma">mulz_divA</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</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.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulz_divCA"><span class="id" title="lemma">mulz_divCA</span></a> <span class="id" title="var">d</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> :<br/> + (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</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.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzA"><span class="id" title="lemma">divzA</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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</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.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzMA"><span class="id" title="lemma">divzMA</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.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzAC"><span class="id" title="lemma">divzAC</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.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzMl"><span class="id" title="lemma">divzMl</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzMr"><span class="id" title="lemma">divzMr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_mul2l"><span class="id" title="lemma">dvdz_mul2l</span></a> <span class="id" title="var">p</span> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_mul2r"><span class="id" title="lemma">dvdz_mul2r</span></a> <span class="id" title="var">p</span> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_exp2l"><span class="id" title="lemma">dvdz_exp2l</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_Pexp2l"><span class="id" title="lemma">dvdz_Pexp2l</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.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#07bcd9d86ae6b6828fbc17b15193853f"><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.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_exp2r"><span class="id" title="lemma">dvdz_exp2r</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="dvdz_zmod_closed"><span class="id" title="lemma">dvdz_zmod_closed</span></a> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.zmod_closed"><span class="id" title="abbreviation">zmod_closed</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz"><span class="id" title="definition">dvdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dvdz_addPred</span> <span class="id" title="var">d</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.AddrPred"><span class="id" title="definition">AddrPred</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz_zmod_closed"><span class="id" title="lemma">dvdz_zmod_closed</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dvdz_oppPred</span> <span class="id" title="var">d</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.OpprPred"><span class="id" title="definition">OpprPred</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz_zmod_closed"><span class="id" title="lemma">dvdz_zmod_closed</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dvdz_zmodPred</span> <span class="id" title="var">d</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.ZmodPred"><span class="id" title="definition">ZmodPred</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz_zmod_closed"><span class="id" title="lemma">dvdz_zmod_closed</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_exp"><span class="id" title="lemma">dvdz_exp</span></a> <span class="id" title="var">k</span> <span class="id" title="var">d</span> <span class="id" title="var">m</span> : (0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#k"><span class="id" title="variable">k</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqz_mod_dvd"><span class="id" title="lemma">eqz_mod_dvd</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</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.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzDl"><span class="id" title="lemma">divzDl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> :<br/> + (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="divzDr"><span class="id" title="lemma">divzDr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> :<br/> + (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</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.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Qint_dvdz"><span class="id" title="lemma">Qint_dvdz</span></a> (<span class="id" title="var">m</span> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a>) : (<a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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="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.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4fa85b0aa898c2a7e18c3b076438c2e7"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a> <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.rat.html#rat"><span class="id" title="record">rat</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">\</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.rat.html#Qint"><span class="id" title="definition">Qint</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="Qnat_dvd"><span class="id" title="lemma">Qnat_dvd</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="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</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#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.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><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> <a class="idref" href="mathcomp.algebra.ssralg.html#4fa85b0aa898c2a7e18c3b076438c2e7"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><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> <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.rat.html#rat"><span class="id" title="record">rat</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">\</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.rat.html#Qnat"><span class="id" title="definition">Qnat</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/> +</div> + +<div class="doc"> + Greatest common divisor +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzz"><span class="id" title="lemma">gcdzz</span></a> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzC"><span class="id" title="lemma">gcdzC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="gcd0z"><span class="id" title="lemma">gcd0z</span></a> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> 0 <a class="idref" href="mathcomp.algebra.intdiv.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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdz0"><span class="id" title="lemma">gcdz0</span></a> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="gcd1z"><span class="id" title="lemma">gcd1z</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_zero"><span class="id" title="definition">left_zero</span></a> 1 <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdz1"><span class="id" title="lemma">gcdz1</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_zero"><span class="id" title="definition">right_zero</span></a> 1 <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_gcdr"><span class="id" title="lemma">dvdz_gcdr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_gcdl"><span class="id" title="lemma">dvdz_gcdl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdz_eq0"><span class="id" title="lemma">gcdz_eq0</span></a> <span class="id" title="var">m</span> <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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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> <a class="idref" href="http://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.intdiv.html#m"><span class="id" title="variable">m</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">&&</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.intdiv.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.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/> + <span class="id" title="keyword">Lemma</span> <a name="gcdNz"><span class="id" title="lemma">gcdNz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzN"><span class="id" title="lemma">gcdzN</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>. <br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdz_modr"><span class="id" title="lemma">gcdz_modr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdz_modl"><span class="id" title="lemma">gcdz_modl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzMDl"><span class="id" title="lemma">gcdzMDl</span></a> <span class="id" title="var">q</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzDl"><span class="id" title="lemma">gcdzDl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzDr"><span class="id" title="lemma">gcdzDr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzMl"><span class="id" title="lemma">gcdzMl</span></a> <span class="id" title="var">n</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzMr"><span class="id" title="lemma">gcdzMr</span></a> <span class="id" title="var">n</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdz_idPl"><span class="id" title="lemma">gcdz_idPl</span></a> {<span class="id" title="var">m</span> <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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>) (<a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdz_idPr"><span class="id" title="lemma">gcdz_idPr</span></a> {<span class="id" title="var">m</span> <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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a>) (<a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="expz_min"><span class="id" title="lemma">expz_min</span></a> <span class="id" title="var">e</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#4a55c8439dfd5912be472b2910ab4015"><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.intdiv.html#e"><span class="id" title="variable">e</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>) (<a class="idref" href="mathcomp.algebra.intdiv.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_gcd"><span class="id" title="lemma">dvdz_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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzAC"><span class="id" title="lemma">gcdzAC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_commutative"><span class="id" title="definition">right_commutative</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzA"><span class="id" title="lemma">gcdzA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzCA"><span class="id" title="lemma">gcdzCA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_commutative"><span class="id" title="definition">left_commutative</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gcdzACA"><span class="id" title="lemma">gcdzACA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#interchange"><span class="id" title="definition">interchange</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulz_gcdr"><span class="id" title="lemma">mulz_gcdr</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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>) (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulz_gcdl"><span class="id" title="lemma">mulz_gcdl</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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#9fc2e395aa5602e5669820ba2f5dcc44"><span class="id" title="notation">Z</span></a> <a class="idref" href="http://coq.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mulz_divCA_gcd"><span class="id" title="lemma">mulz_divCA_gcd</span></a> <span class="id" title="var">n</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</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.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#1a6f7db8d3b782330505e467b38f1aa9"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +</div> + +<div class="doc"> + Not including lcm theory, for now. +<div class="paragraph"> </div> + + Coprime factors +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimezE"><span class="id" title="lemma">coprimezE</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.ssreflect.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>. <br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_sym"><span class="id" title="lemma">coprimez_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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimeNz"><span class="id" title="lemma">coprimeNz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimezN"><span class="id" title="lemma">coprimezN</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">CoInductive</span> <a name="egcdz_spec"><span class="id" title="inductive">egcdz_spec</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</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.ssrint.html#int"><span class="id" title="inductive">int</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="EgcdzSpec"><span class="id" title="constructor">EgcdzSpec</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.algebra.intdiv.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> & <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#v"><span class="id" title="variable">v</span></a><br/> + : <a class="idref" href="mathcomp.algebra.intdiv.html#egcdz_spec"><span class="id" title="inductive">egcdz_spec</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#u"><span class="id" title="variable">u</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.intdiv.html#v"><span class="id" title="variable">v</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="egcdzP"><span class="id" title="lemma">egcdzP</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#egcdz_spec"><span class="id" title="inductive">egcdz_spec</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#egcdz"><span class="id" title="definition">egcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Bezoutz"><span class="id" title="lemma">Bezoutz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><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.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><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.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimezP"><span class="id" title="lemma">coprimezP</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> :<br/> + <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">uv</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.intdiv.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.intdiv.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.intdiv.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.intdiv.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> 1) (<a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Gauss_dvdz"><span class="id" title="lemma">Gauss_dvdz</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> :<br/> + <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</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.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Gauss_dvdzr"><span class="id" title="lemma">Gauss_dvdzr</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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Gauss_dvdzl"><span class="id" title="lemma">Gauss_dvdzl</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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Gauss_gcdzr"><span class="id" title="lemma">Gauss_gcdzr</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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Gauss_gcdzl"><span class="id" title="lemma">Gauss_gcdzl</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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#gcdz"><span class="id" title="definition">gcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_mulr"><span class="id" title="lemma">coprimez_mulr</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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_mull"><span class="id" title="lemma">coprimez_mull</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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_pexpl"><span class="id" title="lemma">coprimez_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"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#k"><span class="id" title="variable">k</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_pexpr"><span class="id" title="lemma">coprimez_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"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#k"><span class="id" title="variable">k</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_expl"><span class="id" title="lemma">coprimez_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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_expr"><span class="id" title="lemma">coprimez_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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_dvdl"><span class="id" title="lemma">coprimez_dvdl</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="coprimez_dvdr"><span class="id" title="lemma">coprimez_dvdr</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_pexp2r"><span class="id" title="lemma">dvdz_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.intdiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><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.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#k"><span class="id" title="variable">k</span></a>)%<span class="id" title="var">Z</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.intdiv.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="Chinese"><span class="id" title="section">Chinese</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + The chinese remainder theorem +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Variables</span> <a name="Chinese.m1"><span class="id" title="variable">m1</span></a> <a name="Chinese.m2"><span class="id" title="variable">m2</span></a> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a>.<br/> +<span class="id" title="keyword">Hypothesis</span> <a name="Chinese.co_m12"><span class="id" title="variable">co_m12</span></a> : <a class="idref" href="mathcomp.algebra.intdiv.html#coprimez"><span class="id" title="definition">coprimez</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zchinese_remainder"><span class="id" title="lemma">zchinese_remainder</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> :<br/> + (<a class="idref" href="mathcomp.algebra.intdiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.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.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</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.intdiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</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.intdiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#192cefde1fc6842cd45195f429405cb3"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +</div> + +<div class="doc"> + A function that solves the chinese remainder problem +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="zchinese"><span class="id" title="definition">zchinese</span></a> <span class="id" title="var">r1</span> <span class="id" title="var">r2</span> :=<br/> + <a class="idref" href="mathcomp.algebra.intdiv.html#r1"><span class="id" title="variable">r1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</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.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#egcdz"><span class="id" title="definition">egcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</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#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#r2"><span class="id" title="variable">r2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.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="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.intdiv.html#egcdz"><span class="id" title="definition">egcdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zchinese_modl"><span class="id" title="lemma">zchinese_modl</span></a> <span class="id" title="var">r1</span> <span class="id" title="var">r2</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#zchinese"><span class="id" title="definition">zchinese</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#r1"><span class="id" title="variable">r1</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#r2"><span class="id" title="variable">r2</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#r1"><span class="id" title="variable">r1</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zchinese_modr"><span class="id" title="lemma">zchinese_modr</span></a> <span class="id" title="var">r1</span> <span class="id" title="var">r2</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#zchinese"><span class="id" title="definition">zchinese</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#r1"><span class="id" title="variable">r1</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#r2"><span class="id" title="variable">r2</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#r2"><span class="id" title="variable">r2</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zchinese_mod"><span class="id" title="lemma">zchinese_mod</span></a> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#zchinese"><span class="id" title="definition">zchinese</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m1"><span class="id" title="variable">m1</span></a>)%<span class="id" title="var">Z</span> (<a class="idref" href="mathcomp.algebra.intdiv.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#ba23b3264f7b39f451f85bc4710a6dc4"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</span></a>)%<span class="id" title="var">Z</span> <a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese.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.intdiv.html#Chinese.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#baefe1e4ac15ca675f39cb922b6b2b54"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">Z</span>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.intdiv.html#Chinese"><span class="id" title="section">Chinese</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="ZpolyScale"><span class="id" title="section">ZpolyScale</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="zcontents"><span class="id" title="definition">zcontents</span></a> <span class="id" title="var">p</span> :=<br/> + <a class="idref" href="mathcomp.algebra.ssrint.html#sgz"><span class="id" title="definition">sgz</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.intdiv.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.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.div.html#gcdn"><span class="id" title="definition">gcdn</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">N</span><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><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.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a>(<a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a>)%<span class="id" title="var">R</span><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="sgz_contents"><span class="id" title="lemma">sgz_contents</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#sgz"><span class="id" title="definition">sgz</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.ssrint.html#sgz"><span class="id" title="definition">sgz</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.intdiv.html#p"><span class="id" title="variable">p</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zcontents_eq0"><span class="id" title="lemma">zcontents_eq0</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.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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> <a class="idref" href="http://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.intdiv.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="zcontents0"><span class="id" title="lemma">zcontents0</span></a> : <a class="idref" href="mathcomp.algebra.intdiv.html#zcontents"><span class="id" title="definition">zcontents</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="zcontentsZ"><span class="id" title="lemma">zcontentsZ</span></a> <span class="id" title="var">a</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zcontents_monic"><span class="id" title="lemma">zcontents_monic</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.intdiv.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#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> <a 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.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdz_contents"><span class="id" title="lemma">dvdz_contents</span></a> <span class="id" title="var">a</span> <span class="id" title="var">p</span> : (<a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#acd2cfdd12dcef9419bf5f637ac8ee19"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">Z</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="mathcomp.algebra.intdiv.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#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.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz"><span class="id" title="definition">dvdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</span></a>)<a 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="map_poly_divzK"><span class="id" title="lemma">map_poly_divzK</span></a> <span class="id" title="var">a</span> <span class="id" title="var">p</span> :<br/> + <a class="idref" href="mathcomp.algebra.intdiv.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#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.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz"><span class="id" title="definition">dvdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</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.intdiv.html#a"><span class="id" title="variable">a</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#map_poly"><span class="id" title="definition">map_poly</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#divz"><span class="id" title="definition">divz</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">^~</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="polyOver_dvdzP"><span class="id" title="lemma">polyOver_dvdzP</span></a> <span class="id" title="var">a</span> <span class="id" title="var">p</span> :<br/> + <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.intdiv.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.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#q"><span class="id" title="variable">q</span></a>) (<a class="idref" href="mathcomp.algebra.intdiv.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#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.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#dvdz"><span class="id" title="definition">dvdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</span></a>)).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="zprimitive"><span class="id" title="definition">zprimitive</span></a> <span class="id" title="var">p</span> := <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.intdiv.html#divz"><span class="id" title="definition">divz</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">^~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">)</span></a>) <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zpolyEprim"><span class="id" title="lemma">zpolyEprim</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zprimitive0"><span class="id" title="lemma">zprimitive0</span></a> : <a class="idref" href="mathcomp.algebra.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</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="zprimitive_eq0"><span class="id" title="lemma">zprimitive_eq0</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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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> <a class="idref" href="http://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.intdiv.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="size_zprimitive"><span class="id" title="lemma">size_zprimitive</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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="sgz_lead_primitive"><span class="id" title="lemma">sgz_lead_primitive</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#sgz"><span class="id" title="definition">sgz</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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zcontents_primitive"><span class="id" title="lemma">zcontents_primitive</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zprimitive_id"><span class="id" title="lemma">zprimitive_id</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zprimitive_monic"><span class="id" title="lemma">zprimitive_monic</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.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.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zprimitiveZ"><span class="id" title="lemma">zprimitiveZ</span></a> <span class="id" title="var">a</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zprimitive_min"><span class="id" title="lemma">zprimitive_min</span></a> <span class="id" title="var">p</span> <span class="id" title="var">a</span> <span class="id" title="var">q</span> :<br/> + <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">b</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#sgz"><span class="id" title="definition">sgz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#sgz"><span class="id" title="definition">sgz</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.intdiv.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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zprimitive_irr"><span class="id" title="lemma">zprimitive_irr</span></a> <span class="id" title="var">p</span> <span class="id" title="var">a</span> <span class="id" title="var">q</span> :<br/> + <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.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.ssrint.html#sgz"><span class="id" title="definition">sgz</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.intdiv.html#q"><span class="id" title="variable">q</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zcontentsM"><span class="id" title="lemma">zcontentsM</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#zcontents"><span class="id" title="definition">zcontents</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#q"><span class="id" title="variable">q</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="zprimitiveM"><span class="id" title="lemma">zprimitiveM</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#q"><span class="id" title="variable">q</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdpP_int"><span class="id" title="lemma">dvdpP_int</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.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.intdiv.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.intdiv.html#zprimitive"><span class="id" title="definition">zprimitive</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="size_rat_int_poly"><span class="id" title="lemma">size_rat_int_poly</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.intdiv.html#pZtoQ"><span class="id" title="abbreviation">pZtoQ</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="rat_poly_scale"><span class="id" title="lemma">rat_poly_scale</span></a> (<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.rat.html#rat"><span class="id" title="record">rat</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><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.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><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.ssrint.html#int"><span class="id" title="inductive">int</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.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">a</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</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.intdiv.html#pZtoQ"><span class="id" title="abbreviation">pZtoQ</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdp_rat_int"><span class="id" title="lemma">dvdp_rat_int</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.intdiv.html#pZtoQ"><span class="id" title="abbreviation">pZtoQ</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#pZtoQ"><span class="id" title="abbreviation">pZtoQ</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.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.intdiv.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="dvdpP_rat_int"><span class="id" title="lemma">dvdpP_rat_int</span></a> <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/> + <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#pZtoQ"><span class="id" title="abbreviation">pZtoQ</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><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.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><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.ssrint.html#int"><span class="id" title="inductive">int</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.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">a</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#pZtoQ"><span class="id" title="abbreviation">pZtoQ</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><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.intdiv.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.intdiv.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.intdiv.html#ZpolyScale"><span class="id" title="section">ZpolyScale</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Integral spans. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="int_Smith_normal_form"><span class="id" title="lemma">int_Smith_normal_form</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">M</span> : <a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">)</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">{</span></a><span class="id" title="var">L</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">_m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#L"><span class="id" title="variable">L</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.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">&</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><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#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">_n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">&</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><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.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.path.html#sorted"><span class="id" title="definition">sorted</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#dvdz"><span class="id" title="definition">dvdz</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">&</span></a><br/> + <a class="idref" href="mathcomp.algebra.intdiv.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.intdiv.html#L"><span class="id" title="variable">L</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2c5155dd82e4555ad208e1f95e711672"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2c5155dd82e4555ad208e1f95e711672"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2c5155dd82e4555ad208e1f95e711672"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#2c5155dd82e4555ad208e1f95e711672"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#2c5155dd82e4555ad208e1f95e711672"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2c5155dd82e4555ad208e1f95e711672"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#891e51846c7d1d63a9cb5458374cf308"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#891e51846c7d1d63a9cb5458374cf308"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.intdiv.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#340b60eb5a3e9913f807040630cb8d43"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#340b60eb5a3e9913f807040630cb8d43"><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="mathcomp.algebra.ssralg.html#891e51846c7d1d63a9cb5458374cf308"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2c5155dd82e4555ad208e1f95e711672"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">}}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="inIntSpan"><span class="id" title="definition">inIntSpan</span></a> (<span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.zmodType"><span class="id" title="abbreviation">zmodType</span></a>) <span class="id" title="var">m</span> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#V"><span class="id" title="variable">V</span></a>) <span class="id" title="var">v</span> :=<br/> + <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">a</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a> <a class="idref" href="mathcomp.ssreflect.finfun.html#cd1bca6dfdb74a6b15c6c8969f27472a"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.algebra.intdiv.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#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.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#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#9c7c5437248d02e78f1fc1d9125e7f44"><span class="id" title="notation">*~</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#i"><span class="id" title="variable">i</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dec_Qint_span"><span class="id" title="lemma">dec_Qint_span</span></a> (<span class="id" title="var">vT</span> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports.vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.rat.html#rat"><span class="id" title="record">rat</span></a>) <span class="id" title="var">m</span> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.intdiv.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#vT"><span class="id" title="variable">vT</span></a>) <span class="id" title="var">v</span> :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#decidable"><span class="id" title="definition">decidable</span></a> (<a class="idref" href="mathcomp.algebra.intdiv.html#inIntSpan"><span class="id" title="definition">inIntSpan</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.intdiv.html#v"><span class="id" title="variable">v</span></a>).<br/> + +<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>
\ No newline at end of file |
