diff options
| author | Enrico Tassi | 2019-05-22 13:43:08 +0200 |
|---|---|---|
| committer | Enrico Tassi | 2019-05-22 15:34:14 +0200 |
| commit | 748d716efb2f2f75946c8386e441ce1789806a39 (patch) | |
| tree | fe7bb1c5235550410c64e968f4a4d69b7f10a047 /docs/htmldoc/mathcomp.field.closed_field.html | |
| parent | 415be3b908daadabf178a292c885db78e5b2c9a4 (diff) | |
htmldoc regenerated
Diffstat (limited to 'docs/htmldoc/mathcomp.field.closed_field.html')
| -rw-r--r-- | docs/htmldoc/mathcomp.field.closed_field.html | 544 |
1 files changed, 292 insertions, 252 deletions
diff --git a/docs/htmldoc/mathcomp.field.closed_field.html b/docs/htmldoc/mathcomp.field.closed_field.html index 2ee6879..ca8c82a 100644 --- a/docs/htmldoc/mathcomp.field.closed_field.html +++ b/docs/htmldoc/mathcomp.field.closed_field.html @@ -21,29 +21,34 @@ <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"> - A proof that algebraically closed field enjoy quantifier elimination, - as described in - ``A formal quantifier elimination for algebraically closed fields'', - proceedings of Calculemus 2010, by Cyril Cohen and Assia Mahboubi + This files contains two main contributions: + 1. Theorem "closed_field_QEMixin" + A proof that algebraically closed field enjoy quantifier elimination, + as described in + ``A formal quantifier elimination for algebraically closed fields'', + proceedings of Calculemus 2010, by Cyril Cohen and Assia Mahboubi <div class="paragraph"> </div> - This file constructs an instance of quantifier elimination mixin, + We constructs an instance of quantifier elimination mixin, (see the ssralg library) from the theory of polynomials with coefficients is an algebraically closed field (see the polydiv library). + The algebraic operations operating on fomulae are implemented in CPS style + We provide one CPS counterpart for each operation involved in the proof + of quantifier elimination. See the paper for more details. <div class="paragraph"> </div> - This file hence deals with the transformation of formulae part, which we - address by implementing one CPS style formula transformer per effective - operation involved in the proof of quantifier elimination. See the paper - for more details. + 2. Theorems "countable_field_extension" and "countable_algebraic_closure" + constructions for both simple extension and algebraic closure of + countable fields, by Georges Gonthier. + Note that the construction of the algebraic closure relies on the + above mentionned quantifier elimination. </div> <div class="code"> @@ -51,7 +56,7 @@ <span class="id" title="keyword">Set Implicit Arguments</span>.<br/> <br/> -<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing</span>.<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/> <span class="id" title="keyword">Local Open</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">ring_scope</span>.<br/> <br/> @@ -59,404 +64,439 @@ <span class="id" title="keyword">Import</span> <span class="id" title="var">PreClosedField</span>.<br/> <br/> -<span class="id" title="keyword">Section</span> <a name="ClosedFieldQE"><span class="id" title="section">ClosedFieldQE</span></a>.<br/> +<span class="id" title="keyword">Module</span> <a name="ClosedFieldQE"><span class="id" title="module">ClosedFieldQE</span></a>.<br/> +<span class="id" title="keyword">Section</span> <a name="ClosedFieldQE.ClosedFieldQE"><span class="id" title="section">ClosedFieldQE</span></a>.<br/> <br/> -<span class="id" title="keyword">Variable</span> <a name="ClosedFieldQE.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.type"><span class="id" title="record">Field.type</span></a>.<br/> +<span class="id" title="keyword">Variables</span> (<a name="ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="ClosedFieldQE.ClosedFieldQE.F_closed"><span class="id" title="variable">F_closed</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ClosedField.axiom"><span class="id" title="definition">GRing.ClosedField.axiom</span></a> <a class="idref" href="mathcomp.field.closed_field.html#F"><span class="id" title="variable">F</span></a>).<br/> <br/> -<span class="id" title="keyword">Variable</span> <a name="ClosedFieldQE.axiom"><span class="id" title="variable">axiom</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ClosedField.axiom"><span class="id" title="definition">ClosedField.axiom</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a> := (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">GRing.formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>).<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a> := (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">GRing.term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>).<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.qf"><span class="id" title="abbreviation">qf</span></a> <span class="id" title="var">f</span> := (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_form"><span class="id" title="definition">GRing.qf_form</span></a> <span class="id" title="var">f</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">&&</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rformula"><span class="id" title="definition">GRing.rformula</span></a> <span class="id" title="var">f</span>).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> := <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>.<br/> <br/> -<span class="id" title="keyword">Notation</span> <a name="fF"><span class="id" title="abbreviation">fF</span></a> := (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>).<br/> -<span class="id" title="keyword">Notation</span> <a name="qf"><span class="id" title="abbreviation">qf</span></a> <span class="id" title="var">f</span> := (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_form"><span class="id" title="definition">qf_form</span></a> <span class="id" title="var">f</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.ssralg.html#GRing.rformula"><span class="id" title="definition">rformula</span></a> <span class="id" title="var">f</span>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.qf_simpl"><span class="id" title="lemma">qf_simpl</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf"><span class="id" title="abbreviation">qf</span></a> <a class="idref" href="mathcomp.field.closed_field.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_form"><span class="id" title="definition">GRing.qf_form</span></a> <a class="idref" href="mathcomp.field.closed_field.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf"><span class="id" title="abbreviation">qf</span></a> <a class="idref" href="mathcomp.field.closed_field.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rformula"><span class="id" title="definition">GRing.rformula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <span class="id" title="var">T</span> := (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="var">T</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <span class="id" title="var">T1</span> : <a class="idref" href="mathcomp.field.closed_field.html#T1"><span class="id" title="variable">T1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T1"><span class="id" title="variable">T1</span></a> := <span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> <span class="id" title="var">k</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.bind"><span class="id" title="definition">bind</span></a> <span class="id" title="var">T1</span> <span class="id" title="var">T2</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T1"><span class="id" title="variable">T1</span></a>) (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.closed_field.html#T1"><span class="id" title="variable">T1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T2"><span class="id" title="variable">T2</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T2"><span class="id" title="variable">T2</span></a> :=<br/> + <span class="id" title="keyword">fun</span> <span class="id" title="var">k</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>).<br/> +<span class="id" title="keyword">Notation</span> <a name="9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">"</span></a>''let' x <- y ; z" :=<br/> + (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.bind"><span class="id" title="definition">bind</span></a> <span class="id" title="var">y</span> (<span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> ⇒ <span class="id" title="var">z</span>)) (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 99, <span class="id" title="var">x</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">y</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0,<br/> + <span class="id" title="var">format</span> "'[hv' ''let' x <- y ; '/' z ']'").<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.cpsif"><span class="id" title="definition">cpsif</span></a> <span class="id" title="var">T</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a> :=<br/> + <span class="id" title="keyword">fun</span> <span class="id" title="var">k</span> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.If"><span class="id" title="definition">GRing.If</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a>).<br/> +<span class="id" title="keyword">Notation</span> <a name="b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">"</span></a>''if' c1 'then' c2 'else' c3" := (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cpsif"><span class="id" title="definition">cpsif</span></a> <span class="id" title="var">c1</span>%<span class="id" title="var">T</span> <span class="id" title="var">c2</span>%<span class="id" title="var">T</span> <span class="id" title="var">c3</span>%<span class="id" title="var">T</span>)<br/> + (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 200, <span class="id" title="tactic">right</span> <span class="id" title="keyword">associativity</span>, <span class="id" title="var">format</span><br/> +"'[hv ' ''if' c1 '/' '[' 'then' c2 ']' '/' '[' 'else' c3 ']' ']'").<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="polyF"><span class="id" title="definition">polyF</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.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>).<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.eval"><span class="id" title="abbreviation">eval</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">GRing.eval</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">GRing.rterm</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">GRing.qf_eval</span></a>.<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="eval_poly"><span class="id" title="definition">eval_poly</span></a> (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) <span class="id" title="var">pf</span> := <br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#pf"><span class="id" title="variable">pf</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">c</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a><span class="id" title="var">q</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">q</span><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)*</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">c</span><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <span class="id" title="keyword">else</span> 0.<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) <span class="id" title="var">pf</span> :=<br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#pf"><span class="id" title="variable">pf</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">c</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <span class="id" title="var">q</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">q</span> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval"><span class="id" title="abbreviation">eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">c</span><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a> <span class="id" title="keyword">else</span> 0.<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="rpoly"><span class="id" title="definition">rpoly</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) := <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) := <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (@<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="sizeT"><span class="id" title="definition">sizeT</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#nat"><span class="id" title="inductive">nat</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.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">c</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a><span class="id" title="var">q</span> <span class="id" title="keyword">then</span> <br/> - <a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">n</span> ⇒ <br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">m</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <span class="id" title="var">m</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#793e3499c36e4c6595d810e871a5acdd"><span class="id" title="notation">.+2</span></a> <span class="id" title="keyword">else</span> <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.If"><span class="id" title="definition">GRing.If</span></a> (<span class="id" title="var">c</span> <a class="idref" href="mathcomp.algebra.ssralg.html#9cd193463422c398e84dc63b7a4a91e1"><span class="id" title="notation">==</span></a> 0) (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> 0%<span class="id" title="var">N</span>) (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> 1%<span class="id" title="var">N</span>)) <span class="id" title="var">q</span> <br/> - <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#O"><span class="id" title="constructor">O</span></a>%<span class="id" title="var">N</span>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> := (<span class="id" title="keyword">fix</span> <span class="id" title="var">loop</span> <span class="id" title="var">p</span> :=<br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="var">isn't</span> <span class="id" title="var">c</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <span class="id" title="var">q</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> 0%<span class="id" title="var">N</span><br/> + <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#loop"><span class="id" title="variable">loop</span></a> <span class="id" title="var">q</span><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">m</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <span class="id" title="var">m</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bc63483175fac06bcd5541a5e9093b18"><span class="id" title="notation">.+2</span></a> <span class="id" title="keyword">else</span><br/> + <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">(</span></a><span class="id" title="var">c</span> <a class="idref" href="mathcomp.algebra.ssralg.html#8ba71119b4b4369b5eb5b6037f9b1b72"><span class="id" title="notation">==</span></a> 0<a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">then</span></a> 0%<span class="id" title="var">N</span> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">else</span></a> 1%<span class="id" title="var">N</span>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="sizeTP"><span class="id" title="lemma">sizeTP</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#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">pf</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) : <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pf"><span class="id" title="variable">pf</span></a>) <a class="idref" href="http://coq.inria.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#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pf"><span class="id" title="variable">pf</span></a>))).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.qf_red_cps"><span class="id" title="definition">qf_red_cps</span></a> <span class="id" title="var">T</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a>) (<span class="id" title="var">y</span> : <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a>) :=<br/> + <span class="id" title="keyword">∀</span> <span class="id" title="var">e</span> <span class="id" title="var">k</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a>)).<br/> +<span class="id" title="keyword">Notation</span> <a name="009e3de166439b72aa502f1767bda5b6"><span class="id" title="notation">"</span></a>x ->_ e y" := (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_red_cps"><span class="id" title="definition">qf_red_cps</span></a> <span class="id" title="var">x</span> (<span class="id" title="keyword">fun</span> <span class="id" title="var">e</span> ⇒ <span class="id" title="var">y</span>))<br/> + (<span class="id" title="var">e</span> <span class="id" title="var">ident</span>, <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 90, <span class="id" title="var">format</span> "x ->_ e y").<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="sizeT_qf"><span class="id" title="lemma">sizeT_qf</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#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">n</span>, <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <span class="id" title="var">T</span> <span class="id" title="var">D</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a>) :=<br/> + <span class="id" title="keyword">∀</span> <span class="id" title="var">k</span>, <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">y</span>, <a class="idref" href="mathcomp.field.closed_field.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="isnull"><span class="id" title="definition">isnull</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#bool"><span class="id" title="inductive">bool</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">n</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.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%<span class="id" title="var">N</span>)) <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.qf_cps_ret"><span class="id" title="lemma">qf_cps_ret</span></a> <span class="id" title="var">T</span> <span class="id" title="var">D</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#D"><span class="id" title="variable">D</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>).<br/> + <span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">qf_cps_ret</span> : <span class="id" title="var">core</span>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="isnullP"><span class="id" title="lemma">isnullP</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#bool"><span class="id" title="inductive">bool</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0)).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.qf_cps_bind"><span class="id" title="lemma">qf_cps_bind</span></a> <span class="id" title="var">T1</span> <span class="id" title="var">D1</span> <span class="id" title="var">T2</span> <span class="id" title="var">D2</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T1"><span class="id" title="variable">T1</span></a>) (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.closed_field.html#T1"><span class="id" title="variable">T1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#T2"><span class="id" title="variable">T2</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#D1"><span class="id" title="variable">D1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.field.closed_field.html#D1"><span class="id" title="variable">D1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#D2"><span class="id" title="variable">D2</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#D2"><span class="id" title="variable">D2</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.bind"><span class="id" title="definition">bind</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#f"><span class="id" title="variable">f</span></a>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="isnull_qf"><span class="id" title="lemma">isnull_qf</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#bool"><span class="id" title="inductive">bool</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">b</span>, <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.qf_cps_if"><span class="id" title="lemma">qf_cps_if</span></a> <span class="id" title="var">T</span> <span class="id" title="var">D</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.field.closed_field.html#T"><span class="id" title="variable">T</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf"><span class="id" title="abbreviation">qf</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#D"><span class="id" title="variable">D</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.sizeTP"><span class="id" title="lemma">sizeTP</span></a> (<span class="id" title="var">pf</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pf"><span class="id" title="variable">pf</span></a> <a class="idref" href="mathcomp.field.closed_field.html#009e3de166439b72aa502f1767bda5b6"><span class="id" title="notation">→</span></a><a class="idref" href="mathcomp.field.closed_field.html#009e3de166439b72aa502f1767bda5b6"><span class="id" title="notation">_e</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pf"><span class="id" title="variable">pf</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.sizeT_qf"><span class="id" title="lemma">sizeT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#xpredT"><span class="id" title="abbreviation">xpredT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.isnull"><span class="id" title="definition">isnull</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#bool"><span class="id" title="inductive">bool</span></a> :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">N</span>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.isnullP"><span class="id" title="lemma">isnullP</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#009e3de166439b72aa502f1767bda5b6"><span class="id" title="notation">→</span></a><a class="idref" href="mathcomp.field.closed_field.html#009e3de166439b72aa502f1767bda5b6"><span class="id" title="notation">_e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#009e3de166439b72aa502f1767bda5b6"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="mathcomp.field.closed_field.html#009e3de166439b72aa502f1767bda5b6"><span class="id" title="notation">)</span></a>.<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="lt_sizeT"><span class="id" title="definition">lt_sizeT</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#bool"><span class="id" title="inductive">bool</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">n</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">m</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation"><</span></a><a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a>)) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.isnull_qf"><span class="id" title="lemma">isnull_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#xpredT"><span class="id" title="abbreviation">xpredT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.lt_sizeT"><span class="id" title="definition">lt_sizeT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#bool"><span class="id" title="inductive">bool</span></a> :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">m</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#00fe0eaf5e6949f0a31725357afa4bba"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a>).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="lift"><span class="id" title="definition">lift</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.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) := <span class="id" title="keyword">let</span>: <span class="id" title="var">q</span> := <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> <span class="id" title="var">q</span>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) := <a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">GRing.Const</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="eval_lift"><span class="id" title="lemma">eval_lift</span></a> (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</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.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.eval_lift"><span class="id" title="lemma">eval_lift</span></a> (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="lead_coefT"><span class="id" title="definition">lead_coefT</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) <span class="id" title="var">p</span> := <br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">c</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a><span class="id" title="var">q</span> <span class="id" title="keyword">then</span> <br/> - <a class="idref" href="mathcomp.field.closed_field.html#lead_coefT"><span class="id" title="definition">lead_coefT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">l</span> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.If"><span class="id" title="definition">GRing.If</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#l"><span class="id" title="variable">l</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#9cd193463422c398e84dc63b7a4a91e1"><span class="id" title="notation">==</span></a> 0) (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <span class="id" title="var">c</span>) (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#l"><span class="id" title="variable">l</span></a>)) <span class="id" title="var">q</span> <br/> - <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 0).<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.lead_coefT"><span class="id" title="definition">lead_coefT</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a> :=<br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">c</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <span class="id" title="var">q</span> <span class="id" title="keyword">then</span><br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">l</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lead_coefT"><span class="id" title="definition">lead_coefT</span></a> <span class="id" title="var">q</span><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#l"><span class="id" title="variable">l</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8ba71119b4b4369b5eb5b6037f9b1b72"><span class="id" title="notation">==</span></a> 0<a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">then</span></a> <span class="id" title="var">c</span> <a class="idref" href="mathcomp.field.closed_field.html#b8e0aff366eebb2a3e936a17d5d6b4cf"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.field.closed_field.html#l"><span class="id" title="variable">l</span></a><br/> + <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> 0%<span class="id" title="var">T</span>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="lead_coefTP"><span class="id" title="lemma">lead_coefTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">x</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <span class="id" title="keyword">∀</span> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>),<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lead_coefT"><span class="id" title="definition">lead_coefT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</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.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.lead_coefTP"><span class="id" title="lemma">lead_coefTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">x</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#06be6dc84074dd93c618bfd62ba301ab"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval"><span class="id" title="abbreviation">eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#06be6dc84074dd93c618bfd62ba301ab"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#06be6dc84074dd93c618bfd62ba301ab"><span class="id" title="notation">T</span></a>%<span class="id" title="var">T</span>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <span class="id" title="keyword">∀</span> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>),<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lead_coefT"><span class="id" title="definition">lead_coefT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#06be6dc84074dd93c618bfd62ba301ab"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)<a class="idref" href="mathcomp.algebra.ssralg.html#06be6dc84074dd93c618bfd62ba301ab"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#06be6dc84074dd93c618bfd62ba301ab"><span class="id" title="notation">T</span></a>%<span class="id" title="var">T</span>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="lead_coefT_qf"><span class="id" title="lemma">lead_coefT_qf</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">c</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lead_coefT"><span class="id" title="definition">lead_coefT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.lead_coefT_qf"><span class="id" title="lemma">lead_coefT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> (@<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <span class="id" title="var">_</span>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lead_coefT"><span class="id" title="definition">lead_coefT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>).<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="amulXnT"><span class="id" title="definition">amulXnT</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> :=<br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n'</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 0<a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#amulXnT"><span class="id" title="definition">amulXnT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a> <span class="id" title="var">n'</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">)</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a>.<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.amulXnT"><span class="id" title="definition">amulXnT</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> :=<br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n'</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> 0%<span class="id" title="var">T</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#amulXnT"><span class="id" title="definition">amulXnT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a> <span class="id" title="var">n'</span><a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">)</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="eval_amulXnT"><span class="id" title="lemma">eval_amulXnT</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#amulXnT"><span class="id" title="definition">amulXnT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.closed_field.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.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">X</span></a><a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.eval_amulXnT"><span class="id" title="lemma">eval_amulXnT</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.amulXnT"><span class="id" title="definition">amulXnT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval"><span class="id" title="abbreviation">eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">X</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="ramulXnT"><span class="id" title="lemma">ramulXnT</span></a>: <span class="id" title="keyword">∀</span> <span class="id" title="var">a</span> <span class="id" title="var">n</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#amulXnT"><span class="id" title="definition">amulXnT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.ramulXnT"><span class="id" title="lemma">ramulXnT</span></a>: <span class="id" title="keyword">∀</span> <span class="id" title="var">a</span> <span class="id" title="var">n</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.amulXnT"><span class="id" title="definition">amulXnT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>).<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="sumpT"><span class="id" title="definition">sumpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">a</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a><span class="id" title="var">p'</span> <span class="id" title="keyword">then</span><br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">b</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a><span class="id" title="var">q'</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Add"><span class="id" title="constructor">Add</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">)::(</span></a><a class="idref" href="mathcomp.field.closed_field.html#sumpT"><span class="id" title="definition">sumpT</span></a> <span class="id" title="var">p'</span> <span class="id" title="var">q'</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">)</span></a><br/> - <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><br/> - <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>.<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.sumpT"><span class="id" title="definition">sumpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> + <span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>, <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <span class="id" title="keyword">with</span> <span class="id" title="var">a</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <span class="id" title="var">p</span>, <span class="id" title="var">b</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <span class="id" title="var">q</span> ⇒ (<span class="id" title="var">a</span> <a class="idref" href="mathcomp.algebra.ssralg.html#c58c2dd0f0bcaa7496089cb3d706fa33"><span class="id" title="notation">+</span></a> <span class="id" title="var">b</span>)%<span class="id" title="var">T</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sumpT"><span class="id" title="definition">sumpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><br/> + | <a class="idref" href="mathcomp.ssreflect.seq.html#0a934e621391740b862762275992e626"><span class="id" title="notation">[::]</span></a>, <span class="id" title="var">q</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> | <span class="id" title="var">p</span>, <a class="idref" href="mathcomp.ssreflect.seq.html#0a934e621391740b862762275992e626"><span class="id" title="notation">[::]</span></a> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="keyword">end</span>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="eval_sumpT"><span class="id" title="lemma">eval_sumpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#sumpT"><span class="id" title="definition">sumpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.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.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.eval_sumpT"><span class="id" title="lemma">eval_sumpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sumpT"><span class="id" title="definition">sumpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">)</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rsumpT"><span class="id" title="lemma">rsumpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#sumpT"><span class="id" title="definition">sumpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rsumpT"><span class="id" title="lemma">rsumpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sumpT"><span class="id" title="definition">sumpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="mulpT"><span class="id" title="definition">mulpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">a</span> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a> <span class="id" title="var">p'</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#sumpT"><span class="id" title="definition">sumpT</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">Mul</span></a> <span class="id" title="var">a</span>) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 0<a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::(</span></a><a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <span class="id" title="var">p'</span> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">)</span></a>) <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.ssreflect.seq.html#747e2b5d553b2dfe76e024e1f8fb39d1"><span class="id" title="notation">[::]</span></a>.<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <span class="id" title="var">isn't</span> <span class="id" title="var">a</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <span class="id" title="var">p</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.ssreflect.seq.html#0a934e621391740b862762275992e626"><span class="id" title="notation">[::]</span></a><br/> + <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sumpT"><span class="id" title="definition">sumpT</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation">seq</span></a> (<span class="id" title="var">a</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0f66e0377386facac088dbe9d64fe464"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">T</span> <a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation">|</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation">]</span></a> (0%<span class="id" title="var">T</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="eval_mulpT"><span class="id" title="lemma">eval_mulpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.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>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.eval_mulpT"><span class="id" title="lemma">eval_mulpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">)</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rpoly_map_mul"><span class="id" title="lemma">rpoly_map_mul</span></a> (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">rt</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>) : <br/> - <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">Mul</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>) <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rpoly_map_mul"><span class="id" title="lemma">rpoly_map_mul</span></a> (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">rt</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation">seq</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0f66e0377386facac088dbe9d64fe464"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">T</span> <a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation">|</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#dcd18413b33436252c77b6c6465f02bc"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rmulpT"><span class="id" title="lemma">rmulpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rmulpT"><span class="id" title="lemma">rmulpT</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="opppT"><span class="id" title="definition">opppT</span></a> := <a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">Mul</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a> (-1))).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.opppT"><span class="id" title="definition">opppT</span></a> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> := <a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">GRing.Mul</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#e17e96c7b2b76669d2df8ffe5474ae56"><span class="id" title="notation">-</span></a> 1%<span class="id" title="var">T</span>)%<span class="id" title="var">T</span>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="eval_opppT"><span class="id" title="lemma">eval_opppT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) : <br/> - <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#opppT"><span class="id" title="definition">opppT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.eval_opppT"><span class="id" title="lemma">eval_opppT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.opppT"><span class="id" title="definition">opppT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="natmulpT"><span class="id" title="definition">natmulpT</span></a> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">Mul</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.NatConst"><span class="id" title="constructor">NatConst</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>)).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.natmulpT"><span class="id" title="definition">natmulpT</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> := <a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">GRing.Mul</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4ce27ef85740ec20828e07c70791cf75"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4ce27ef85740ec20828e07c70791cf75"><span class="id" title="notation">R</span></a>%<span class="id" title="var">T</span>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="eval_natmulpT"><span class="id" title="lemma">eval_natmulpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#natmulpT"><span class="id" title="definition">natmulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#891e51846c7d1d63a9cb5458374cf308"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</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.field.closed_field.html#n"><span class="id" title="variable">n</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.eval_natmulpT"><span class="id" title="lemma">eval_natmulpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.natmulpT"><span class="id" title="definition">natmulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>.<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) <span class="id" title="var">sq</span> <span class="id" title="var">cq</span> (<span class="id" title="var">k</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <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.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>)<br/> - (<span class="id" title="var">c</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>}:=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">sr</span> ⇒ <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.field.closed_field.html#sr"><span class="id" title="variable">sr</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <br/> - <a class="idref" href="mathcomp.field.closed_field.html#lead_coefT"><span class="id" title="definition">lead_coefT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">lr</span> ⇒<br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">m</span> := <a class="idref" href="mathcomp.field.closed_field.html#amulXnT"><span class="id" title="definition">amulXnT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lr"><span class="id" title="variable">lr</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#sr"><span class="id" title="variable">sr</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a>) <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">qq1</span> := <a class="idref" href="mathcomp.field.closed_field.html#sumpT"><span class="id" title="definition">sumpT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">r1</span> := <a class="idref" href="mathcomp.field.closed_field.html#sumpT"><span class="id" title="definition">sumpT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a>)) (<a class="idref" href="mathcomp.field.closed_field.html#opppT"><span class="id" title="definition">opppT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)) <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq1"><span class="id" title="variable">qq1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r1"><span class="id" title="variable">r1</span></a> <span class="id" title="var">n1</span><br/> - <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq1"><span class="id" title="variable">qq1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r1"><span class="id" title="variable">r1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a><br/> - ) <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><br/> - ) <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>.<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) <span class="id" title="var">sq</span> <span class="id" title="var">cq</span> (<span class="id" title="var">c</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>)<br/> + (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>} : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">sr</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sr"><span class="id" title="variable">sr</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#00fe0eaf5e6949f0a31725357afa4bba"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">lr</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lead_coefT"><span class="id" title="definition">lead_coefT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">m</span> := <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.amulXnT"><span class="id" title="definition">amulXnT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lr"><span class="id" title="variable">lr</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#sr"><span class="id" title="variable">sr</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7825ccc99f23b0d30c9d40c317ba7af0"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a>) <span class="id" title="tactic">in</span><br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">qq1</span> := <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sumpT"><span class="id" title="definition">sumpT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a> <span class="id" title="tactic">in</span><br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">r1</span> := <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sumpT"><span class="id" title="definition">sumpT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a>)) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.opppT"><span class="id" title="definition">opppT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)) <span class="id" title="tactic">in</span><br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq1"><span class="id" title="variable">qq1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r1"><span class="id" title="variable">r1</span></a> <span class="id" title="var">n1</span><br/> + <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq1"><span class="id" title="variable">qq1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r1"><span class="id" title="variable">r1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>.<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="redivp_rec_loop"><span class="id" title="definition">redivp_rec_loop</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) <span class="id" title="var">sq</span> <span class="id" title="var">cq</span> <br/> - (<span class="id" title="var">k</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>)(<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>} :=<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">m</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">X</span></a><a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">^(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a><a class="idref" href="mathcomp.algebra.poly.html#9f0d1035fe3072a93b6e6065c1932def"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">qq1</span> := <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">r1</span> := <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#redivp_rec_loop"><span class="id" title="definition">redivp_rec_loop</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq1"><span class="id" title="variable">qq1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r1"><span class="id" title="variable">r1</span></a> <span class="id" title="var">n1</span> <span class="id" title="keyword">else</span><br/> - <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.field.closed_field.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq1"><span class="id" title="variable">qq1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r1"><span class="id" title="variable">r1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.redivp_rec_loop"><span class="id" title="definition">redivp_rec_loop</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) <span class="id" title="var">sq</span> <span class="id" title="var">cq</span><br/> + (<span class="id" title="var">k</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>} :=<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#00fe0eaf5e6949f0a31725357afa4bba"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a><br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">m</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">X</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><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.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7825ccc99f23b0d30c9d40c317ba7af0"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">qq1</span> := <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a> <span class="id" title="tactic">in</span><br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">r1</span> := <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <span class="id" title="tactic">in</span><br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#redivp_rec_loop"><span class="id" title="definition">redivp_rec_loop</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq1"><span class="id" title="variable">qq1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r1"><span class="id" title="variable">r1</span></a> <span class="id" title="var">n1</span> <span class="id" title="keyword">else</span><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq1"><span class="id" title="variable">qq1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r1"><span class="id" title="variable">r1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="redivp_rec_loopTP"><span class="id" title="lemma">redivp_rec_loopTP</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#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) : <br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">c</span> <span class="id" title="var">qq</span> <span class="id" title="var">r</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a><a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a><a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>) <br/> - <a class="idref" href="http://coq.inria.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#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.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.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">q</span> <span class="id" title="var">sq</span> <span class="id" title="var">cq</span> <span class="id" title="var">c</span> <span class="id" title="var">qq</span> <span class="id" title="var">r</span> <span class="id" title="var">n</span> <span class="id" title="var">e</span> <br/> - (<span class="id" title="var">d</span> := <a class="idref" href="mathcomp.field.closed_field.html#redivp_rec_loop"><span class="id" title="definition">redivp_rec_loop</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a>)<br/> - <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>),<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>) <br/> - <a class="idref" href="http://coq.inria.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#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a><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.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.redivp_rec_loopTP"><span class="id" title="lemma">redivp_rec_loopTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">c</span> <span class="id" title="var">qq</span> <span class="id" title="var">r</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a><a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a><a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>)<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">q</span> <span class="id" title="var">sq</span> <span class="id" title="var">cq</span> <span class="id" title="var">c</span> <span class="id" title="var">qq</span> <span class="id" title="var">r</span> <span class="id" title="var">n</span> <span class="id" title="var">e</span><br/> + (<span class="id" title="var">d</span> := <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivp_rec_loop"><span class="id" title="definition">redivp_rec_loop</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval"><span class="id" title="abbreviation">eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a>)<br/> + <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>),<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>)<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="redivp_rec_loopT_qf"><span class="id" title="lemma">redivp_rec_loopT_qf</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">sq</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">cq</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>)<br/> - (<span class="id" title="var">k</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <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.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">c</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">r</span>, <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#33a541e60bd4a3e4dd9e7ab58beb75d4"><span class="id" title="notation">[&&</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#33a541e60bd4a3e4dd9e7ab58beb75d4"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#33a541e60bd4a3e4dd9e7ab58beb75d4"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.redivp_rec_loopT_qf"><span class="id" title="lemma">redivp_rec_loopT_qf</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">sq</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">cq</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>)<br/> + (<span class="id" title="var">c</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b9d6728f52abb7d090bb2a83817306bd"><span class="id" title="notation">[&&</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b9d6728f52abb7d090bb2a83817306bd"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b9d6728f52abb7d090bb2a83817306bd"><span class="id" title="notation">]</span></a>)<br/> + (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#cq"><span class="id" title="variable">cq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="redivpT"><span class="id" title="definition">redivpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) <br/> - (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#isnull"><span class="id" title="definition">isnull</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">b</span> ⇒<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.field.closed_field.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 0<a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/> - <a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">sq</span> ⇒<br/> - <a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">sp</span> ⇒<br/> - <a class="idref" href="mathcomp.field.closed_field.html#lead_coefT"><span class="id" title="definition">lead_coefT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">lq</span> ⇒<br/> - <a class="idref" href="mathcomp.field.closed_field.html#redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lq"><span class="id" title="variable">lq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> 0 <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 0<a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sp"><span class="id" title="variable">sp</span></a><br/> - ) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><br/> - ) <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><br/> - ) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><br/> - ) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.redivpT"><span class="id" title="definition">redivpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">b</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a>0%<span class="id" title="var">T</span><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">sq</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">sp</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">lq</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lead_coefT"><span class="id" title="definition">lead_coefT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivp_rec_loopT"><span class="id" title="definition">redivp_rec_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sq"><span class="id" title="variable">sq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lq"><span class="id" title="variable">lq</span></a> 0 <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a>0%<span class="id" title="var">T</span><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sp"><span class="id" title="variable">sp</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="redivp_rec_loopP"><span class="id" title="lemma">redivp_rec_loopP</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">c</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.redivp_rec"><span class="id" title="definition">redivp_rec</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#redivp_rec_loop"><span class="id" title="definition">redivp_rec_loop</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</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.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.redivp_rec_loopP"><span class="id" title="lemma">redivp_rec_loopP</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">c</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">qq</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) :<br/> + <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.redivp_rec"><span class="id" title="definition">redivp_rec</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivp_rec_loop"><span class="id" title="definition">redivp_rec_loop</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</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.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="redivpTP"><span class="id" title="lemma">redivpTP</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#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">c</span> <span class="id" title="var">qq</span> <span class="id" title="var">r</span> <span class="id" title="var">e</span>, <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a><a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a><a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">e</span> (<span class="id" title="var">d</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.redivp"><span class="id" title="definition">redivp</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)),<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a><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.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="redivpT_qf"><span class="id" title="lemma">redivpT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">r</span>, <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#33a541e60bd4a3e4dd9e7ab58beb75d4"><span class="id" title="notation">[&&</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#33a541e60bd4a3e4dd9e7ab58beb75d4"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#33a541e60bd4a3e4dd9e7ab58beb75d4"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.redivpTP"><span class="id" title="lemma">redivpTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">c</span> <span class="id" title="var">qq</span> <span class="id" title="var">r</span> <span class="id" title="var">e</span>,<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a><a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a><a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#c"><span class="id" title="variable">c</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">e</span> (<span class="id" title="var">d</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.redivp"><span class="id" title="definition">redivp</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)),<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="rmodpT"><span class="id" title="definition">rmodpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">d</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="rdivpT"><span class="id" title="definition">rdivpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">k</span>:<a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">d</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="rscalpT"><span class="id" title="definition">rscalpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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#nat"><span class="id" title="inductive">nat</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.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">d</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1.1</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="rdvdpT"><span class="id" title="definition">rdvdpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</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#bool"><span class="id" title="inductive">bool</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#rmodpT"><span class="id" title="definition">rmodpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.redivpT_qf"><span class="id" title="lemma">redivpT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b9d6728f52abb7d090bb2a83817306bd"><span class="id" title="notation">[&&</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b9d6728f52abb7d090bb2a83817306bd"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b9d6728f52abb7d090bb2a83817306bd"><span class="id" title="notation">]</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="rgcdp_loop"><span class="id" title="definition">rgcdp_loop</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">pp</span> <span class="id" title="var">qq</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>} :=<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.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pp"><span class="id" title="variable">pp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</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">else</span></a> <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#rgcdp_loop"><span class="id" title="definition">rgcdp_loop</span></a> <span class="id" title="var">n1</span> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pp"><span class="id" title="variable">pp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>)<br/> - <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pp"><span class="id" title="variable">pp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.rmodpT"><span class="id" title="definition">rmodpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">d</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.rdivpT"><span class="id" title="definition">rdivpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">d</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.rscalpT"><span class="id" title="definition">rscalpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a> :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">d</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.redivpT"><span class="id" title="definition">redivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1.1</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.rdvdpT"><span class="id" title="definition">rdvdpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#bool"><span class="id" title="inductive">bool</span></a> :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">d</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rmodpT"><span class="id" title="definition">rmodpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a>.<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> (<span class="id" title="var">pp</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) <span class="id" title="var">n</span> (<span class="id" title="var">qq</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#rmodpT"><span class="id" title="definition">rmodpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pp"><span class="id" title="variable">pp</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#isnull"><span class="id" title="definition">isnull</span></a> <br/> - (<span class="id" title="keyword">fun</span> <span class="id" title="var">b</span> ⇒ <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.field.closed_field.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">)</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">else</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">(</span></a><span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <br/> - <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#rmodpT"><span class="id" title="definition">rmodpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pp"><span class="id" title="variable">pp</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <span class="id" title="var">n1</span>) <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <br/> - <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#rmodpT"><span class="id" title="definition">rmodpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pp"><span class="id" title="variable">pp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">)</span></a><br/> - )<br/> - ) <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a>.<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.rgcdp_loop"><span class="id" title="definition">rgcdp_loop</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">pp</span> <span class="id" title="var">qq</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) {<span class="id" title="keyword">struct</span> <span class="id" title="var">n</span>} :=<br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">rr</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rmodp"><span class="id" title="definition">rmodp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pp"><span class="id" title="variable">pp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <span class="id" title="tactic">in</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rr"><span class="id" title="variable">rr</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a> <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#rgcdp_loop"><span class="id" title="definition">rgcdp_loop</span></a> <span class="id" title="var">n1</span> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rr"><span class="id" title="variable">rr</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#rr"><span class="id" title="variable">rr</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgcdp_loopP"><span class="id" title="lemma">rgcdp_loopP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <span class="id" title="keyword">∀</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">e</span>, <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.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/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdp_loop"><span class="id" title="definition">rgcdp_loop</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)))).<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">pp</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">qq</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">rr</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rmodpT"><span class="id" title="definition">rmodpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pp"><span class="id" title="variable">pp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">nrr</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rr"><span class="id" title="variable">rr</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#nrr"><span class="id" title="variable">nrr</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a> <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n1</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <span class="id" title="var">n1</span> <a class="idref" href="mathcomp.field.closed_field.html#qq"><span class="id" title="variable">qq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rr"><span class="id" title="variable">rr</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rr"><span class="id" title="variable">rr</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgcdp_loopT_qf"><span class="id" title="lemma">rgcdp_loopT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">r</span>, <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <br/> - <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgcdp_loopP"><span class="id" title="lemma">rgcdp_loopP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <span class="id" title="keyword">∀</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">e</span>,<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdp_loop"><span class="id" title="definition">rgcdp_loop</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)))).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="rgcdpT"><span class="id" title="definition">rgcdpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) <span class="id" title="var">k</span> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">aux</span> <span class="id" title="var">p1</span> <span class="id" title="var">k</span> <span class="id" title="var">q1</span> := <a class="idref" href="mathcomp.field.closed_field.html#isnull"><span class="id" title="definition">isnull</span></a> <br/> - (<span class="id" title="keyword">fun</span> <span class="id" title="var">b</span> ⇒ <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.field.closed_field.html#b"><span class="id" title="variable">b</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">then</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">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q1"><span class="id" title="variable">q1</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">)</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">else</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">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">n</span> ⇒ (<a class="idref" href="mathcomp.field.closed_field.html#rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q1"><span class="id" title="variable">q1</span></a>)) <a class="idref" href="mathcomp.field.closed_field.html#p1"><span class="id" title="variable">p1</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">)</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#p1"><span class="id" title="variable">p1</span></a><br/> - <span class="id" title="tactic">in</span> (<a class="idref" href="mathcomp.field.closed_field.html#lt_sizeT"><span class="id" title="definition">lt_sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">b</span> ⇒ <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.field.closed_field.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#aux"><span class="id" title="variable">aux</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#aux"><span class="id" title="variable">aux</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">)</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgcdp_loopT_qf"><span class="id" title="lemma">rgcdp_loopT_qf</span></a> (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgcdpTP"><span class="id" title="lemma">rgcdpTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.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/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgcdp"><span class="id" title="definition">rgcdp</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)))).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.rgcdpT"><span class="id" title="definition">rgcdpT</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> :=<br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">aux</span> <span class="id" title="var">p1</span> <span class="id" title="var">q1</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">b</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q1"><span class="id" title="variable">q1</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdp_loopT"><span class="id" title="definition">rgcdp_loopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p1"><span class="id" title="variable">p1</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q1"><span class="id" title="variable">q1</span></a> <span class="id" title="tactic">in</span><br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">b</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lt_sizeT"><span class="id" title="definition">lt_sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#aux"><span class="id" title="variable">aux</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.field.closed_field.html#aux"><span class="id" title="variable">aux</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgcdpT_qf"><span class="id" title="lemma">rgcdpT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">r</span>, <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgcdpTP"><span class="id" title="lemma">rgcdpTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgcdp"><span class="id" title="definition">rgcdp</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)))).<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> <span class="id" title="var">k</span> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">p</span><a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a><span class="id" title="var">pr</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <span class="id" title="var">p</span> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <span class="id" title="var">pr</span> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 0<a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgcdpT_qf"><span class="id" title="lemma">rgcdpT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgcdpTsP"><span class="id" title="lemma">rgcdpTsP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) : <br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <span class="id" title="keyword">∀</span> <span class="id" title="var">ps</span> <span class="id" title="var">e</span>, <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>) <a 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/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">[</span></a>@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgcdp"><span class="id" title="definition">rgcdp</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a>0<a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a>))).<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.cps"><span class="id" title="abbreviation">cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> :=<br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">p</span> <a class="idref" href="mathcomp.ssreflect.seq.html#407cde5b61fbf27196d1a7c5a475e083"><span class="id" title="notation">::</span></a> <span class="id" title="var">pr</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">pr</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> <span class="id" title="var">pr</span><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <span class="id" title="var">p</span> <a class="idref" href="mathcomp.field.closed_field.html#pr"><span class="id" title="variable">pr</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a>0%<span class="id" title="var">T</span><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a>.<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="rseq_poly"><span class="id" title="definition">rseq_poly</span></a> <span class="id" title="var">ps</span> := <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgcdpTsP"><span class="id" title="lemma">rgcdpTsP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <span class="id" title="keyword">∀</span> <span class="id" title="var">ps</span> <span class="id" title="var">e</span>,<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">[</span></a>@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgcdp"><span class="id" title="definition">rgcdp</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">/</span></a>0<a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">)</span></a>))).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgcdpTs_qf"><span class="id" title="lemma">rgcdpTs_qf</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">r</span>, <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rseq_poly"><span class="id" title="definition">rseq_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgcdpTs_qf"><span class="id" title="lemma">rgcdpTs_qf</span></a> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :<br/> + <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>).<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) <span class="id" title="var">k</span> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) <span class="id" title="var">n</span> :=<br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">m</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span><br/> - <a class="idref" href="mathcomp.field.closed_field.html#rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">sd</span> ⇒<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.field.closed_field.html#sd"><span class="id" title="variable">sd</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</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">else</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rdivpT"><span class="id" title="definition">rdivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">r</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <span class="id" title="var">m</span>)) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><br/> - )) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><br/> - <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#isnull"><span class="id" title="definition">isnull</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">b</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> <a class="idref" href="mathcomp.field.closed_field.html#b"><span class="id" title="variable">b</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.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>.<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> + <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">m</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span><br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">g</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdpT"><span class="id" title="definition">rgcdpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">sg</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sg"><span class="id" title="variable">sg</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">r</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rdivpT"><span class="id" title="definition">rdivpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <span class="id" title="var">m</span> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a><br/> + <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">b</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.isnull"><span class="id" title="definition">isnull</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4ce27ef85740ec20828e07c70791cf75"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4ce27ef85740ec20828e07c70791cf75"><span class="id" title="notation">R</span></a>%<span class="id" title="var">T</span><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgdcop_recTP"><span class="id" title="lemma">rgdcop_recTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) : <br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a><br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">n</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>) <br/> - <a class="idref" href="http://coq.inria.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#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgdcop_rec"><span class="id" title="definition">rgdcop_rec</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>))).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgdcop_recTP"><span class="id" title="lemma">rgdcop_recTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">n</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>)<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgdcop_rec"><span class="id" title="definition">rgdcop_rec</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>))).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgdcop_recT_qf"><span class="id" title="lemma">rgdcop_recT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">r</span>, <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <br/> - <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgdcop_recT_qf"><span class="id" title="lemma">rgdcop_recT_qf</span></a> (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="rgdcopT"><span class="id" title="definition">rgdcopT</span></a> <span class="id" title="var">q</span> <span class="id" title="var">k</span> <span class="id" title="var">p</span> := <a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.rgdcopT"><span class="id" title="definition">rgdcopT</span></a> <span class="id" title="var">q</span> <span class="id" title="var">p</span> := <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">sp</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgdcop_recT"><span class="id" title="definition">rgdcop_recT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#sp"><span class="id" title="variable">sp</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgdcopTP"><span class="id" title="lemma">rgdcopTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) : <br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> - <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgdcopT"><span class="id" title="definition">rgdcopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.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/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgdcop"><span class="id" title="definition">rgdcop</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)))).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgdcopTP"><span class="id" title="lemma">rgdcopTP</span></a> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>)))<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">e</span>, <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgdcopT"><span class="id" title="definition">rgdcopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.lift"><span class="id" title="definition">lift</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgdcop"><span class="id" title="definition">rgdcop</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)))).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rgdcopT_qf"><span class="id" title="lemma">rgdcopT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.formula"><span class="id" title="inductive">formula</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">r</span>, <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#r"><span class="id" title="variable">r</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgdcopT"><span class="id" title="definition">rgdcopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rgdcopT_qf"><span class="id" title="lemma">rgdcopT_qf</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_cps"><span class="id" title="definition">qf_cps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgdcopT"><span class="id" title="definition">rgdcopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="ex_elim_seq"><span class="id" title="definition">ex_elim_seq</span></a> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :=<br/> - (<a class="idref" href="mathcomp.field.closed_field.html#rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#rgdcopT"><span class="id" title="definition">rgdcopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#sizeT"><span class="id" title="definition">sizeT</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">n</span> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Bool"><span class="id" title="constructor">Bool</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 1%<span class="id" title="var">N</span>)))) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.ex_elim_seq"><span class="id" title="definition">ex_elim_seq</span></a> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.fF"><span class="id" title="abbreviation">fF</span></a> :=<br/> + (<a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">g</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgcdpTs"><span class="id" title="definition">rgcdpTs</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">d</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rgdcopT"><span class="id" title="definition">rgdcopT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.closed_field.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a><br/> + <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">let</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sizeT"><span class="id" title="definition">sizeT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.field.closed_field.html#9aa131ff55a792756fd3ade7420bfe48"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ret"><span class="id" title="definition">ret</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 1%<span class="id" title="var">N</span>)) <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Bool"><span class="id" title="constructor">GRing.Bool</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="ex_elim_seqP"><span class="id" title="lemma">ex_elim_seqP</span></a> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">gp</span> := (<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">[</span></a>@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgcdp"><span class="id" title="definition">rgcdp</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a>0<a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">(</span></a><span class="id" title="var">p</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a>) <span class="id" title="tactic">in</span><br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.qf_eval"><span class="id" title="definition">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ex_elim_seq"><span class="id" title="definition">ex_elim_seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgdcop"><span class="id" title="definition">rgdcop</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#gp"><span class="id" title="variable">gp</span></a>) <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 1%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.ex_elim_seqP"><span class="id" title="lemma">ex_elim_seqP</span></a> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">gp</span> := (<a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">[</span></a>@<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgcdp"><span class="id" title="definition">rgcdp</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">/</span></a>0<a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">(</span></a><span class="id" title="var">p</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">)</span></a>) <span class="id" title="tactic">in</span><br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ex_elim_seq"><span class="id" title="definition">ex_elim_seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Ring.rgdcop"><span class="id" title="definition">rgdcop</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#gp"><span class="id" title="variable">gp</span></a>) <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 1%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="ex_elim_seq_qf"><span class="id" title="lemma">ex_elim_seq_qf</span></a> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#polyF"><span class="id" title="definition">polyF</span></a>) :<br/> - <a class="idref" href="mathcomp.field.closed_field.html#rseq_poly"><span class="id" title="definition">rseq_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ex_elim_seq"><span class="id" title="definition">ex_elim_seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.ex_elim_seq_qf"><span class="id" title="lemma">ex_elim_seq_qf</span></a> (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) (<span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.polyF"><span class="id" title="definition">polyF</span></a>) :<br/> + <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ex_elim_seq"><span class="id" title="definition">ex_elim_seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>).<br/> <br/> -<span class="id" title="keyword">Fixpoint</span> <a name="abstrX"><span class="id" title="definition">abstrX</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :=<br/> +<span class="id" title="keyword">Fixpoint</span> <a name="ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) :=<br/> <span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <span class="id" title="keyword">with</span><br/> - | (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Var"><span class="id" title="constructor">Var</span></a> <span class="id" title="var">n</span>) ⇒ <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</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> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#b2d6f6eec274c9f9919a378a42b5b183"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 0<a class="idref" href="mathcomp.ssreflect.seq.html#b2d6f6eec274c9f9919a378a42b5b183"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 1<a class="idref" href="mathcomp.ssreflect.seq.html#b2d6f6eec274c9f9919a378a42b5b183"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a><br/> - | (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Opp"><span class="id" title="constructor">Opp</span></a> <span class="id" title="var">x</span>) ⇒ <a class="idref" href="mathcomp.field.closed_field.html#opppT"><span class="id" title="definition">opppT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>)<br/> - | (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Add"><span class="id" title="constructor">Add</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span>) ⇒ <a class="idref" href="mathcomp.field.closed_field.html#sumpT"><span class="id" title="definition">sumpT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>) (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">y</span>)<br/> - | (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">Mul</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span>) ⇒ <a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>) (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">y</span>)<br/> - | (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.NatMul"><span class="id" title="constructor">NatMul</span></a> <span class="id" title="var">x</span> <span class="id" title="var">n</span>) ⇒ <a class="idref" href="mathcomp.field.closed_field.html#natmulpT"><span class="id" title="definition">natmulpT</span></a> <span class="id" title="var">n</span> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>)<br/> - | (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Exp"><span class="id" title="constructor">Exp</span></a> <span class="id" title="var">x</span> <span class="id" title="var">n</span>) ⇒ <span class="id" title="keyword">let</span> <span class="id" title="var">ax</span> := (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>) <span class="id" title="tactic">in</span><br/> - <a class="idref" href="mathcomp.ssreflect.ssrnat.html#iter"><span class="id" title="definition">iter</span></a> <span class="id" title="var">n</span> (<a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ax"><span class="id" title="variable">ax</span></a>) <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 1<a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a><br/> - | <span class="id" title="var">_</span> ⇒ <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a><br/> - <span class="id" title="keyword">end</span>.<br/> + | <a class="idref" href="mathcomp.algebra.ssralg.html#4469cceefa45bf6eb9c3a2c83154c5db"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4469cceefa45bf6eb9c3a2c83154c5db"><span class="id" title="notation">X_n</span></a> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#9e9281397dab83046645f1b62dbb2487"><span class="id" title="notation">[::</span></a>0<a class="idref" href="mathcomp.ssreflect.seq.html#9e9281397dab83046645f1b62dbb2487"><span class="id" title="notation">;</span></a> 1<a class="idref" href="mathcomp.ssreflect.seq.html#9e9281397dab83046645f1b62dbb2487"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a><br/> + | <a class="idref" href="mathcomp.algebra.ssralg.html#e17e96c7b2b76669d2df8ffe5474ae56"><span class="id" title="notation">-</span></a> <span class="id" title="var">x</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.opppT"><span class="id" title="definition">opppT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>)<br/> + | <span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#c58c2dd0f0bcaa7496089cb3d706fa33"><span class="id" title="notation">+</span></a> <span class="id" title="var">y</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.sumpT"><span class="id" title="definition">sumpT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>) (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">y</span>)<br/> + | <span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0f66e0377386facac088dbe9d64fe464"><span class="id" title="notation">×</span></a> <span class="id" title="var">y</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>) (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">y</span>)<br/> + | <span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#494fad3691a494dda8171ded2aab3af2"><span class="id" title="notation">*+</span></a> <span class="id" title="var">n</span> ⇒ <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.natmulpT"><span class="id" title="definition">natmulpT</span></a> <span class="id" title="var">n</span> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>)<br/> + | <span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#97a215ca9363e5673a28657d47b8e8e5"><span class="id" title="notation">^+</span></a> <span class="id" title="var">n</span> ⇒ <span class="id" title="keyword">let</span> <span class="id" title="var">ax</span> := (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">x</span>) <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#iter"><span class="id" title="definition">iter</span></a> <span class="id" title="var">n</span> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ax"><span class="id" title="variable">ax</span></a>) <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a>1<a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a><br/> + | <span class="id" title="var">_</span> ⇒ <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a><br/> + <span class="id" title="keyword">end</span>%<span class="id" title="var">T</span>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="abstrXP"><span class="id" title="lemma">abstrXP</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>)<a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">eval</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0 <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.abstrXP"><span class="id" title="lemma">abstrXP</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) :<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>)<a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval"><span class="id" title="abbreviation">eval</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0 <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rabstrX"><span class="id" title="lemma">rabstrX</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</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.field.closed_field.html#rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rabstrX"><span class="id" title="lemma">rabstrX</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">t</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a>).<br/> <br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">tx</span> <span class="id" title="var">ty</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>.<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">tx</span> <span class="id" title="var">ty</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="abstrX_mulM"><span class="id" title="lemma">abstrX_mulM</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">Mul</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">>-></span></a> <a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.abstrX_mulM"><span class="id" title="lemma">abstrX_mulM</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0f66e0377386facac088dbe9d64fe464"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">>-></span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">}</span></a>%<span class="id" title="var">T</span>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="abstrX1"><span class="id" title="lemma">abstrX1</span></a> (<span class="id" title="var">i</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.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 1) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 1<a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.abstrX1"><span class="id" title="lemma">abstrX1</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> 1%<span class="id" title="var">T</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a>1%<span class="id" title="var">T</span><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="eval_poly_mulM"><span class="id" title="lemma">eval_poly_mulM</span></a> <span class="id" title="var">e</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.closed_field.html#mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">>-></span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.mul"><span class="id" title="definition">mul</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.eval_poly_mulM"><span class="id" title="lemma">eval_poly_mulM</span></a> <span class="id" title="var">e</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.mulpT"><span class="id" title="definition">mulpT</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">>-></span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.closed_field.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#40d800f6f36c47cb5f4f2f42555867a8"><span class="id" title="notation">}</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="eval_poly1"><span class="id" title="lemma">eval_poly1</span></a> <span class="id" title="var">e</span> : <a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 1<a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><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> 1.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.eval_poly1"><span class="id" title="lemma">eval_poly1</span></a> <span class="id" title="var">e</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">[::</span></a>1%<span class="id" title="var">T</span><a class="idref" href="mathcomp.ssreflect.seq.html#506674b18256ef8f50efed43fa1dfd7d"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1.<br/> <br/> -<span class="id" title="keyword">Notation</span> <a name="abstrX_bigmul"><span class="id" title="abbreviation">abstrX_bigmul</span></a> := (<a class="idref" href="mathcomp.ssreflect.bigop.html#big_morph"><span class="id" title="lemma">big_morph</span></a> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX_mulM"><span class="id" title="lemma">abstrX_mulM</span></a> <span class="id" title="var">_</span>) (<a class="idref" href="mathcomp.field.closed_field.html#abstrX1"><span class="id" title="lemma">abstrX1</span></a> <span class="id" title="var">_</span>)).<br/> -<span class="id" title="keyword">Notation</span> <a name="eval_bigmul"><span class="id" title="abbreviation">eval_bigmul</span></a> := (<a class="idref" href="mathcomp.ssreflect.bigop.html#big_morph"><span class="id" title="lemma">big_morph</span></a> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly_mulM"><span class="id" title="lemma">eval_poly_mulM</span></a> <span class="id" title="var">_</span>) (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly1"><span class="id" title="lemma">eval_poly1</span></a> <span class="id" title="var">_</span>)).<br/> -<span class="id" title="keyword">Notation</span> <a name="bigmap_id"><span class="id" title="abbreviation">bigmap_id</span></a> := (<a class="idref" href="mathcomp.ssreflect.bigop.html#big_map"><span class="id" title="lemma">big_map</span></a> <span class="id" title="var">_</span> (<span class="id" title="keyword">fun</span> <span class="id" title="var">_</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#true"><span class="id" title="constructor">true</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a>).<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.abstrX_bigmul"><span class="id" title="abbreviation">abstrX_bigmul</span></a> := (<a class="idref" href="mathcomp.ssreflect.bigop.html#big_morph"><span class="id" title="lemma">big_morph</span></a> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX_mulM"><span class="id" title="lemma">abstrX_mulM</span></a> <span class="id" title="var">_</span>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX1"><span class="id" title="lemma">abstrX1</span></a> <span class="id" title="var">_</span>)).<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.eval_bigmul"><span class="id" title="abbreviation">eval_bigmul</span></a> := (<a class="idref" href="mathcomp.ssreflect.bigop.html#big_morph"><span class="id" title="lemma">big_morph</span></a> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly_mulM"><span class="id" title="lemma">eval_poly_mulM</span></a> <span class="id" title="var">_</span>) (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly1"><span class="id" title="lemma">eval_poly1</span></a> <span class="id" title="var">_</span>)).<br/> +<span class="id" title="keyword">Notation</span> <a name="ClosedFieldQE.bigmap_id"><span class="id" title="abbreviation">bigmap_id</span></a> := (<a class="idref" href="mathcomp.ssreflect.bigop.html#big_map"><span class="id" title="lemma">big_map</span></a> <span class="id" title="var">_</span> (<span class="id" title="keyword">fun</span> <span class="id" title="var">_</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#true"><span class="id" title="constructor">true</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="rseq_poly_map"><span class="id" title="lemma">rseq_poly_map</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">ts</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>)) :<br/> - <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <span class="id" title="var">_</span>) <a class="idref" href="mathcomp.field.closed_field.html#ts"><span class="id" title="variable">ts</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.field.closed_field.html#rseq_poly"><span class="id" title="definition">rseq_poly</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#ts"><span class="id" title="variable">ts</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.rseq_poly_map"><span class="id" title="lemma">rseq_poly_map</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">ts</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) :<br/> + <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (@<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <span class="id" title="var">_</span>) <a class="idref" href="mathcomp.field.closed_field.html#ts"><span class="id" title="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rpoly"><span class="id" title="definition">rpoly</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#ts"><span class="id" title="variable">ts</span></a>).<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="ex_elim"><span class="id" title="definition">ex_elim</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">pqs</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</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.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>)) :=<br/> - <a class="idref" href="mathcomp.field.closed_field.html#ex_elim_seq"><span class="id" title="definition">ex_elim_seq</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#pqs"><span class="id" title="variable">pqs</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/> - (<a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">Mul</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">Const</span></a> 1<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">(</span></a><span class="id" title="var">q</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pqs"><span class="id" title="variable">pqs</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)).<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.ex_elim"><span class="id" title="definition">ex_elim</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">pqs</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><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.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) :=<br/> + <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ex_elim_seq"><span class="id" title="definition">ex_elim_seq</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#pqs"><span class="id" title="variable">pqs</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a>)<br/> + (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Mul"><span class="id" title="constructor">GRing.Mul</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">/</span></a>1%<span class="id" title="var">T</span><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">(</span></a><span class="id" title="var">q</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pqs"><span class="id" title="variable">pqs</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#93a42d9430a115f2544a09cba4cf05ca"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a>)).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="ex_elim_qf"><span class="id" title="lemma">ex_elim_qf</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">pqs</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</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.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>)) : <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.dnf_rterm"><span class="id" title="definition">dnf_rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pqs"><span class="id" title="variable">pqs</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.field.closed_field.html#qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ex_elim"><span class="id" title="definition">ex_elim</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pqs"><span class="id" title="variable">pqs</span></a>).<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.ex_elim_qf"><span class="id" title="lemma">ex_elim_qf</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">pqs</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><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.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) :<br/> + <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.dnf_rterm"><span class="id" title="definition">GRing.dnf_rterm</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pqs"><span class="id" title="variable">pqs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.qf"><span class="id" title="abbreviation">qf</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ex_elim"><span class="id" title="definition">ex_elim</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.closed_field.html#pqs"><span class="id" title="variable">pqs</span></a>).<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="holds_conj"><span class="id" title="lemma">holds_conj</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">e</span> <span class="id" title="var">i</span> <span class="id" title="var">x</span> <span class="id" title="var">ps</span>, <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <span class="id" title="var">_</span>) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</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.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.holds"><span class="id" title="definition">holds</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0 <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) (<a class="idref" href="mathcomp.ssreflect.seq.html#foldr"><span class="id" title="definition">foldr</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">t</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.And"><span class="id" title="constructor">And</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#9cd193463422c398e84dc63b7a4a91e1"><span class="id" title="notation">==</span></a> 0)) <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.True"><span class="id" title="abbreviation">True</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>)<br/> - <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#df1ced36fc33ce188051218bca314374"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</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.poly.html#root"><span class="id" title="definition">root</span></a> <span class="id" title="var">_</span><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.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</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/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.holds_conj"><span class="id" title="lemma">holds_conj</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">e</span> <span class="id" title="var">i</span> <span class="id" title="var">x</span> <span class="id" title="var">ps</span>, <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (@<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <span class="id" title="var">_</span>) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.holds"><span class="id" title="definition">GRing.holds</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0 <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>)<br/> + (<a class="idref" href="mathcomp.ssreflect.seq.html#foldr"><span class="id" title="definition">foldr</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">t</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.And"><span class="id" title="constructor">GRing.And</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8ba71119b4b4369b5eb5b6037f9b1b72"><span class="id" title="notation">==</span></a> 0)) <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.True"><span class="id" title="abbreviation">GRing.True</span></a>%<span class="id" title="var">T</span> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>)<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#d89396f990d6b54d736cfe259e498cf4"><span class="id" title="notation">(</span></a>@<a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <span class="id" title="var">_</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#d89396f990d6b54d736cfe259e498cf4"><span class="id" title="notation">)^~</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="holds_conjn"><span class="id" title="lemma">holds_conjn</span></a> (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a>)) :<br/> - <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.rterm"><span class="id" title="definition">rterm</span></a> <span class="id" title="var">_</span>) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</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.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.holds"><span class="id" title="definition">holds</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0 <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) (<a class="idref" href="mathcomp.ssreflect.seq.html#foldr"><span class="id" title="definition">foldr</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">t</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.term"><span class="id" title="inductive">term</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.F"><span class="id" title="variable">F</span></a> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.And"><span class="id" title="constructor">And</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e55bf22d80797140224ba2d3a71d012f"><span class="id" title="notation">!=</span></a> 0)) <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.True"><span class="id" title="abbreviation">True</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#df1ced36fc33ce188051218bca314374"><span class="id" title="notation">↔</span></a> <br/> - <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">p</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a><a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.field.closed_field.html#abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</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/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.holds_conjn"><span class="id" title="lemma">holds_conjn</span></a> (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE.F"><span class="id" title="variable">F</span></a>) (<span class="id" title="var">ps</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a>) :<br/> + <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (@<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.rterm"><span class="id" title="abbreviation">rterm</span></a> <span class="id" title="var">_</span>) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.holds"><span class="id" title="definition">GRing.holds</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0 <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>)<br/> + (<a class="idref" href="mathcomp.ssreflect.seq.html#foldr"><span class="id" title="definition">foldr</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">t</span> : <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.tF"><span class="id" title="abbreviation">tF</span></a> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.And"><span class="id" title="constructor">GRing.And</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ce954c803c52ae7afaee301d1d68e733"><span class="id" title="notation">!=</span></a> 0)) <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.True"><span class="id" title="abbreviation">GRing.True</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a><br/> + <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">p</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b3ebd0deddd84fd60e149cb5ef719351"><span class="id" title="notation">~~</span></a><a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.closed_field.html#x"><span class="id" title="variable">x</span></a>) (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> (<a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.eval_poly"><span class="id" title="definition">eval_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.abstrX"><span class="id" title="definition">abstrX</span></a> <a class="idref" href="mathcomp.field.closed_field.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#ps"><span class="id" title="variable">ps</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="holds_ex_elim"><span class="id" title="lemma">holds_ex_elim</span></a>: <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.valid_QE_proj"><span class="id" title="definition">GRing.valid_QE_proj</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ex_elim"><span class="id" title="definition">ex_elim</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.holds_ex_elim"><span class="id" title="lemma">holds_ex_elim</span></a>: <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.valid_QE_proj"><span class="id" title="definition">GRing.valid_QE_proj</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ex_elim"><span class="id" title="definition">ex_elim</span></a>.<br/> <br/> -<span class="id" title="keyword">Lemma</span> <a name="wf_ex_elim"><span class="id" title="lemma">wf_ex_elim</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.wf_QE_proj"><span class="id" title="definition">GRing.wf_QE_proj</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ex_elim"><span class="id" title="definition">ex_elim</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="ClosedFieldQE.wf_ex_elim"><span class="id" title="lemma">wf_ex_elim</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.wf_QE_proj"><span class="id" title="definition">GRing.wf_QE_proj</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ex_elim"><span class="id" title="definition">ex_elim</span></a>.<br/> <br/> -<span class="id" title="keyword">Definition</span> <a name="closed_fields_QEMixin"><span class="id" title="definition">closed_fields_QEMixin</span></a> := <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.QEdecFieldMixin"><span class="id" title="definition">QEdecFieldMixin</span></a> <a class="idref" href="mathcomp.field.closed_field.html#wf_ex_elim"><span class="id" title="lemma">wf_ex_elim</span></a> <a class="idref" href="mathcomp.field.closed_field.html#holds_ex_elim"><span class="id" title="lemma">holds_ex_elim</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ClosedFieldQE.Mixin"><span class="id" title="definition">Mixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#QEdecFieldMixin"><span class="id" title="abbreviation">QEdecFieldMixin</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.wf_ex_elim"><span class="id" title="lemma">wf_ex_elim</span></a> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.holds_ex_elim"><span class="id" title="lemma">holds_ex_elim</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE.ClosedFieldQE"><span class="id" title="section">ClosedFieldQE</span></a>.<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE"><span class="id" title="module">ClosedFieldQE</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="closed_field_QEMixin"><span class="id" title="abbreviation">closed_field_QEMixin</span></a> := <a class="idref" href="mathcomp.field.closed_field.html#Mixin"><span class="id" title="definition">ClosedFieldQE.Mixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">CodeSeq</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="countable_field_extension"><span class="id" title="lemma">countable_field_extension</span></a> (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.countalg.html#CountRing.Field.Exports.countFieldType"><span class="id" title="abbreviation">countFieldType</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) :<br/> + <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7f2a7ef2c63af7359b22787a9daf336e"><span class="id" title="notation">></span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">{</span></a><span class="id" title="var">E</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.countalg.html#CountRing.Field.Exports.countFieldType"><span class="id" title="abbreviation">countFieldType</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">{</span></a><span class="id" title="var">FtoE</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.field.closed_field.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">&</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">{</span></a><span class="id" title="var">w</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.closed_field.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.closed_field.html#FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.field.closed_field.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.field.closed_field.html#w"><span class="id" title="variable">w</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">&</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.closed_field.html#E"><span class="id" title="variable">E</span></a>, <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">∃</span></a> <span class="id" title="var">q</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.closed_field.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><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.field.closed_field.html#FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.field.closed_field.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.closed_field.html#w"><span class="id" title="variable">w</span></a><a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">}}</span></a>.<br/> <br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.closed_field.html#ClosedFieldQE"><span class="id" title="section">ClosedFieldQE</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="countable_algebraic_closure"><span class="id" title="lemma">countable_algebraic_closure</span></a> (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.countalg.html#CountRing.Field.Exports.countFieldType"><span class="id" title="abbreviation">countFieldType</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">{</span></a><span class="id" title="var">K</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.countalg.html#CountRing.ClosedField.Exports.countClosedFieldType"><span class="id" title="abbreviation">countClosedFieldType</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#6556914db359db999889decec6a4a562"><span class="id" title="notation">{</span></a><span class="id" title="var">FtoK</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#6556914db359db999889decec6a4a562"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.field.closed_field.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.closed_field.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#6556914db359db999889decec6a4a562"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> <a class="idref" href="mathcomp.field.closed_field.html#FtoK"><span class="id" title="variable">FtoK</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#6556914db359db999889decec6a4a562"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#cc5e56ba3765e2d6b17e66d19b966f1d"><span class="id" title="notation">}</span></a>.<br/> </div> </div> |
