aboutsummaryrefslogtreecommitdiff
path: root/docs/htmldoc/mathcomp.field.fieldext.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/htmldoc/mathcomp.field.fieldext.html')
-rw-r--r--docs/htmldoc/mathcomp.field.fieldext.html1279
1 files changed, 1279 insertions, 0 deletions
diff --git a/docs/htmldoc/mathcomp.field.fieldext.html b/docs/htmldoc/mathcomp.field.fieldext.html
new file mode 100644
index 0000000..878916d
--- /dev/null
+++ b/docs/htmldoc/mathcomp.field.fieldext.html
@@ -0,0 +1,1279 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="coqdoc.css" rel="stylesheet" type="text/css" />
+<title>mathcomp.field.fieldext</title>
+</head>
+
+<body>
+
+<div id="page">
+
+<div id="header">
+</div>
+
+<div id="main">
+
+<h1 class="libtitle">Library mathcomp.field.fieldext</h1>
+
+<div class="code">
+<span class="comment">(*&nbsp;(c)&nbsp;Copyright&nbsp;2006-2016&nbsp;Microsoft&nbsp;Corporation&nbsp;and&nbsp;Inria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>
+&nbsp;Distributed&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;CeCILL-B.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
+<span class="id" title="keyword">Require</span> <span class="id" title="keyword">Import</span> <a class="idref" href="mathcomp.ssreflect.ssreflect.html#"><span class="id" title="library">mathcomp.ssreflect.ssreflect</span></a>.<br/>
+
+<br/>
+</div>
+
+<div class="doc">
+<a name="lab30"></a><h1 class="section">Finite dimensional field extentions</h1>
+
+ fieldExtType F == the interface type for finite field extensions of F
+ it simply combines the fieldType and FalgType F
+ interfaces.
+ [fieldExtType F of L] == a fieldExt F structure for a type L that has both
+ FalgType F and fieldType canonical instances. The
+ field class instance must be manifest with explicit
+ comRing, idomain, and field mixins. If L has an
+ abstract field class should use the 'for' variant.
+ [fieldExtType F of L for K] == a fieldExtType F structure for a type L
+ that has an FalgType F canonical structure, given
+ a K : fieldType whose unitRingType projection
+ coincides with the canonical unitRingType for F.
+ {subfield L} == the type of subfields of L that are also extensions
+ of F; since we are in a finite dimensional setting
+ these are exactly the F-subalgebras of L, and
+ indeed {subfield L} is just display notation for
+ {aspace L} when L is an extFieldType.
+&gt; All aspace operations apply to {subfield L}, but there are several
+ additional lemmas and canonical instances specific to {subfield L}
+ spaces, e.g., subvs_of E is an extFieldType F when E : {subfield L}.
+&gt; Also note that not all constructive subfields have type {subfield E}
+ in the same way that not all constructive subspaces have type
+ {vspace E}. These types only include the so called "detachable"
+ subspaces (and subalgebras).
+
+<div class="paragraph"> </div>
+
+ (E :&amp;: F)%AS, (E * F)%AS == the intersection and product (meet and join)
+ of E and F as subfields.
+ subFExtend iota z p == Given a field morphism iota : F -&gt; L, this is a
+ type for the field F^iota(z) obtained by
+ adjoining z to the image of F in L under iota.
+ The construction requires a non-zero polynomial
+ p in F such that z is a root of p^iota; it
+ returns the field F^iota if this is not so.
+ However, p need not be irredicible.
+ subfx_inj x == The injection of F^iota(z) into L.
+ inj_subfx iota z p x == The injection of F into F^iota(z).
+ subfx_eval iota z p q == Given q : {poly F} returns q. [z] as a value of
+ type F^iota(z).
+ subfx_root iota z p == The generator of F^iota(z) over F.
+ SubFieldExtType pz0 irr_p == A fieldExtType F structure for F^iota(z)
+ (more precisely, subFExtend iota z p), given
+ proofs pz0: root (map_poly iota p) z and
+ irr_p : irreducible_poly p. The corresponding
+ vectType substructure (SubfxVectType pz0 irr_p)
+ has dimension (size p).-1 over F.
+ minPoly K x == the monic minimal polynomial of x over the
+ subfield K.
+ adjoin_degree K x == the degree of the minimial polynomial or the
+ dimension of K(x)/K.
+ Fadjoin_poly K x y == a polynomial p over K such that y = p. [x].
+
+<div class="paragraph"> </div>
+
+ fieldOver F == L, but with an extFieldType (subvs_of F)
+ structure, for F : {subfield L}
+ vspaceOver F V == the smallest subspace of fieldOver F containing
+ V; this coincides with V if V is an F-module.
+ baseFieldType L == L, but with an extFieldType F0 structure, when L
+ has a canonical extFieldType F structure and F
+ in turn has an extFieldType F0 structure.
+ baseVspace V == the subspace of baseFieldType L that coincides
+ with V : {vspace L}.
+&gt; Some caution must be exercised when using fieldOver and baseFieldType,
+ because these are convertible to L while carrying different Lmodule
+ structures. This means that the safeguards engineered in the ssralg
+ library that normally curb the Coq kernel's inclination to diverge are
+ no longer effectcive, so additional precautions should be taken when
+ matching or rewriting terms of the form a *: u, because Coq may take
+ forever to realize it's dealing with a *: in the wrong structure. The
+ baseField_scaleE and fieldOver_scaleE lemmas should be used to expand
+ or fold such "trans-structure" operations explicitly beforehand.
+</div>
+<div class="code">
+
+<br/>
+<span class="id" title="keyword">Set Implicit Arguments</span>.<br/>
+
+<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/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FieldExt"><span class="id" title="module">FieldExt</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FieldExt.FieldExt"><span class="id" title="section">FieldExt</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FieldExt.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">T</span> := <a name="FieldExt.Class"><span class="id" title="constructor">Class</span></a> {<br/>
+&nbsp;&nbsp;<a name="FieldExt.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.field.falgebra.html#Falgebra.class_of"><span class="id" title="record">Falgebra.class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#T"><span class="id" title="variable">T</span></a>;<br/>
+&nbsp;&nbsp;<a name="FieldExt.comm_ext"><span class="id" title="projection">comm_ext</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.mul"><span class="id" title="projection">Ring.mul</span></a> <a class="idref" href="mathcomp.field.fieldext.html#base"><span class="id" title="method">base</span></a>);<br/>
+&nbsp;&nbsp;<a name="FieldExt.idomain_ext"><span class="id" title="projection">idomain_ext</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.axiom"><span class="id" title="definition">IntegralDomain.axiom</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#base"><span class="id" title="method">base</span></a> <a class="idref" href="mathcomp.field.fieldext.html#T"><span class="id" title="variable">T</span></a>);<br/>
+&nbsp;&nbsp;<a name="FieldExt.field_ext"><span class="id" title="projection">field_ext</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.mixin_of"><span class="id" title="definition">Field.mixin_of</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#base"><span class="id" title="method">base</span></a> <a class="idref" href="mathcomp.field.fieldext.html#T"><span class="id" title="variable">T</span></a>)<br/>
+}.<br/>
+
+<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FieldExt.FieldExt.Bases"><span class="id" title="section">Bases</span></a>.<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FieldExt.FieldExt.Bases.T"><span class="id" title="variable">T</span></a> : <span class="id" title="keyword">Type</span>) (<a name="FieldExt.FieldExt.Bases.c"><span class="id" title="variable">c</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#T"><span class="id" title="variable">T</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.base1"><span class="id" title="definition">base1</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Class"><span class="id" title="constructor">ComRing.Class</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comm_ext"><span class="id" title="projection">comm_ext</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.c"><span class="id" title="variable">c</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.base2"><span class="id" title="definition">base2</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Class"><span class="id" title="constructor">ComUnitRing.Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base1"><span class="id" title="definition">base1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.c"><span class="id" title="variable">c</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.base3"><span class="id" title="definition">base3</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Class"><span class="id" title="constructor">IntegralDomain.Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base2"><span class="id" title="definition">base2</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.idomain_ext"><span class="id" title="projection">idomain_ext</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.c"><span class="id" title="variable">c</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.base4"><span class="id" title="definition">base4</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Class"><span class="id" title="constructor">Field.Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base3"><span class="id" title="definition">base3</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.field_ext"><span class="id" title="projection">field_ext</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases.c"><span class="id" title="variable">c</span></a>).<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.Bases"><span class="id" title="section">Bases</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FieldExt.type"><span class="id" title="record">type</span></a> (<span class="id" title="var">phR</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a>) := <a name="FieldExt.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FieldExt.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a>) (<a name="FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a> : <span class="id" title="keyword">Type</span>) (<a name="FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.type"><span class="id" title="record">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.pack"><span class="id" title="definition">pack</span></a> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">fun</span> (<span class="id" title="var">bT</span> : <a class="idref" href="mathcomp.field.falgebra.html#Falgebra.type"><span class="id" title="record">Falgebra.type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a>) <span class="id" title="var">b</span><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> (<a class="idref" href="mathcomp.field.falgebra.html#Falgebra.class"><span class="id" title="definition">Falgebra.class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#bT"><span class="id" title="variable">bT</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.falgebra.html#Falgebra.class_of"><span class="id" title="record">Falgebra.class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#bT"><span class="id" title="variable">bT</span></a>)<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.field.fieldext.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#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.falgebra.html#Falgebra.class_of"><span class="id" title="record">Falgebra.class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a>) ⇒<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">fun</span> <span class="id" title="var">mT</span> <span class="id" title="var">Cm</span> <span class="id" title="var">IDm</span> <span class="id" title="var">Fm</span> &amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.class"><span class="id" title="definition">Field.class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#mT"><span class="id" title="variable">mT</span></a>) (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Class"><span class="id" title="constructor">Field.Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Class"><span class="id" title="constructor">IntegralDomain.Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Class"><span class="id" title="constructor">ComUnitRing.Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Class"><span class="id" title="constructor">ComRing.Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.field.fieldext.html#Cm"><span class="id" title="variable">Cm</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#IDm"><span class="id" title="variable">IDm</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#Fm"><span class="id" title="variable">Fm</span></a>) ⇒ <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Cm"><span class="id" title="variable">Cm</span></a> <a class="idref" href="mathcomp.field.fieldext.html#IDm"><span class="id" title="variable">IDm</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fm"><span class="id" title="variable">Fm</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.pack_eta"><span class="id" title="definition">pack_eta</span></a> <span class="id" title="var">K</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">cK</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.class"><span class="id" title="definition">Field.class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <span class="id" title="tactic">in</span> <span class="id" title="keyword">let</span> <span class="id" title="var">Cm</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.mixin"><span class="id" title="projection">ComRing.mixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#cK"><span class="id" title="variable">cK</span></a> <span class="id" title="tactic">in</span><br/>
+&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">IDm</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.mixin"><span class="id" title="projection">IntegralDomain.mixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#cK"><span class="id" title="variable">cK</span></a> <span class="id" title="tactic">in</span> <span class="id" title="keyword">let</span> <span class="id" title="var">Fm</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.mixin"><span class="id" title="projection">Field.mixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#cK"><span class="id" title="variable">cK</span></a> <span class="id" title="tactic">in</span><br/>
+&nbsp;&nbsp;<span class="id" title="keyword">fun</span> (<span class="id" title="var">bT</span> : <a class="idref" href="mathcomp.field.falgebra.html#Falgebra.type"><span class="id" title="record">Falgebra.type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a>) <span class="id" title="var">b</span> &amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> (<a class="idref" href="mathcomp.field.falgebra.html#Falgebra.class"><span class="id" title="definition">Falgebra.class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#bT"><span class="id" title="variable">bT</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> ⇒<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">fun</span> <span class="id" title="var">cT_</span> &amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#cT_"><span class="id" title="variable">cT_</span></a> ⇒ @<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#cT_"><span class="id" title="variable">cT_</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Cm"><span class="id" title="variable">Cm</span></a> <a class="idref" href="mathcomp.field.fieldext.html#IDm"><span class="id" title="variable">IDm</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fm"><span class="id" title="variable">Fm</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.T"><span class="id" title="variable">T</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.unitRingType"><span class="id" title="definition">unitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.comRingType"><span class="id" title="definition">comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.idomainType"><span class="id" title="definition">idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.fieldType"><span class="id" title="definition">fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lmodType"><span class="id" title="definition">lmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lalgType"><span class="id" title="definition">lalgType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Pack"><span class="id" title="constructor">Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.algType"><span class="id" title="definition">algType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.Pack"><span class="id" title="constructor">Algebra.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitAlgebra.Pack"><span class="id" title="constructor">UnitAlgebra.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.vectType"><span class="id" title="definition">vectType</span></a> := @<a class="idref" href="mathcomp.algebra.vector.html#Vector.Pack"><span class="id" title="constructor">Vector.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.FalgType"><span class="id" title="definition">FalgType</span></a> := @<a class="idref" href="mathcomp.field.falgebra.html#Falgebra.Pack"><span class="id" title="constructor">Falgebra.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.Falg_comRingType"><span class="id" title="definition">Falg_comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.Falg_comUnitRingType"><span class="id" title="definition">Falg_comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.Falg_idomainType"><span class="id" title="definition">Falg_idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.Falg_fieldType"><span class="id" title="definition">Falg_fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.vect_comRingType"><span class="id" title="definition">vect_comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">vectType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.vect_comUnitRingType"><span class="id" title="definition">vect_comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">vectType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.vect_idomainType"><span class="id" title="definition">vect_idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">vectType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.vect_fieldType"><span class="id" title="definition">vect_fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">vectType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.unitAlg_comRingType"><span class="id" title="definition">unitAlg_comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.unitAlg_comUnitRingType"><span class="id" title="definition">unitAlg_comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.unitAlg_idomainType"><span class="id" title="definition">unitAlg_idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.unitAlg_fieldType"><span class="id" title="definition">unitAlg_fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.alg_comRingType"><span class="id" title="definition">alg_comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.alg_comUnitRingType"><span class="id" title="definition">alg_comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.alg_idomainType"><span class="id" title="definition">alg_idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.alg_fieldType"><span class="id" title="definition">alg_fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lalg_comRingType"><span class="id" title="definition">lalg_comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lalg_comUnitRingType"><span class="id" title="definition">lalg_comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lalg_idomainType"><span class="id" title="definition">lalg_idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lalg_fieldType"><span class="id" title="definition">lalg_fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lmod_comRingType"><span class="id" title="definition">lmod_comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lmod_comUnitRingType"><span class="id" title="definition">lmod_comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lmod_idomainType"><span class="id" title="definition">lmod_idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FieldExt.lmod_fieldType"><span class="id" title="definition">lmod_fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FieldExt"><span class="id" title="section">FieldExt</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FieldExt.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base"><span class="id" title="projection">Falgebra.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base4"><span class="id" title="definition">base4</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base4"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base4"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base4"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.base4"><span class="id" title="definition">Field.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.zmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.ringType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitRingType"><span class="id" title="definition">UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comRingType"><span class="id" title="definition">ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.comUnitRingType"><span class="id" title="definition">ComUnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.idomainType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.idomainType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.idomainType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.idomainType"><span class="id" title="definition">IntegralDomain.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">idomainType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.fieldType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.fieldType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.fieldType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.fieldType"><span class="id" title="definition">Field.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lmodType"><span class="id" title="definition">Lmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.lalgType"><span class="id" title="definition">Lalgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalgType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.algType"><span class="id" title="definition">Algebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">algType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.unitAlgType"><span class="id" title="definition">UnitAlgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitAlgType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">vectType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.vectType"><span class="id" title="definition">Vector.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vectType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">Falgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">FalgType</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Falg_comRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Falg_comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Falg_idomainType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Falg_fieldType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vect_comRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vect_comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vect_idomainType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vect_fieldType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitAlg_comRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitAlg_comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitAlg_idomainType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitAlg_fieldType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">alg_comRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">alg_comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">alg_idomainType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">alg_fieldType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalg_comRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalg_comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalg_idomainType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalg_fieldType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmod_comRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmod_comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmod_idomainType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmod_fieldType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FieldExt.Exports.fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <span class="id" title="var">R</span> := (<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.type"><span class="id" title="record">type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)).<br/>
+
+<br/>
+<span class="id" title="keyword">Notation</span> <a name="03c33b945f661e93f536291e742438c3"><span class="id" title="notation">&quot;</span></a>[ 'fieldExtType' F 'of' L ]" :=<br/>
+&nbsp;&nbsp;(@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">F</span>) <span class="id" title="var">L</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <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> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <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/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'fieldExtType' F 'of' L ]") : <span class="id" title="var">form_scope</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Notation</span> <a name="5f5a3c95feae5e889ef0ed2ea21bd611"><span class="id" title="notation">&quot;</span></a>[ 'fieldExtType' F 'of' L 'for' K ]" :=<br/>
+&nbsp;&nbsp;(@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.pack_eta"><span class="id" title="definition">pack_eta</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">F</span>) <span class="id" title="var">L</span> <span class="id" title="var">K</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <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> <span class="id" title="var">_</span> <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/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'fieldExtType' F 'of' L 'for' K ]") : <span class="id" title="var">form_scope</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Notation</span> <a name="da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">&quot;</span></a>{ 'subfield' L }" := (@<a class="idref" href="mathcomp.field.falgebra.html#aspace_of"><span class="id" title="definition">aspace_of</span></a> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.FalgType"><span class="id" title="definition">FalgType</span></a> <span class="id" title="var">_</span>) (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">L</span>))<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "{ 'subfield' L }") : <span class="id" title="var">type_scope</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExt"><span class="id" title="module">FieldExt</span></a>.<br/>
+<span class="id" title="keyword">Export</span> <span class="id" title="var">FieldExt.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">regular_fieldExtType</span> (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) := <a class="idref" href="mathcomp.field.fieldext.html#5f5a3c95feae5e889ef0ed2ea21bd611"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#5f5a3c95feae5e889ef0ed2ea21bd611"><span class="id" title="notation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#5f5a3c95feae5e889ef0ed2ea21bd611"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c2b6ed6fbc6f0b41c6ad09005b7580b6"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c2b6ed6fbc6f0b41c6ad09005b7580b6"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.field.fieldext.html#5f5a3c95feae5e889ef0ed2ea21bd611"><span class="id" title="notation">for</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#5f5a3c95feae5e889ef0ed2ea21bd611"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FieldExtTheory"><span class="id" title="section">FieldExtTheory</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FieldExtTheory.F0"><span class="id" title="variable">F0</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="FieldExtTheory.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F0"><span class="id" title="variable">F0</span></a>).<br/>
+<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">M</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">E</span> <span class="id" title="var">F</span> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="dim_cosetv"><span class="id" title="lemma">dim_cosetv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><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.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#U"><span class="id" title="variable">U</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="prodvC"><span class="id" title="lemma">prodvC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> (@<a class="idref" href="mathcomp.field.falgebra.html#prodv"><span class="id" title="definition">prodv</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">prodv_comoid</span> := <a class="idref" href="mathcomp.ssreflect.bigop.html#Monoid.ComLaw"><span class="id" title="constructor">Monoid.ComLaw</span></a> <a class="idref" href="mathcomp.field.fieldext.html#prodvC"><span class="id" title="lemma">prodvC</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="prodvCA"><span class="id" title="lemma">prodvCA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_commutative"><span class="id" title="definition">left_commutative</span></a> (@<a class="idref" href="mathcomp.field.falgebra.html#prodv"><span class="id" title="definition">prodv</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="prodvAC"><span class="id" title="lemma">prodvAC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_commutative"><span class="id" title="definition">right_commutative</span></a> (@<a class="idref" href="mathcomp.field.falgebra.html#prodv"><span class="id" title="definition">prodv</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="algid1"><span class="id" title="lemma">algid1</span></a> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.field.falgebra.html#algid"><span class="id" title="definition">algid</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1. <br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="mem1v"><span class="id" title="lemma">mem1v</span></a> <span class="id" title="var">K</span> : 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="sub1v"><span class="id" title="lemma">sub1v</span></a> <span class="id" title="var">K</span> : (1 <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>)%<span class="id" title="var">VS</span>. <br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfield_closed"><span class="id" title="lemma">subfield_closed</span></a> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.field.falgebra.html#agenv"><span class="id" title="definition">agenv</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="AHom_lker0"><span class="id" title="lemma">AHom_lker0</span></a> (<span class="id" title="var">rT</span> : <a class="idref" href="mathcomp.field.falgebra.html#Falgebra.Exports.FalgType"><span class="id" title="abbreviation">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.F0"><span class="id" title="variable">F0</span></a>) (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">AHom</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.fieldext.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.field.fieldext.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="AEnd_lker0"><span class="id" title="lemma">AEnd_lker0</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.field.fieldext.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span>. <br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="aimg_is_aspace"><span class="id" title="lemma">aimg_is_aspace</span></a> (<span class="id" title="var">rT</span> : <a class="idref" href="mathcomp.field.falgebra.html#Falgebra.Exports.FalgType"><span class="id" title="abbreviation">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.F0"><span class="id" title="variable">F0</span></a>) (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">AHom</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.fieldext.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) :<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.field.falgebra.html#is_aspace"><span class="id" title="definition">is_aspace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aimg_aspace</span> <span class="id" title="var">rT</span> <span class="id" title="var">f</span> <span class="id" title="var">E</span> := <a class="idref" href="mathcomp.field.falgebra.html#ASpace"><span class="id" title="constructor">ASpace</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#aimg_is_aspace"><span class="id" title="lemma">aimg_is_aspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#rT"><span class="id" title="variable">rT</span></a> <a class="idref" href="mathcomp.field.fieldext.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_idP"><span class="id" title="lemma">Fadjoin_idP</span></a> {<span class="id" title="var">K</span> <span class="id" title="var">x</span>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>) (<a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin0"><span class="id" title="lemma">Fadjoin0</span></a> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> 0<a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_nil"><span class="id" title="lemma">Fadjoin_nil</span></a> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#747e2b5d553b2dfe76e024e1f8fb39d1"><span class="id" title="notation">[::]</span></a><a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FadjoinP"><span class="id" title="lemma">FadjoinP</span></a> {<span class="id" title="var">K</span> <span class="id" title="var">x</span> <span class="id" title="var">E</span>} :<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> (<a class="idref" href="mathcomp.field.falgebra.html#9a2c6ddd5d16ca8107a4117e06c54feb"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#9a2c6ddd5d16ca8107a4117e06c54feb"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#9a2c6ddd5d16ca8107a4117e06c54feb"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">AS</span> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_seqP"><span class="id" title="lemma">Fadjoin_seqP</span></a> {<span class="id" title="var">K</span>} {<span class="id" title="var">rs</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>} {<span class="id" title="var">E</span>} :<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.field.fieldext.html#rs"><span class="id" title="variable">rs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.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.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">}</span></a>)%<span class="id" title="var">VS</span> (<a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#rs"><span class="id" title="variable">rs</span></a><a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="alg_polyOver"><span class="id" title="lemma">alg_polyOver</span></a> <span class="id" title="var">E</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.in_alg"><span class="id" title="abbreviation">in_alg</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="sub_adjoin1v"><span class="id" title="lemma">sub_adjoin1v</span></a> <span class="id" title="var">x</span> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a>1<a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="vsval_multiplicative"><span class="id" title="lemma">vsval_multiplicative</span></a> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.multiplicative"><span class="id" title="abbreviation">multiplicative</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>).<br/>
+ <span class="id" title="keyword">Canonical</span> <span class="id" title="var">vsval_rmorphism</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.AddRMorphism"><span class="id" title="abbreviation">AddRMorphism</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#vsval_multiplicative"><span class="id" title="lemma">vsval_multiplicative</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vsval_lrmorphism</span> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#2759afce9315ab3f51737bc14cc79ce9"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#2759afce9315ab3f51737bc14cc79ce9"><span class="id" title="notation">lrmorphism</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#2759afce9315ab3f51737bc14cc79ce9"><span class="id" title="notation">}</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">lrmorphism</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="vsval_invf"><span class="id" title="lemma">vsval_invf</span></a> <span class="id" title="var">K</span> (<span class="id" title="var">w</span> : <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>) : <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.field.fieldext.html#w"><span class="id" title="variable">w</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">^-1</span></a> <a class="idref" href="http://coq.inria.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#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="mathcomp.field.fieldext.html#w"><span class="id" title="variable">w</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">)^-1</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="aspace_divr_closed"><span class="id" title="lemma">aspace_divr_closed</span></a> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.divr_closed"><span class="id" title="abbreviation">divr_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>.<br/>
+ <span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_mulrPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.MulrPred"><span class="id" title="definition">MulrPred</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#aspace_divr_closed"><span class="id" title="lemma">aspace_divr_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_divrPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.DivrPred"><span class="id" title="definition">DivrPred</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#aspace_divr_closed"><span class="id" title="lemma">aspace_divr_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_smulrPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SmulrPred"><span class="id" title="definition">SmulrPred</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#aspace_divr_closed"><span class="id" title="lemma">aspace_divr_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_sdivrPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SdivrPred"><span class="id" title="definition">SdivrPred</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#aspace_divr_closed"><span class="id" title="lemma">aspace_divr_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_semiringPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SemiringPred"><span class="id" title="definition">SemiringPred</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#aspace_divr_closed"><span class="id" title="lemma">aspace_divr_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_subringPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SubringPred"><span class="id" title="definition">SubringPred</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#aspace_divr_closed"><span class="id" title="lemma">aspace_divr_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_subalgPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SubalgPred"><span class="id" title="definition">SubalgPred</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#memv_submod_closed"><span class="id" title="lemma">memv_submod_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_divringPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.DivringPred"><span class="id" title="definition">DivringPred</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#aspace_divr_closed"><span class="id" title="lemma">aspace_divr_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspace_divalgPred</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.DivalgPred"><span class="id" title="definition">DivalgPred</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#memv_submod_closed"><span class="id" title="lemma">memv_submod_closed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subvs_mulC"><span class="id" title="definition">subvs_mulC</span></a> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#644239693c924204bb2585490fe83da2"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#644239693c924204bb2585490fe83da2"><span class="id" title="notation">comRingMixin</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#644239693c924204bb2585490fe83da2"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#644239693c924204bb2585490fe83da2"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#644239693c924204bb2585490fe83da2"><span class="id" title="notation">&lt;:]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_comRingType</span> <span class="id" title="var">K</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.ComRingType"><span class="id" title="abbreviation">ComRingType</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>) (@<a class="idref" href="mathcomp.field.fieldext.html#subvs_mulC"><span class="id" title="definition">subvs_mulC</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_comUnitRingType</span> <span class="id" title="var">K</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="subvs_mul_eq0"><span class="id" title="definition">subvs_mul_eq0</span></a> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#b3ccc27c5dac0393365d2ae3ecbb2b01"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b3ccc27c5dac0393365d2ae3ecbb2b01"><span class="id" title="notation">idomainMixin</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#b3ccc27c5dac0393365d2ae3ecbb2b01"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#b3ccc27c5dac0393365d2ae3ecbb2b01"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#b3ccc27c5dac0393365d2ae3ecbb2b01"><span class="id" title="notation">&lt;:]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_idomainType</span> <span class="id" title="var">K</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.IdomainType"><span class="id" title="abbreviation">IdomainType</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>) (@<a class="idref" href="mathcomp.field.fieldext.html#subvs_mul_eq0"><span class="id" title="definition">subvs_mul_eq0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subvs_fieldMixin"><span class="id" title="lemma">subvs_fieldMixin</span></a> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.mixin_of"><span class="id" title="definition">GRing.Field.mixin_of</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#subvs_idomainType"><span class="id" title="definition">subvs_idomainType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_fieldType</span> <span class="id" title="var">K</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldType"><span class="id" title="abbreviation">FieldType</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>) (@<a class="idref" href="mathcomp.field.fieldext.html#subvs_fieldMixin"><span class="id" title="lemma">subvs_fieldMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_fieldExtType</span> <span class="id" title="var">K</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="polyOver_subvs"><span class="id" title="lemma">polyOver_subvs</span></a> {<span class="id" title="var">K</span>} {<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>} :<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a>)<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="divp_polyOver"><span class="id" title="lemma">divp_polyOver</span></a> <span class="id" title="var">K</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&amp;,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#6a276cc55c6f28b3ec69a3618ce07a9c"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="modp_polyOver"><span class="id" title="lemma">modp_polyOver</span></a> <span class="id" title="var">K</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&amp;,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="gcdp_polyOver"><span class="id" title="lemma">gcdp_polyOver</span></a> <span class="id" title="var">K</span> :<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&amp;,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="prodv_is_aspace"><span class="id" title="lemma">prodv_is_aspace</span></a> <span class="id" title="var">E</span> <span class="id" title="var">F</span> : <a class="idref" href="mathcomp.field.falgebra.html#is_aspace"><span class="id" title="definition">is_aspace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">prodv_aspace</span> <span class="id" title="var">E</span> <span class="id" title="var">F</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a> := <a class="idref" href="mathcomp.field.falgebra.html#ASpace"><span class="id" title="constructor">ASpace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#prodv_is_aspace"><span class="id" title="lemma">prodv_is_aspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="field_mem_algid"><span class="id" title="lemma">field_mem_algid</span></a> <span class="id" title="var">E</span> <span class="id" title="var">F</span> : <a class="idref" href="mathcomp.field.falgebra.html#algid"><span class="id" title="definition">algid</span></a> <a class="idref" href="mathcomp.field.fieldext.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.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a>. <br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">capv_aspace</span> <span class="id" title="var">E</span> <span class="id" title="var">F</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a> := <a class="idref" href="mathcomp.field.falgebra.html#aspace_cap"><span class="id" title="definition">aspace_cap</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#field_mem_algid"><span class="id" title="lemma">field_mem_algid</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="polyOverSv"><span class="id" title="lemma">polyOverSv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.field.fieldext.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="field_subvMl"><span class="id" title="lemma">field_subvMl</span></a> <span class="id" title="var">F</span> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.field.fieldext.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="field_subvMr"><span class="id" title="lemma">field_subvMr</span></a> <span class="id" title="var">U</span> <span class="id" title="var">F</span> : (<a class="idref" href="mathcomp.field.fieldext.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="field_module_eq"><span class="id" title="lemma">field_module_eq</span></a> <span class="id" title="var">F</span> <span class="id" title="var">M</span> : (<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="sup_field_module"><span class="id" title="lemma">sup_field_module</span></a> <span class="id" title="var">F</span> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="field_module_dimS"><span class="id" title="lemma">field_module_dimS</span></a> <span class="id" title="var">F</span> <span class="id" title="var">M</span> : (<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">N</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="field_dimS"><span class="id" title="lemma">field_dimS</span></a> <span class="id" title="var">F</span> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">N</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="dim_field_module"><span class="id" title="lemma">dim_field_module</span></a> <span class="id" title="var">F</span> <span class="id" title="var">M</span> : (<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a>)%<span class="id" title="var">N</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="dim_sup_field"><span class="id" title="lemma">dim_sup_field</span></a> <span class="id" title="var">F</span> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.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.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a>)%<span class="id" title="var">N</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="field_module_semisimple"><span class="id" title="lemma">field_module_semisimple</span></a> <span class="id" title="var">F</span> <span class="id" title="var">M</span> (<span class="id" title="var">m</span> := <a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>) :<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">{</span></a><span class="id" title="var">X</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.field.fieldext.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">notin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#X"><span class="id" title="variable">X</span></a><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">&amp;</span></a> <span class="id" title="keyword">let</span> <span class="id" title="var">FX</span> := (<a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.field.fieldext.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a>)%<span class="id" title="var">VS</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.field.fieldext.html#FX"><span class="id" title="variable">FX</span></a> <a class="idref" href="http://coq.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.fieldext.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FX"><span class="id" title="variable">FX</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FieldExtTheory.FadjoinPolyDefinitions"><span class="id" title="section">FadjoinPolyDefinitions</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FieldExtTheory.FadjoinPolyDefinitions.U"><span class="id" title="variable">U</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<a name="FieldExtTheory.FadjoinPolyDefinitions.x"><span class="id" title="variable">x</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="adjoin_degree"><span class="id" title="definition">adjoin_degree</span></a> := <a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_U</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPolyDefinitions.U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPolyDefinitions.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">).-1</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="Fadjoin_sum"><span class="id" title="definition">Fadjoin_sum</span></a> := (<a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#n"><span class="id" title="abbreviation">n</span></a><a class="idref" href="mathcomp.algebra.vector.html#c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPolyDefinitions.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPolyDefinitions.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <span class="id" title="var">v</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.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.poly.html#ae876944c1ac880ac0794dfc7e1a5c1d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#ae876944c1ac880ac0794dfc7e1a5c1d"><span class="id" title="notation">poly_</span></a><a class="idref" href="mathcomp.algebra.poly.html#ae876944c1ac880ac0794dfc7e1a5c1d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.poly.html#ae876944c1ac880ac0794dfc7e1a5c1d"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#n"><span class="id" title="abbreviation">n</span></a><a class="idref" href="mathcomp.algebra.poly.html#ae876944c1ac880ac0794dfc7e1a5c1d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.poly.html#ae876944c1ac880ac0794dfc7e1a5c1d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#sumv_pi"><span class="id" title="abbreviation">sumv_pi</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_sum"><span class="id" title="definition">Fadjoin_sum</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#inord"><span class="id" title="definition">inord</span></a> <a class="idref" href="mathcomp.field.fieldext.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4fa85b0aa898c2a7e18c3b076438c2e7"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPolyDefinitions.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.poly.html#ae876944c1ac880ac0794dfc7e1a5c1d"><span class="id" title="notation">)</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="minPoly"><span class="id" title="definition">minPoly</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> := <a class="idref" href="mathcomp.algebra.poly.html#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.fieldext.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPolyDefinitions.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#n"><span class="id" title="abbreviation">n</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="size_Fadjoin_poly"><span class="id" title="lemma">size_Fadjoin_poly</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#n"><span class="id" title="abbreviation">n</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_polyOver"><span class="id" title="lemma">Fadjoin_polyOver</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPolyDefinitions.U"><span class="id" title="variable">U</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="Fadjoin_poly_is_linear"><span class="id" title="lemma">Fadjoin_poly_is_linear</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear_for"><span class="id" title="abbreviation">linear_for</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.in_alg"><span class="id" title="abbreviation">in_alg</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c42c5cb909c30537f9f6acfcf01cf7e1"><span class="id" title="notation">\;</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#75c106c115e1ca6097cf58b45ce663bd"><span class="id" title="notation">*:%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#75c106c115e1ca6097cf58b45ce663bd"><span class="id" title="notation">R</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Fadjoin_poly_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly_is_linear"><span class="id" title="lemma">Fadjoin_poly_is_linear</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Fadjoin_poly_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.AddLinear"><span class="id" title="abbreviation">AddLinear</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly_is_linear"><span class="id" title="lemma">Fadjoin_poly_is_linear</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="size_minPoly"><span class="id" title="lemma">size_minPoly</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.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="http://coq.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.fieldext.html#n"><span class="id" title="abbreviation">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="monic_minPoly"><span class="id" title="lemma">monic_minPoly</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPolyDefinitions"><span class="id" title="section">FadjoinPolyDefinitions</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FieldExtTheory.FadjoinPoly"><span class="id" title="section">FadjoinPoly</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) (<a name="FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="adjoin_degreeE"><span class="id" title="lemma">adjoin_degreeE</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#n"><span class="id" title="abbreviation">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.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_K</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="dim_Fadjoin"><span class="id" title="lemma">dim_Fadjoin</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="http://coq.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.fieldext.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a>)%<span class="id" title="var">N</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="adjoin0_deg"><span class="id" title="lemma">adjoin0_deg</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#adjoin_degree"><span class="id" title="definition">adjoin_degree</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1%<span class="id" title="var">N</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="adjoin_deg_eq1"><span class="id" title="lemma">adjoin_deg_eq1</span></a> : <a class="idref" href="http://coq.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.fieldext.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_sum_direct"><span class="id" title="lemma">Fadjoin_sum_direct</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> <a class="idref" href="mathcomp.field.fieldext.html#sumKx"><span class="id" title="abbreviation">sumKx</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="FieldExtTheory.FadjoinPoly.nz_x_i"><span class="id" title="variable">nz_x_i</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">I_n</span></a>) : <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_eq_sum"><span class="id" title="lemma">Fadjoin_eq_sum</span></a> : <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#sumKx"><span class="id" title="abbreviation">sumKx</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_poly_eq"><span class="id" title="lemma">Fadjoin_poly_eq</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.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.field.fieldext.html#v"><span class="id" title="variable">v</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="mempx_Fadjoin"><span class="id" title="lemma">mempx_Fadjoin</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.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.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_polyP"><span class="id" title="lemma">Fadjoin_polyP</span></a> {<span class="id" title="var">v</span>} :<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">p</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a>) (<a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_poly_unique"><span class="id" title="lemma">Fadjoin_poly_unique</span></a> <span class="id" title="var">p</span> <span class="id" title="var">v</span> :<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.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.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_polyC"><span class="id" title="lemma">Fadjoin_polyC</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_polyX"><span class="id" title="lemma">Fadjoin_polyX</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">notin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#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>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="minPolyOver"><span class="id" title="lemma">minPolyOver</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="minPolyxx"><span class="id" title="lemma">minPolyxx</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="root_minPoly"><span class="id" title="lemma">root_minPoly</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.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a>. <br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin_poly_mod"><span class="id" title="lemma">Fadjoin_poly_mod</span></a> <span class="id" title="var">p</span> :<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.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.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="minPoly_XsubC"><span class="id" title="lemma">minPoly_XsubC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a>) (<a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="root_small_adjoin_poly"><span class="id" title="lemma">root_small_adjoin_poly</span></a> <span class="id" title="var">p</span> :<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="minPoly_irr"><span class="id" title="lemma">minPoly_irr</span></a> <span class="id" title="var">p</span> :<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.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.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">||</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">)</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="minPoly_dvdp"><span class="id" title="lemma">minPoly_dvdp</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.FadjoinPoly"><span class="id" title="section">FadjoinPoly</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="minPolyS"><span class="id" title="lemma">minPolyS</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">a</span> : (<a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="Fadjoin1_polyP"><span class="id" title="lemma">Fadjoin1_polyP</span></a> <span class="id" title="var">x</span> <span class="id" title="var">v</span> :<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">p</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.in_alg"><span class="id" title="abbreviation">in_alg</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a>) (<a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a>1<a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span>).<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FieldExtTheory.Horner"><span class="id" title="section">Horner</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> <a name="FieldExtTheory.Horner.z"><span class="id" title="variable">z</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="fieldExt_horner"><span class="id" title="definition">fieldExt_horner</span></a> := <a class="idref" href="mathcomp.algebra.poly.html#horner_morph"><span class="id" title="definition">horner_morph</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.mulrC"><span class="id" title="definition">mulrC</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.Horner.z"><span class="id" title="variable">z</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.in_alg"><span class="id" title="abbreviation">in_alg</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.L"><span class="id" title="variable">L</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a>)).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldExtHorner_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#f4cde972a26515a86aeac58343f1e022"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f4cde972a26515a86aeac58343f1e022"><span class="id" title="notation">additive</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#f4cde972a26515a86aeac58343f1e022"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldExt_horner"><span class="id" title="definition">fieldExt_horner</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f4cde972a26515a86aeac58343f1e022"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldExtHorner_rmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldExt_horner"><span class="id" title="definition">fieldExt_horner</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Lemma</span> <a name="fieldExt_hornerC"><span class="id" title="lemma">fieldExt_hornerC</span></a> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.field.fieldext.html#fieldExt_horner"><span class="id" title="definition">fieldExt_horner</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d54beaee78833d410cb3b1b3603748cc"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d54beaee78833d410cb3b1b3603748cc"><span class="id" title="notation">A</span></a>.<br/>
+ <span class="id" title="keyword">Lemma</span> <a name="fieldExt_hornerX"><span class="id" title="lemma">fieldExt_hornerX</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#fieldExt_horner"><span class="id" title="definition">fieldExt_horner</span></a> <a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.Horner.z"><span class="id" title="variable">z</span></a>.<br/>
+ <span class="id" title="keyword">Fact</span> <a name="fieldExt_hornerZ"><span class="id" title="lemma">fieldExt_hornerZ</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.scalable"><span class="id" title="abbreviation">scalable</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldExt_horner"><span class="id" title="definition">fieldExt_horner</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldExt_horner_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.AddLinear"><span class="id" title="abbreviation">AddLinear</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldExt_hornerZ"><span class="id" title="lemma">fieldExt_hornerZ</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldExt_horner_lrmorhism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">lrmorphism</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldExt_horner"><span class="id" title="definition">fieldExt_horner</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory.Horner"><span class="id" title="section">Horner</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldExtTheory"><span class="id" title="section">FieldExtTheory</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Notation</span> <a name="7d7efead8ecf03a3142b3463444e8bb7"><span class="id" title="notation">&quot;</span></a>E :&amp;: F" := (<a class="idref" href="mathcomp.field.fieldext.html#capv_aspace"><span class="id" title="definition">capv_aspace</span></a> <span class="id" title="var">E</span> <span class="id" title="var">F</span>) : <span class="id" title="var">aspace_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="77458d726d44a5f6cb9ce8413764131c"><span class="id" title="notation">&quot;</span></a>'C_ E [ x ]" := (<a class="idref" href="mathcomp.field.fieldext.html#capv_aspace"><span class="id" title="definition">capv_aspace</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.field.falgebra.html#6185188cce610ec48c6a5e20cba7b32c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#6185188cce610ec48c6a5e20cba7b32c"><span class="id" title="notation">C</span></a><a class="idref" href="mathcomp.field.falgebra.html#6185188cce610ec48c6a5e20cba7b32c"><span class="id" title="notation">[</span></a><span class="id" title="var">x</span><a class="idref" href="mathcomp.field.falgebra.html#6185188cce610ec48c6a5e20cba7b32c"><span class="id" title="notation">]</span></a>) : <span class="id" title="var">aspace_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="a9b975988d2f72ea7d8af61f4fcb4cb2"><span class="id" title="notation">&quot;</span></a>'C_ ( E ) [ x ]" := (<a class="idref" href="mathcomp.field.fieldext.html#capv_aspace"><span class="id" title="definition">capv_aspace</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.field.falgebra.html#6185188cce610ec48c6a5e20cba7b32c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#6185188cce610ec48c6a5e20cba7b32c"><span class="id" title="notation">C</span></a><a class="idref" href="mathcomp.field.falgebra.html#6185188cce610ec48c6a5e20cba7b32c"><span class="id" title="notation">[</span></a><span class="id" title="var">x</span><a class="idref" href="mathcomp.field.falgebra.html#6185188cce610ec48c6a5e20cba7b32c"><span class="id" title="notation">]</span></a>)<br/>
+&nbsp;&nbsp;(<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">aspace_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="4384857362a0c9b733e9cfbf3e045a06"><span class="id" title="notation">&quot;</span></a>'C_ E ( V )" := (<a class="idref" href="mathcomp.field.fieldext.html#capv_aspace"><span class="id" title="definition">capv_aspace</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.field.falgebra.html#a46ca76cdf53642a5d54130c398d3525"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#a46ca76cdf53642a5d54130c398d3525"><span class="id" title="notation">C</span></a><a class="idref" href="mathcomp.field.falgebra.html#a46ca76cdf53642a5d54130c398d3525"><span class="id" title="notation">(</span></a><span class="id" title="var">V</span><a class="idref" href="mathcomp.field.falgebra.html#a46ca76cdf53642a5d54130c398d3525"><span class="id" title="notation">)</span></a>) : <span class="id" title="var">aspace_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="3c9678c46186068c1265a523570cc669"><span class="id" title="notation">&quot;</span></a>'C_ ( E ) ( V )" := (<a class="idref" href="mathcomp.field.fieldext.html#capv_aspace"><span class="id" title="definition">capv_aspace</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.field.falgebra.html#a46ca76cdf53642a5d54130c398d3525"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#a46ca76cdf53642a5d54130c398d3525"><span class="id" title="notation">C</span></a><a class="idref" href="mathcomp.field.falgebra.html#a46ca76cdf53642a5d54130c398d3525"><span class="id" title="notation">(</span></a><span class="id" title="var">V</span><a class="idref" href="mathcomp.field.falgebra.html#a46ca76cdf53642a5d54130c398d3525"><span class="id" title="notation">)</span></a>)<br/>
+&nbsp;&nbsp;(<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">aspace_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="e39a1e7d704e137e774a67acc65cb739"><span class="id" title="notation">&quot;</span></a>E * F" := (<a class="idref" href="mathcomp.field.fieldext.html#prodv_aspace"><span class="id" title="definition">prodv_aspace</span></a> <span class="id" title="var">E</span> <span class="id" title="var">F</span>) : <span class="id" title="var">aspace_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="73930a02ddc87642f347d4273e13c8d6"><span class="id" title="notation">&quot;</span></a>f @: E" := (<a class="idref" href="mathcomp.field.fieldext.html#aimg_aspace"><span class="id" title="definition">aimg_aspace</span></a> <span class="id" title="var">f</span> <span class="id" title="var">E</span>) : <span class="id" title="var">aspace_scope</span>.<br/>
+
+<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="MapMinPoly"><span class="id" title="section">MapMinPoly</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="MapMinPoly.F0"><span class="id" title="variable">F0</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="MapMinPoly.L"><span class="id" title="variable">L</span></a> <a name="MapMinPoly.rL"><span class="id" title="variable">rL</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F0"><span class="id" title="variable">F0</span></a>) (<a name="MapMinPoly.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">AHom</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.fieldext.html#rL"><span class="id" title="variable">rL</span></a><a class="idref" href="mathcomp.field.falgebra.html#275e5c2faf7ccaa3626b9f053d734882"><span class="id" title="notation">)</span></a>).<br/>
+<span class="id" title="keyword">Variables</span> (<a name="MapMinPoly.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) (<a name="MapMinPoly.x"><span class="id" title="variable">x</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.L"><span class="id" title="variable">L</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="adjoin_degree_aimg"><span class="id" title="lemma">adjoin_degree_aimg</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#adjoin_degree"><span class="id" title="definition">adjoin_degree</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.K"><span class="id" title="variable">K</span></a>) (<a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.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.field.fieldext.html#adjoin_degree"><span class="id" title="definition">adjoin_degree</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.x"><span class="id" title="variable">x</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="map_minPoly"><span class="id" title="lemma">map_minPoly</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.fieldext.html#MapMinPoly.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.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.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.K"><span class="id" title="variable">K</span></a>) (<a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly.x"><span class="id" title="variable">x</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#MapMinPoly"><span class="id" title="section">MapMinPoly</span></a>.<br/>
+
+<br/>
+</div>
+
+<div class="doc">
+ Changing up the reference field of a fieldExtType.
+</div>
+<div class="code">
+<span class="id" title="keyword">Section</span> <a name="FieldOver"><span class="id" title="section">FieldOver</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FieldOver.F0"><span class="id" title="variable">F0</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="FieldOver.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F0"><span class="id" title="variable">F0</span></a>) (<a name="FieldOver.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="fieldOver"><span class="id" title="definition">fieldOver</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldOver.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> : <span class="id" title="keyword">Type</span> := <a class="idref" href="mathcomp.field.fieldext.html#FieldOver.L"><span class="id" title="variable">L</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_eqType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">eqType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_choiceType</span> := <a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">choiceType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_zmodType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#af6385fc2df84aeeec6855073f75cc68"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af6385fc2df84aeeec6855073f75cc68"><span class="id" title="notation">zmodType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#af6385fc2df84aeeec6855073f75cc68"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af6385fc2df84aeeec6855073f75cc68"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_ringType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#dee4f3431027813095272c568fc6b5ce"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#dee4f3431027813095272c568fc6b5ce"><span class="id" title="notation">ringType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#dee4f3431027813095272c568fc6b5ce"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#dee4f3431027813095272c568fc6b5ce"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_unitRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#f02859ca87d7563e473a6ba817bdc33f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f02859ca87d7563e473a6ba817bdc33f"><span class="id" title="notation">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#f02859ca87d7563e473a6ba817bdc33f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f02859ca87d7563e473a6ba817bdc33f"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_comRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#57b384122345a94c564987d4b6ee9f0f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#57b384122345a94c564987d4b6ee9f0f"><span class="id" title="notation">comRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#57b384122345a94c564987d4b6ee9f0f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#57b384122345a94c564987d4b6ee9f0f"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_comUnitRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_idomainType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#9894f8fff6e44a40eb9fd9cfcbde7780"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9894f8fff6e44a40eb9fd9cfcbde7780"><span class="id" title="notation">idomainType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#9894f8fff6e44a40eb9fd9cfcbde7780"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9894f8fff6e44a40eb9fd9cfcbde7780"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_fieldType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#005edfce3bb0bbe988e3333ca30adc0f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#005edfce3bb0bbe988e3333ca30adc0f"><span class="id" title="notation">fieldType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#005edfce3bb0bbe988e3333ca30adc0f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#005edfce3bb0bbe988e3333ca30adc0f"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="fieldOver_scale"><span class="id" title="definition">fieldOver_scale</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.field.fieldext.html#K_F"><span class="id" title="abbreviation">K_F</span></a>) (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a>) : <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="fieldOver_scaleA"><span class="id" title="lemma">fieldOver_scaleA</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><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.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="fieldOver_scale1"><span class="id" title="lemma">fieldOver_scale1</span></a> <span class="id" title="var">u</span> : 1 <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="fieldOver_scaleDr"><span class="id" title="lemma">fieldOver_scaleDr</span></a> <span class="id" title="var">a</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><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.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="fieldOver_scaleDl"><span class="id" title="lemma">fieldOver_scaleDl</span></a> <span class="id" title="var">v</span> <span class="id" title="var">a</span> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="fieldOver_lmodMixin"><span class="id" title="definition">fieldOver_lmodMixin</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.LmodMixin"><span class="id" title="abbreviation">LmodMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldOver_scaleA"><span class="id" title="lemma">fieldOver_scaleA</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldOver_scale1"><span class="id" title="lemma">fieldOver_scale1</span></a><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.field.fieldext.html#fieldOver_scaleDr"><span class="id" title="lemma">fieldOver_scaleDr</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldOver_scaleDl"><span class="id" title="lemma">fieldOver_scaleDl</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_lmodType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.LmodType"><span class="id" title="abbreviation">LmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K_F"><span class="id" title="abbreviation">K_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldOver_lmodMixin"><span class="id" title="definition">fieldOver_lmodMixin</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="fieldOver_scaleE"><span class="id" title="lemma">fieldOver_scaleE</span></a> <span class="id" title="var">a</span> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.fieldext.html#FieldOver.L"><span class="id" title="variable">L</span></a>) : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><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.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="fieldOver_scaleAl"><span class="id" title="lemma">fieldOver_scaleAl</span></a> <span class="id" title="var">a</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><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#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_lalgType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Exports.LalgType"><span class="id" title="abbreviation">LalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K_F"><span class="id" title="abbreviation">K_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldOver_scaleAl"><span class="id" title="lemma">fieldOver_scaleAl</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="fieldOver_scaleAr"><span class="id" title="lemma">fieldOver_scaleAr</span></a> <span class="id" title="var">a</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><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.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">F</span></a><a class="idref" href="mathcomp.field.fieldext.html#43aa599248ac296c93d07d0ece5108b7"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_algType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.Exports.AlgType"><span class="id" title="abbreviation">AlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K_F"><span class="id" title="abbreviation">K_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldOver_scaleAr"><span class="id" title="lemma">fieldOver_scaleAr</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_unitAlgType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">unitAlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K_F"><span class="id" title="abbreviation">K_F</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="fieldOver_vectMixin"><span class="id" title="lemma">fieldOver_vectMixin</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin_of"><span class="id" title="inductive">Vector.mixin_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldOver_lmodType"><span class="id" title="definition">fieldOver_lmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_vectType</span> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports.VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K_F"><span class="id" title="abbreviation">K_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldOver_vectMixin"><span class="id" title="lemma">fieldOver_vectMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_FalgType</span> := <a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K_F"><span class="id" title="abbreviation">K_F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_fieldExtType</span> := <a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#K_F"><span class="id" title="abbreviation">K_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldOver.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldOver.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="trivial_fieldOver"><span class="id" title="lemma">trivial_fieldOver</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">(</span></a>1%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#FieldOver.F"><span class="id" title="variable">F</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#vbasis"><span class="id" title="definition">vbasis</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="mem_vspaceOver"><span class="id" title="lemma">mem_vspaceOver</span></a> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#FieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="mem_aspaceOver"><span class="id" title="lemma">mem_aspaceOver</span></a> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.fieldext.html#FieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.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.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="aspaceOver_suproof"><span class="id" title="lemma">aspaceOver_suproof</span></a> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.falgebra.html#is_aspace"><span class="id" title="definition">is_aspace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">aspaceOver</span> <span class="id" title="var">E</span> := <a class="idref" href="mathcomp.field.falgebra.html#ASpace"><span class="id" title="constructor">ASpace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#aspaceOver_suproof"><span class="id" title="lemma">aspaceOver_suproof</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="dim_vspaceOver"><span class="id" title="lemma">dim_vspaceOver</span></a> <span class="id" title="var">M</span> : (<a class="idref" href="mathcomp.field.fieldext.html#FieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><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.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M"><span class="id" title="variable">M</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="dim_aspaceOver"><span class="id" title="lemma">dim_aspaceOver</span></a> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.fieldext.html#FieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><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.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="vspaceOverP"><span class="id" title="lemma">vspaceOverP</span></a> <span class="id" title="var">V_F</span> :<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">V</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V_F"><span class="id" title="variable">V_F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#FieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V_F"><span class="id" title="variable">V_F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="aspaceOverP"><span class="id" title="lemma">aspaceOverP</span></a> (<span class="id" title="var">E_F</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L_F"><span class="id" title="abbreviation">L_F</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) :<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">E</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E_F"><span class="id" title="variable">E_F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#aspaceOver"><span class="id" title="definition">aspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.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.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#FieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E_F"><span class="id" title="variable">E_F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.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.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#FieldOver"><span class="id" title="section">FieldOver</span></a>.<br/>
+
+<br/>
+</div>
+
+<div class="doc">
+ Changing the reference field to a smaller field.
+</div>
+<div class="code">
+<span class="id" title="keyword">Section</span> <a name="BaseField"><span class="id" title="section">BaseField</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="BaseField.F0"><span class="id" title="variable">F0</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="BaseField.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F0"><span class="id" title="variable">F0</span></a>) (<a name="BaseField.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="baseField_type"><span class="id" title="definition">baseField_type</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.L"><span class="id" title="variable">L</span></a> : <span class="id" title="keyword">Type</span> := <a class="idref" href="mathcomp.field.fieldext.html#BaseField.L"><span class="id" title="variable">L</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="L0"><span class="id" title="abbreviation">L0</span></a> := (<a class="idref" href="mathcomp.field.fieldext.html#baseField_type"><span class="id" title="definition">baseField_type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#sort"><span class="id" title="projection">FieldExt.sort</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.L"><span class="id" title="variable">L</span></a>))).<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_eqType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">eqType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_choiceType</span> := <a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">choiceType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_zmodType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#af6385fc2df84aeeec6855073f75cc68"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af6385fc2df84aeeec6855073f75cc68"><span class="id" title="notation">zmodType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#af6385fc2df84aeeec6855073f75cc68"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af6385fc2df84aeeec6855073f75cc68"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_ringType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#dee4f3431027813095272c568fc6b5ce"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#dee4f3431027813095272c568fc6b5ce"><span class="id" title="notation">ringType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#dee4f3431027813095272c568fc6b5ce"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#dee4f3431027813095272c568fc6b5ce"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_unitRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#f02859ca87d7563e473a6ba817bdc33f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f02859ca87d7563e473a6ba817bdc33f"><span class="id" title="notation">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#f02859ca87d7563e473a6ba817bdc33f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f02859ca87d7563e473a6ba817bdc33f"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_comRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#57b384122345a94c564987d4b6ee9f0f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#57b384122345a94c564987d4b6ee9f0f"><span class="id" title="notation">comRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#57b384122345a94c564987d4b6ee9f0f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#57b384122345a94c564987d4b6ee9f0f"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_comUnitRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_idomainType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#9894f8fff6e44a40eb9fd9cfcbde7780"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9894f8fff6e44a40eb9fd9cfcbde7780"><span class="id" title="notation">idomainType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#9894f8fff6e44a40eb9fd9cfcbde7780"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9894f8fff6e44a40eb9fd9cfcbde7780"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_fieldType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#005edfce3bb0bbe988e3333ca30adc0f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#005edfce3bb0bbe988e3333ca30adc0f"><span class="id" title="notation">fieldType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#005edfce3bb0bbe988e3333ca30adc0f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#005edfce3bb0bbe988e3333ca30adc0f"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="baseField_scale"><span class="id" title="definition">baseField_scale</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F0"><span class="id" title="variable">F0</span></a>) (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a>) : <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.in_alg"><span class="id" title="abbreviation">in_alg</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="baseField_scaleA"><span class="id" title="lemma">baseField_scaleA</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><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.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="baseField_scale1"><span class="id" title="lemma">baseField_scale1</span></a> <span class="id" title="var">u</span> : 1 <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="baseField_scaleDr"><span class="id" title="lemma">baseField_scaleDr</span></a> <span class="id" title="var">a</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><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.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="baseField_scaleDl"><span class="id" title="lemma">baseField_scaleDl</span></a> <span class="id" title="var">v</span> <span class="id" title="var">a</span> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="baseField_lmodMixin"><span class="id" title="definition">baseField_lmodMixin</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.LmodMixin"><span class="id" title="abbreviation">LmodMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseField_scaleA"><span class="id" title="lemma">baseField_scaleA</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseField_scale1"><span class="id" title="lemma">baseField_scale1</span></a><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.field.fieldext.html#baseField_scaleDr"><span class="id" title="lemma">baseField_scaleDr</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseField_scaleDl"><span class="id" title="lemma">baseField_scaleDl</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_lmodType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.LmodType"><span class="id" title="abbreviation">LmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseField_lmodMixin"><span class="id" title="definition">baseField_lmodMixin</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="baseField_scaleE"><span class="id" title="lemma">baseField_scaleE</span></a> <span class="id" title="var">a</span> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.fieldext.html#BaseField.L"><span class="id" title="variable">L</span></a>) : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><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.field.fieldext.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d54beaee78833d410cb3b1b3603748cc"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d54beaee78833d410cb3b1b3603748cc"><span class="id" title="notation">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="baseField_scaleAl"><span class="id" title="lemma">baseField_scaleAl</span></a> <span class="id" title="var">a</span> (<span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a>) : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><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#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_lalgType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Exports.LalgType"><span class="id" title="abbreviation">LalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseField_scaleAl"><span class="id" title="lemma">baseField_scaleAl</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="baseField_scaleAr"><span class="id" title="lemma">baseField_scaleAr</span></a> <span class="id" title="var">a</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><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.field.fieldext.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">F0</span></a><a class="idref" href="mathcomp.field.fieldext.html#9e831d27a80a867197342783e8eaa67a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_algType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.Exports.AlgType"><span class="id" title="abbreviation">AlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseField_scaleAr"><span class="id" title="lemma">baseField_scaleAr</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_unitAlgType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">unitAlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="BaseField.n"><span class="id" title="variable">n</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.fieldext.html#BaseField.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a>.<br/>
+<span class="id" title="keyword">Let</span> <a name="BaseField.bF"><span class="id" title="variable">bF</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#BaseField.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F"><span class="id" title="variable">F</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#vbasis"><span class="id" title="definition">vbasis</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.fieldext.html#BaseField.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a>.<br/>
+<span class="id" title="keyword">Let</span> <a name="BaseField.coordF"><span class="id" title="variable">coordF</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F"><span class="id" title="variable">F</span></a>) := (<a class="idref" href="mathcomp.algebra.vector.html#coord_vbasis"><span class="id" title="lemma">coord_vbasis</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#memvf"><span class="id" title="lemma">memvf</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a>)).<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="baseField_vectMixin"><span class="id" title="lemma">baseField_vectMixin</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin_of"><span class="id" title="inductive">Vector.mixin_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseField_lmodType"><span class="id" title="definition">baseField_lmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_vectType</span> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports.VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseField_vectMixin"><span class="id" title="lemma">baseField_vectMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_FalgType</span> := <a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseField_extFieldType</span> := <a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.F0"><span class="id" title="variable">F0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="BaseField.F0ZEZ"><span class="id" title="variable">F0ZEZ</span></a> <span class="id" title="var">a</span> <span class="id" title="var">x</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.L"><span class="id" title="variable">L</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</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.field.fieldext.html#v"><span class="id" title="variable">v</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="BaseField.baseVspace_basis"><span class="id" title="variable">baseVspace_basis</span></a> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.fintype.html#76a709b85ab118a35d217f357d4e8877"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#76a709b85ab118a35d217f357d4e8877"><span class="id" title="notation">seq</span></a> <a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.bF"><span class="id" title="variable">bF</span></a> <a class="idref" href="mathcomp.field.fieldext.html#ij"><span class="id" title="variable">ij</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vbasis"><span class="id" title="definition">vbasis</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#ij"><span class="id" title="variable">ij</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#76a709b85ab118a35d217f357d4e8877"><span class="id" title="notation">|</span></a> <span class="id" title="var">ij</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#76a709b85ab118a35d217f357d4e8877"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">I_</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">I_n</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#76a709b85ab118a35d217f357d4e8877"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="baseVspace"><span class="id" title="definition">baseVspace</span></a> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.field.fieldext.html#BaseField.baseVspace_basis"><span class="id" title="variable">baseVspace_basis</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="mem_baseVspace"><span class="id" title="lemma">mem_baseVspace</span></a> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="dim_baseVspace"><span class="id" title="lemma">dim_baseVspace</span></a> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><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.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">N</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="baseAspace_suproof"><span class="id" title="lemma">baseAspace_suproof</span></a> (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.field.falgebra.html#is_aspace"><span class="id" title="definition">is_aspace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseAspace</span> <span class="id" title="var">E</span> := <a class="idref" href="mathcomp.field.falgebra.html#ASpace"><span class="id" title="constructor">ASpace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#baseAspace_suproof"><span class="id" title="lemma">baseAspace_suproof</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="refBaseField_key"><span class="id" title="lemma">refBaseField_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/>
+<span class="id" title="keyword">Definition</span> <a name="refBaseField"><span class="id" title="definition">refBaseField</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.field.fieldext.html#refBaseField_key"><span class="id" title="lemma">refBaseField_key</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#baseAspace"><span class="id" title="definition">baseAspace</span></a> 1).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">refBaseField_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#d39a57968bbde827b22f32a7c98c9b3d"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#d39a57968bbde827b22f32a7c98c9b3d"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#d39a57968bbde827b22f32a7c98c9b3d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#refBaseField"><span class="id" title="definition">refBaseField</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#d39a57968bbde827b22f32a7c98c9b3d"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="F1"><span class="id" title="abbreviation">F1</span></a> := <a class="idref" href="mathcomp.field.fieldext.html#refBaseField"><span class="id" title="definition">refBaseField</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="dim_refBaseField"><span class="id" title="lemma">dim_refBaseField</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F1"><span class="id" title="abbreviation">F1</span></a> <a class="idref" href="http://coq.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.fieldext.html#BaseField.n"><span class="id" title="variable">n</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="baseVspace_module"><span class="id" title="lemma">baseVspace_module</span></a> <span class="id" title="var">V</span> (<span class="id" title="var">V0</span> := <a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>) : (<a class="idref" href="mathcomp.field.fieldext.html#F1"><span class="id" title="abbreviation">F1</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V0"><span class="id" title="variable">V0</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V0"><span class="id" title="variable">V0</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="sub_baseField"><span class="id" title="lemma">sub_baseField</span></a> (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#BaseField.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) : (<a class="idref" href="mathcomp.field.fieldext.html#F1"><span class="id" title="abbreviation">F1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="vspaceOver_refBase"><span class="id" title="lemma">vspaceOver_refBase</span></a> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F1"><span class="id" title="abbreviation">F1</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="module_baseVspace"><span class="id" title="lemma">module_baseVspace</span></a> <span class="id" title="var">M0</span> :<br/>
+&nbsp;&nbsp;(<a class="idref" href="mathcomp.field.fieldext.html#F1"><span class="id" title="abbreviation">F1</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M0"><span class="id" title="variable">M0</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M0"><span class="id" title="variable">M0</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">V</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M0"><span class="id" title="variable">M0</span></a> <a class="idref" href="http://coq.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.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#M0"><span class="id" title="variable">M0</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="module_baseAspace"><span class="id" title="lemma">module_baseAspace</span></a> (<span class="id" title="var">E0</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L0"><span class="id" title="abbreviation">L0</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) :<br/>
+&nbsp;&nbsp;(<a class="idref" href="mathcomp.field.fieldext.html#F1"><span class="id" title="abbreviation">F1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E0"><span class="id" title="variable">E0</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">E</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E0"><span class="id" title="variable">E0</span></a> <a class="idref" href="http://coq.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.fieldext.html#baseAspace"><span class="id" title="definition">baseAspace</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E0"><span class="id" title="variable">E0</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#BaseField"><span class="id" title="section">BaseField</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Notation</span> <a name="baseFieldType"><span class="id" title="abbreviation">baseFieldType</span></a> <span class="id" title="var">L</span> := (<a class="idref" href="mathcomp.field.fieldext.html#baseField_type"><span class="id" title="definition">baseField_type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">L</span>)).<br/>
+
+<br/>
+</div>
+
+<div class="doc">
+ Base of fieldOver, finally.
+</div>
+<div class="code">
+<span class="id" title="keyword">Section</span> <a name="MoreFieldOver"><span class="id" title="section">MoreFieldOver</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="MoreFieldOver.F0"><span class="id" title="variable">F0</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="MoreFieldOver.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F0"><span class="id" title="variable">F0</span></a>) (<a name="MoreFieldOver.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="base_vspaceOver"><span class="id" title="lemma">base_vspaceOver</span></a> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MoreFieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#MoreFieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="base_moduleOver"><span class="id" title="lemma">base_moduleOver</span></a> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.field.fieldext.html#MoreFieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MoreFieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#V"><span class="id" title="variable">V</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="base_aspaceOver"><span class="id" title="lemma">base_aspaceOver</span></a> (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MoreFieldOver.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) :<br/>
+&nbsp;&nbsp;(<a class="idref" href="mathcomp.field.fieldext.html#MoreFieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#baseVspace"><span class="id" title="definition">baseVspace</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#vspaceOver"><span class="id" title="definition">vspaceOver</span></a> <a class="idref" href="mathcomp.field.fieldext.html#MoreFieldOver.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.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.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.field.fieldext.html#E"><span class="id" title="variable">E</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#MoreFieldOver"><span class="id" title="section">MoreFieldOver</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="SubFieldExtension"><span class="id" title="section">SubFieldExtension</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Local Open</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">quotient_scope</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variables</span> (<a name="SubFieldExtension.F"><span class="id" title="variable">F</span></a> <a name="SubFieldExtension.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="SubFieldExtension.iota"><span class="id" title="variable">iota</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.field.fieldext.html#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.fieldext.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">}</span></a>).<br/>
+<span class="id" title="keyword">Variables</span> (<a name="SubFieldExtension.z"><span class="id" title="variable">z</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.L"><span class="id" title="variable">L</span></a>) (<a name="SubFieldExtension.p"><span class="id" title="variable">p</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>).<br/>
+
+<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.wf_p"><span class="id" title="variable">wf_p</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">iota</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.z"><span class="id" title="variable">z</span></a>.<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.p0"><span class="id" title="variable">p0</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.wf_p"><span class="id" title="variable">wf_p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><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.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">)^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.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>.<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.z0"><span class="id" title="variable">z0</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.wf_p"><span class="id" title="variable">wf_p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.z"><span class="id" title="variable">z</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> 0.<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.n"><span class="id" title="variable">n</span></a> := <a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">).-1</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.p0_mon"><span class="id" title="variable">p0_mon</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.nz_p0"><span class="id" title="variable">nz_p0</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0. <br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.p0z0"><span class="id" title="variable">p0z0</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.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">iota</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.z0"><span class="id" title="variable">z0</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.n_gt0"><span class="id" title="variable">n_gt0</span></a>: 0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.n"><span class="id" title="variable">n</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.z0Ciota"><span class="id" title="variable">z0Ciota</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#commr_rmorph"><span class="id" title="definition">commr_rmorph</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.iota"><span class="id" title="variable">iota</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.z0"><span class="id" title="variable">z0</span></a>. <br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.iotaFz"><span class="id" title="variable">iotaFz</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">_n</span></a>) := <a class="idref" href="mathcomp.field.fieldext.html#iotaPz"><span class="id" title="abbreviation">iotaPz</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="equiv_subfext"><span class="id" title="definition">equiv_subfext</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> := (<a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.iotaFz"><span class="id" title="variable">iotaFz</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.iotaFz"><span class="id" title="variable">iotaFz</span></a> <a class="idref" href="mathcomp.field.fieldext.html#y"><span class="id" title="variable">y</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="equiv_subfext_is_equiv"><span class="id" title="lemma">equiv_subfext_is_equiv</span></a> : <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#equiv_class_of"><span class="id" title="inductive">equiv_class_of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#equiv_subfext"><span class="id" title="definition">equiv_subfext</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">equiv_subfext_equiv</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#EquivRelPack"><span class="id" title="constructor">EquivRelPack</span></a> <a class="idref" href="mathcomp.field.fieldext.html#equiv_subfext_is_equiv"><span class="id" title="lemma">equiv_subfext_is_equiv</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">equiv_subfext_encModRel</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#defaultEncModRel"><span class="id" title="definition">defaultEncModRel</span></a> <a class="idref" href="mathcomp.field.fieldext.html#equiv_subfext"><span class="id" title="definition">equiv_subfext</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subFExtend"><span class="id" title="definition">subFExtend</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#73f0d3e79bf803b4c740bbb9fa38aa76"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#73f0d3e79bf803b4c740bbb9fa38aa76"><span class="id" title="notation">eq_quot</span></a> <a class="idref" href="mathcomp.field.fieldext.html#equiv_subfext"><span class="id" title="definition">equiv_subfext</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#73f0d3e79bf803b4c740bbb9fa38aa76"><span class="id" title="notation">}</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subFExtend_eqType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">eqType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#cb062fd562aed512787df99359c6e3f2"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subFExtend_choiceType</span> := <a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">choiceType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#1731a28227324c9e5fc49499029635b3"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subFExtend_quotType</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#a70f324fea4d80f55c2255a07c19c5c5"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#a70f324fea4d80f55c2255a07c19c5c5"><span class="id" title="notation">quotType</span></a> <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#a70f324fea4d80f55c2255a07c19c5c5"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#a70f324fea4d80f55c2255a07c19c5c5"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subFExtend_eqQuotType</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#b7a0622a915c3e5a7396a3208b40639a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#b7a0622a915c3e5a7396a3208b40639a"><span class="id" title="notation">eqQuotType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#equiv_subfext"><span class="id" title="definition">equiv_subfext</span></a> <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#b7a0622a915c3e5a7396a3208b40639a"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#b7a0622a915c3e5a7396a3208b40639a"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfx_inj"><span class="id" title="definition">subfx_inj</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#lift_fun1"><span class="id" title="abbreviation">lift_fun1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.iotaFz"><span class="id" title="variable">iotaFz</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="pi_subfx_inj"><span class="id" title="lemma">pi_subfx_inj</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#fcecf6c7c5b99f975a4e95451ce580e5"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#fcecf6c7c5b99f975a4e95451ce580e5"><span class="id" title="notation">mono</span></a> <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">pi</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#fcecf6c7c5b99f975a4e95451ce580e5"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#fcecf6c7c5b99f975a4e95451ce580e5"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.iotaFz"><span class="id" title="variable">iotaFz</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#fcecf6c7c5b99f975a4e95451ce580e5"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj"><span class="id" title="definition">subfx_inj</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#fcecf6c7c5b99f975a4e95451ce580e5"><span class="id" title="notation">}</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">pi_subfx_inj_morph</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#PiMono1"><span class="id" title="abbreviation">PiMono1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#pi_subfx_inj"><span class="id" title="lemma">pi_subfx_inj</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.iotaPz_repr"><span class="id" title="variable">iotaPz_repr</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.fieldext.html#iotaPz"><span class="id" title="abbreviation">iotaPz</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> (<a class="idref" href="mathcomp.ssreflect.generic_quotient.html#repr"><span class="id" title="abbreviation">repr</span></a> (<a class="idref" href="mathcomp.ssreflect.generic_quotient.html#997e4486c98ae8c7d206ef25b33fb606"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#997e4486c98ae8c7d206ef25b33fb606"><span class="id" title="notation">pi_</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#997e4486c98ae8c7d206ef25b33fb606"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#997e4486c98ae8c7d206ef25b33fb606"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.fieldext.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.field.fieldext.html#SubFieldExtension.iotaFz"><span class="id" title="variable">iotaFz</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext0"><span class="id" title="definition">subfext0</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#lift_cst"><span class="id" title="abbreviation">lift_cst</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> 0.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext0_morph</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#PiConst"><span class="id" title="abbreviation">PiConst</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext0"><span class="id" title="definition">subfext0</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_add"><span class="id" title="definition">subfext_add</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#lift_op2"><span class="id" title="abbreviation">lift_op2</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#327bb2f0da6fd7c01a004dedcfc2dee4"><span class="id" title="notation">+%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#327bb2f0da6fd7c01a004dedcfc2dee4"><span class="id" title="notation">R</span></a>.<br/>
+<span class="id" title="keyword">Fact</span> <a name="pi_subfext_add"><span class="id" title="lemma">pi_subfext_add</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.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">pi</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.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.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">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_add"><span class="id" title="definition">subfext_add</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.fieldext.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">Canonical</span> <span class="id" title="var">pi_subfx_add_morph</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#PiMorph2"><span class="id" title="abbreviation">PiMorph2</span></a> <a class="idref" href="mathcomp.field.fieldext.html#pi_subfext_add"><span class="id" title="lemma">pi_subfext_add</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_opp"><span class="id" title="definition">subfext_opp</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#lift_op1"><span class="id" title="abbreviation">lift_op1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#9fdf1a446ceec36bc97cce801a3ef3f2"><span class="id" title="notation">-%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9fdf1a446ceec36bc97cce801a3ef3f2"><span class="id" title="notation">R</span></a>.<br/>
+<span class="id" title="keyword">Fact</span> <a name="pi_subfext_opp"><span class="id" title="lemma">pi_subfext_opp</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">pi</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><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.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_opp"><span class="id" title="definition">subfext_opp</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">}</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">pi_subfext_opp_morph</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#PiMorph1"><span class="id" title="abbreviation">PiMorph1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#pi_subfext_opp"><span class="id" title="lemma">pi_subfext_opp</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="addfxA"><span class="id" title="lemma">addfxA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_add"><span class="id" title="definition">subfext_add</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="addfxC"><span class="id" title="lemma">addfxC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_add"><span class="id" title="definition">subfext_add</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="add0fx"><span class="id" title="lemma">add0fx</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext0"><span class="id" title="definition">subfext0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_add"><span class="id" title="definition">subfext_add</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="addfxN"><span class="id" title="lemma">addfxN</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext0"><span class="id" title="definition">subfext0</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_opp"><span class="id" title="definition">subfext_opp</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_add"><span class="id" title="definition">subfext_add</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_zmodMixin"><span class="id" title="definition">subfext_zmodMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.ZmodMixin"><span class="id" title="abbreviation">ZmodMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#addfxA"><span class="id" title="lemma">addfxA</span></a> <a class="idref" href="mathcomp.field.fieldext.html#addfxC"><span class="id" title="lemma">addfxC</span></a> <a class="idref" href="mathcomp.field.fieldext.html#add0fx"><span class="id" title="lemma">add0fx</span></a> <a class="idref" href="mathcomp.field.fieldext.html#addfxN"><span class="id" title="lemma">addfxN</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext_zmodType</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.ZmodType"><span class="id" title="abbreviation">ZmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_zmodMixin"><span class="id" title="definition">subfext_zmodMixin</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.poly_rV_modp_K"><span class="id" title="variable">poly_rV_modp_K</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#poly_rV"><span class="id" title="definition">poly_rV</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">_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.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.iotaPz_modp"><span class="id" title="variable">iotaPz_modp</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.fieldext.html#iotaPz"><span class="id" title="abbreviation">iotaPz</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a>) <a class="idref" href="http://coq.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.fieldext.html#iotaPz"><span class="id" title="abbreviation">iotaPz</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfx_mul_rep"><span class="id" title="definition">subfx_mul_rep</span></a> (<span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">_n</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#poly_rV"><span class="id" title="definition">poly_rV</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_mul"><span class="id" title="definition">subfext_mul</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#lift_op2"><span class="id" title="abbreviation">lift_op2</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_mul_rep"><span class="id" title="definition">subfx_mul_rep</span></a>.<br/>
+<span class="id" title="keyword">Fact</span> <a name="pi_subfext_mul"><span class="id" title="lemma">pi_subfext_mul</span></a> :<br/>
+&nbsp;&nbsp;<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.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">pi</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.fieldext.html#subfx_mul_rep"><span class="id" title="definition">subfx_mul_rep</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.fieldext.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">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_mul"><span class="id" title="definition">subfext_mul</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.fieldext.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">Canonical</span> <span class="id" title="var">pi_subfext_mul_morph</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#PiMorph2"><span class="id" title="abbreviation">PiMorph2</span></a> <a class="idref" href="mathcomp.field.fieldext.html#pi_subfext_mul"><span class="id" title="lemma">pi_subfext_mul</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext1"><span class="id" title="definition">subfext1</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#lift_cst"><span class="id" title="abbreviation">lift_cst</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#poly_rV"><span class="id" title="definition">poly_rV</span></a> 1).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext1_morph</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#PiConst"><span class="id" title="abbreviation">PiConst</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext1"><span class="id" title="definition">subfext1</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="mulfxA"><span class="id" title="lemma">mulfxA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#subfext_mul"><span class="id" title="definition">subfext_mul</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="mulfxC"><span class="id" title="lemma">mulfxC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_mul"><span class="id" title="definition">subfext_mul</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="mul1fx"><span class="id" title="lemma">mul1fx</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext1"><span class="id" title="definition">subfext1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_mul"><span class="id" title="definition">subfext_mul</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="mulfx_addl"><span class="id" title="lemma">mulfx_addl</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_distributive"><span class="id" title="definition">left_distributive</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_mul"><span class="id" title="definition">subfext_mul</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_add"><span class="id" title="definition">subfext_add</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="nonzero1fx"><span class="id" title="lemma">nonzero1fx</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#subfext1"><span class="id" title="definition">subfext1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext0"><span class="id" title="definition">subfext0</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_comRingMixin"><span class="id" title="definition">subfext_comRingMixin</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.ComRingMixin"><span class="id" title="abbreviation">ComRingMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#mulfxA"><span class="id" title="lemma">mulfxA</span></a> <a class="idref" href="mathcomp.field.fieldext.html#mulfxC"><span class="id" title="lemma">mulfxC</span></a> <a class="idref" href="mathcomp.field.fieldext.html#mul1fx"><span class="id" title="lemma">mul1fx</span></a> <a class="idref" href="mathcomp.field.fieldext.html#mulfx_addl"><span class="id" title="lemma">mulfx_addl</span></a> <a class="idref" href="mathcomp.field.fieldext.html#nonzero1fx"><span class="id" title="lemma">nonzero1fx</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext_Ring</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.RingType"><span class="id" title="abbreviation">RingType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_comRingMixin"><span class="id" title="definition">subfext_comRingMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext_comRing</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.ComRingType"><span class="id" title="abbreviation">ComRingType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#mulfxC"><span class="id" title="lemma">mulfxC</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfx_poly_inv"><span class="id" title="definition">subfx_poly_inv</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.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.algebra.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.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.fieldext.html#iotaPz"><span class="id" title="abbreviation">iotaPz</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/>
+&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">r</span> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.gdcop"><span class="id" title="definition">gdcop</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a> <span class="id" title="tactic">in</span> <span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <span class="id" title="var">v</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.egcdp"><span class="id" title="definition">egcdp</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.field.fieldext.html#r"><span class="id" title="variable">r</span></a> <span class="id" title="tactic">in</span><br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">(</span></a><span class="id" title="var">u</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.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> <span class="id" title="var">v</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">)^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <span class="id" title="var">u</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.subfx_poly_invE"><span class="id" title="variable">subfx_poly_invE</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.fieldext.html#iotaPz"><span class="id" title="abbreviation">iotaPz</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#subfx_poly_inv"><span class="id" title="definition">subfx_poly_inv</span></a> <a class="idref" href="mathcomp.field.fieldext.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#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.fieldext.html#iotaPz"><span class="id" title="abbreviation">iotaPz</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">)^-1</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfx_inv_rep"><span class="id" title="definition">subfx_inv_rep</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">_n</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#poly_rV"><span class="id" title="definition">poly_rV</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#subfx_poly_inv"><span class="id" title="definition">subfx_poly_inv</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_inv"><span class="id" title="definition">subfext_inv</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#lift_op1"><span class="id" title="abbreviation">lift_op1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inv_rep"><span class="id" title="definition">subfx_inv_rep</span></a>.<br/>
+<span class="id" title="keyword">Fact</span> <a name="pi_subfext_inv"><span class="id" title="lemma">pi_subfext_inv</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#f090f187f28139994197271ddc594c91"><span class="id" title="notation">pi</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inv_rep"><span class="id" title="definition">subfx_inv_rep</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_inv"><span class="id" title="definition">subfext_inv</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">}</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">pi_subfext_inv_morph</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#PiMorph1"><span class="id" title="abbreviation">PiMorph1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#pi_subfext_inv"><span class="id" title="lemma">pi_subfext_inv</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="subfx_fieldAxiom"><span class="id" title="lemma">subfx_fieldAxiom</span></a> :<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.axiom"><span class="id" title="definition">GRing.Field.axiom</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#subfext_inv"><span class="id" title="definition">subfext_inv</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="http://coq.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.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="subfx_inv0"><span class="id" title="lemma">subfx_inv0</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#subfext_inv"><span class="id" title="definition">subfext_inv</span></a> (0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a>) <a class="idref" href="http://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>0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_unitRingMixin"><span class="id" title="definition">subfext_unitRingMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldUnitMixin"><span class="id" title="abbreviation">FieldUnitMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_fieldAxiom"><span class="id" title="lemma">subfx_fieldAxiom</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inv0"><span class="id" title="lemma">subfx_inv0</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext_unitRingType</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Exports.UnitRingType"><span class="id" title="abbreviation">UnitRingType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_unitRingMixin"><span class="id" title="definition">subfext_unitRingMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext_comUnitRing</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_fieldMixin"><span class="id" title="definition">subfext_fieldMixin</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldMixin"><span class="id" title="abbreviation">FieldMixin</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.field.fieldext.html#subfx_fieldAxiom"><span class="id" title="lemma">subfx_fieldAxiom</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inv0"><span class="id" title="lemma">subfx_inv0</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfext_idomainMixin"><span class="id" title="definition">subfext_idomainMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldIdomainMixin"><span class="id" title="abbreviation">FieldIdomainMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_fieldMixin"><span class="id" title="definition">subfext_fieldMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext_idomainType</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.IdomainType"><span class="id" title="abbreviation">IdomainType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_idomainMixin"><span class="id" title="definition">subfext_idomainMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext_fieldType</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldType"><span class="id" title="abbreviation">FieldType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfext_fieldMixin"><span class="id" title="definition">subfext_fieldMixin</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="subfx_inj_is_rmorphism"><span class="id" title="lemma">subfx_inj_is_rmorphism</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.rmorphism"><span class="id" title="abbreviation">rmorphism</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj"><span class="id" title="definition">subfx_inj</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_inj_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj_is_rmorphism"><span class="id" title="lemma">subfx_inj_is_rmorphism</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_inj_rmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.RMorphism"><span class="id" title="abbreviation">RMorphism</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj_is_rmorphism"><span class="id" title="lemma">subfx_inj_is_rmorphism</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfx_eval"><span class="id" title="definition">subfx_eval</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#lift_embed"><span class="id" title="abbreviation">lift_embed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">q</span> ⇒ <a class="idref" href="mathcomp.algebra.mxpoly.html#poly_rV"><span class="id" title="definition">poly_rV</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#538b21ac9fb9938cd88200e5780e8f9d"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p0"><span class="id" title="variable">p0</span></a>)).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_eval_morph</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#PiEmbed"><span class="id" title="abbreviation">PiEmbed</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_eval"><span class="id" title="definition">subfx_eval</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfx_root"><span class="id" title="definition">subfx_root</span></a> := <a class="idref" href="mathcomp.field.fieldext.html#subfx_eval"><span class="id" title="definition">subfx_eval</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>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfx_eval_is_rmorphism"><span class="id" title="lemma">subfx_eval_is_rmorphism</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.rmorphism"><span class="id" title="abbreviation">rmorphism</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_eval"><span class="id" title="definition">subfx_eval</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_eval_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_eval_is_rmorphism"><span class="id" title="lemma">subfx_eval_is_rmorphism</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_eval_rmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.AddRMorphism"><span class="id" title="abbreviation">AddRMorphism</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_eval_is_rmorphism"><span class="id" title="lemma">subfx_eval_is_rmorphism</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="inj_subfx"><span class="id" title="definition">inj_subfx</span></a> := (<a class="idref" href="mathcomp.field.fieldext.html#subfx_eval"><span class="id" title="definition">subfx_eval</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.algebra.poly.html#polyC"><span class="id" title="definition">polyC</span></a>).<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">inj_subfx_addidive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#f4cde972a26515a86aeac58343f1e022"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f4cde972a26515a86aeac58343f1e022"><span class="id" title="notation">additive</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#f4cde972a26515a86aeac58343f1e022"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#inj_subfx"><span class="id" title="definition">inj_subfx</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f4cde972a26515a86aeac58343f1e022"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">inj_subfx_rmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#inj_subfx"><span class="id" title="definition">inj_subfx</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfxE"><span class="id" title="lemma">subfxE</span></a> <span class="id" title="var">x</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">p</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.fieldext.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.field.fieldext.html#subfx_eval"><span class="id" title="definition">subfx_eval</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="subfx_scale"><span class="id" title="definition">subfx_scale</span></a> <span class="id" title="var">a</span> <span class="id" title="var">x</span> := <a class="idref" href="mathcomp.field.fieldext.html#inj_subfx"><span class="id" title="definition">inj_subfx</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a>.<br/>
+<span class="id" title="keyword">Fact</span> <a name="subfx_scalerA"><span class="id" title="lemma">subfx_scalerA</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> <span class="id" title="var">x</span> :<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.field.fieldext.html#subfx_scale"><span class="id" title="definition">subfx_scale</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#subfx_scale"><span class="id" title="definition">subfx_scale</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.field.fieldext.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.field.fieldext.html#subfx_scale"><span class="id" title="definition">subfx_scale</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a>.<br/>
+ <span class="id" title="keyword">Fact</span> <a name="subfx_scaler1r"><span class="id" title="lemma">subfx_scaler1r</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> 1 <a class="idref" href="mathcomp.field.fieldext.html#subfx_scale"><span class="id" title="definition">subfx_scale</span></a>.<br/>
+ <span class="id" title="keyword">Fact</span> <a name="subfx_scalerDr"><span class="id" title="lemma">subfx_scalerDr</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_distributive"><span class="id" title="definition">right_distributive</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_scale"><span class="id" title="definition">subfx_scale</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#327bb2f0da6fd7c01a004dedcfc2dee4"><span class="id" title="notation">+%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#327bb2f0da6fd7c01a004dedcfc2dee4"><span class="id" title="notation">R</span></a>.<br/>
+ <span class="id" title="keyword">Fact</span> <a name="subfx_scalerDl"><span class="id" title="lemma">subfx_scalerDl</span></a> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_scale"><span class="id" title="definition">subfx_scale</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.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">:</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.fieldext.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.fieldext.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.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a>.<br/>
+ <span class="id" title="keyword">Definition</span> <a name="subfx_lmodMixin"><span class="id" title="definition">subfx_lmodMixin</span></a> :=<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.LmodMixin"><span class="id" title="abbreviation">LmodMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_scalerA"><span class="id" title="lemma">subfx_scalerA</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_scaler1r"><span class="id" title="lemma">subfx_scaler1r</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_scalerDr"><span class="id" title="lemma">subfx_scalerDr</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_scalerDl"><span class="id" title="lemma">subfx_scalerDl</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_lmodType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.LmodType"><span class="id" title="abbreviation">LmodType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_lmodMixin"><span class="id" title="definition">subfx_lmodMixin</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="subfx_scaleAl"><span class="id" title="lemma">subfx_scaleAl</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.axiom"><span class="id" title="definition">GRing.Lalgebra.axiom</span></a> ( <a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">*%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a 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="var">_</span>).<br/>
+ <span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_lalgType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Exports.LalgType"><span class="id" title="abbreviation">LalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_scaleAl"><span class="id" title="lemma">subfx_scaleAl</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="subfx_scaleAr"><span class="id" title="lemma">subfx_scaleAr</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.axiom"><span class="id" title="definition">GRing.Algebra.axiom</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_lalgType"><span class="id" title="definition">subfx_lalgType</span></a>.<br/>
+ <span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_algType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.Exports.AlgType"><span class="id" title="abbreviation">AlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_scaleAr"><span class="id" title="lemma">subfx_scaleAr</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfext_unitAlgType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">unitAlgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#bdb1eed686184a9a4099efa772be7bc7"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fact</span> <a name="subfx_evalZ"><span class="id" title="lemma">subfx_evalZ</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.scalable"><span class="id" title="abbreviation">scalable</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_eval"><span class="id" title="definition">subfx_eval</span></a>.<br/>
+ <span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_eval_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.AddLinear"><span class="id" title="abbreviation">AddLinear</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_evalZ"><span class="id" title="lemma">subfx_evalZ</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subfx_eval_lrmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">lrmorphism</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_eval"><span class="id" title="definition">subfx_eval</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8900f6ae77a86586561e15965d5870c7"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Hypothesis</span> (<a name="SubFieldExtension.pz0"><span class="id" title="variable">pz0</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.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">iota</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.z"><span class="id" title="variable">z</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="SubFieldExtension.NonZero"><span class="id" title="section">NonZero</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Hypothesis</span> <a name="SubFieldExtension.NonZero.nz_p"><span class="id" title="variable">nz_p</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfx_inj_eval"><span class="id" title="lemma">subfx_inj_eval</span></a> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj"><span class="id" title="definition">subfx_inj</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#subfx_eval"><span class="id" title="definition">subfx_eval</span></a> <a class="idref" href="mathcomp.field.fieldext.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.field.fieldext.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">iota</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.z"><span class="id" title="variable">z</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfx_inj_root"><span class="id" title="lemma">subfx_inj_root</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj"><span class="id" title="definition">subfx_inj</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_root"><span class="id" title="definition">subfx_root</span></a> <a class="idref" href="http://coq.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.fieldext.html#SubFieldExtension.z"><span class="id" title="variable">z</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfx_injZ"><span class="id" title="lemma">subfx_injZ</span></a> <span class="id" title="var">b</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj"><span class="id" title="definition">subfx_inj</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.fieldext.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.field.fieldext.html#SubFieldExtension.iota"><span class="id" title="variable">iota</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj"><span class="id" title="definition">subfx_inj</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfx_inj_base"><span class="id" title="lemma">subfx_inj_base</span></a> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.field.fieldext.html#subfx_inj"><span class="id" title="definition">subfx_inj</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d54beaee78833d410cb3b1b3603748cc"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d54beaee78833d410cb3b1b3603748cc"><span class="id" title="notation">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.iota"><span class="id" title="variable">iota</span></a> <a class="idref" href="mathcomp.field.fieldext.html#b"><span class="id" title="variable">b</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfxEroot"><span class="id" title="lemma">subfxEroot</span></a> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">q</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.fieldext.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.in_alg"><span class="id" title="abbreviation">in_alg</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.fieldext.html#subfx_root"><span class="id" title="definition">subfx_root</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.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="subfx_irreducibleP"><span class="id" title="lemma">subfx_irreducibleP</span></a> :<br/>
+&nbsp;<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><span class="id" title="keyword">∀</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.field.fieldext.html#32025d8baa64cf6d146609ad9813fb0e"><span class="id" title="notation">iota</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.z"><span class="id" title="variable">z</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.fieldext.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.fieldext.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#df1ced36fc33ce188051218bca314374"><span class="id" title="notation">)</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> <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.NonZero"><span class="id" title="section">NonZero</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="SubFieldExtension.Irreducible"><span class="id" title="section">Irreducible</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Hypothesis</span> <a name="SubFieldExtension.Irreducible.irr_p"><span class="id" title="variable">irr_p</span></a> : <a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a>.<br/>
+<span class="id" title="keyword">Let</span> <a name="SubFieldExtension.Irreducible.nz_p"><span class="id" title="variable">nz_p</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0. <br/>
+
+<br/>
+</div>
+
+<div class="doc">
+ The Vector axiom requires irreducibility.
+</div>
+<div class="code">
+<span class="id" title="keyword">Lemma</span> <a name="min_subfx_vectAxiom"><span class="id" title="lemma">min_subfx_vectAxiom</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.axiom"><span class="id" title="abbreviation">Vector.axiom</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">).-1</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subfx_lmodType"><span class="id" title="definition">subfx_lmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="SubfxVectMixin"><span class="id" title="definition">SubfxVectMixin</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports.VectMixin"><span class="id" title="abbreviation">VectMixin</span></a> <a class="idref" href="mathcomp.field.fieldext.html#min_subfx_vectAxiom"><span class="id" title="lemma">min_subfx_vectAxiom</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="SubfxVectType"><span class="id" title="definition">SubfxVectType</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports.VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#subFExtend"><span class="id" title="definition">subFExtend</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubfxVectMixin"><span class="id" title="definition">SubfxVectMixin</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="SubfxFalgType"><span class="id" title="definition">SubfxFalgType</span></a> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">simpl</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">FalgType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubfxVectType"><span class="id" title="definition">SubfxVectType</span></a><a class="idref" href="mathcomp.field.falgebra.html#3c0387428f19a365dfa0c989db9030d7"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="SubFieldExtType"><span class="id" title="definition">SubFieldExtType</span></a> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">simpl</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.fieldext.html#SubfxFalgType"><span class="id" title="definition">SubfxFalgType</span></a><a class="idref" href="mathcomp.field.fieldext.html#03c33b945f661e93f536291e742438c3"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension.Irreducible"><span class="id" title="section">Irreducible</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.fieldext.html#SubFieldExtension"><span class="id" title="section">SubFieldExtension</span></a>.<br/>
+
+<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="irredp_FAdjoin"><span class="id" title="lemma">irredp_FAdjoin</span></a> (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</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.fieldext.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) :<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Field.irreducible_poly"><span class="id" title="definition">irreducible_poly</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
+&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">{</span></a><span class="id" title="var">L</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.fieldext.html#fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.fieldext.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.fieldext.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><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.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">).-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">&amp;</span></a><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">z</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.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.algebra.ssralg.html#GRing.Theory.in_alg"><span class="id" title="abbreviation">in_alg</span></a> <a class="idref" href="mathcomp.field.fieldext.html#L"><span class="id" title="variable">L</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.field.fieldext.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&lt;&lt;</span></a>1<a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.fieldext.html#z"><span class="id" title="variable">z</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#e4098fb21bb0cc5ef8d3e3bf7391b88b"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+</div>
+
+<div class="doc">
+Coq 8.3 processes this shorter proof correctly, but then crashes on Qed.
+ In Coq 8.4 Qed takes about 18s.
+ In Coq 8.7, everything seems to be all right
+
+<div class="paragraph"> </div>
+
+Lemma Xirredp_FAdjoin' (F : fieldType) (p : {poly F}) :
+ irreducible_poly p -&gt;
+ {L : fieldExtType F &amp; Vector.dim L = (size p).-1 &amp;
+ {z | root (map_poly (in_alg L) p) z &amp; <tt>1; z</tt>%VS = fullv}}.
+Proof.
+case=&gt; p_gt1 irr_p; set n := (size p).-1; pose vL := [vectType F of 'rV_n].
+have Dn: n.+1 = size p := ltn_predK p_gt1.
+have nz_p: p != 0 by rewrite -size_poly_eq0 -Dn.
+pose toL q : vL := poly_rV (q %% p).
+have toL_K q : rVpoly (toL q) = q %% p.
+ by rewrite poly_rV_K // -ltnS Dn ?ltn_modp -?Dn.
+pose mul (x y : vL) : vL := toL (rVpoly x * rVpoly y).
+pose L1 : vL := poly_rV 1.
+have L1K: rVpoly L1 = 1 by rewrite poly_rV_K // size_poly1 -ltnS Dn.
+have mulC: commutative mul by rewrite /mul =&gt; x y; rewrite mulrC.
+have mulA: associative mul.
+ by move=&gt; x y z; rewrite -!(mulC z) /mul !toL_K /toL !modp_mul mulrCA.
+have mul1: left_id L1 mul.
+ move=&gt; x; rewrite /mul L1K mul1r /toL modp_small ?rVpolyK // -Dn ltnS.
+ by rewrite size_poly.
+have mulD: left_distributive mul +%R.
+ move=&gt; x y z; apply: canLR (@rVpolyK _ ) _.
+ by rewrite !raddfD mulrDl /= !toL_K /toL modp_add.
+have nzL1: L1 != 0 by rewrite -(can_eq (@rVpolyK _ )) L1K raddf0 oner_eq0.
+pose mulM := ComRingMixin mulA mulC mul1 mulD nzL1.
+pose rL := ComRingType (RingType vL mulM) mulC.
+have mulZl: GRing.Lalgebra.axiom mul.
+ move=&gt; a x y; apply: canRL (@rVpolyK _ ) _; rewrite !linearZ /= toL_K.
+ by rewrite -scalerAl modp_scalel.
+have mulZr: @GRing.Algebra.axiom _ (LalgType F rL mulZl).
+ by move=&gt; a x y; rewrite !(mulrC x) scalerAl.
+pose aL := AlgType F _ mulZr; pose urL := FalgUnitRingType aL.
+pose uaL := [unitAlgType F of AlgType F urL mulZr].
+pose faL := [FalgType F of uaL].
+have unitE: GRing.Field.mixin_of urL.
+ move=&gt; x nz_x; apply/unitrP; set q := rVpoly x.
+ have nz_q: q != 0 by rewrite -(can_eq (@rVpolyK _ )) raddf0 in nz_x.
+ have /Bezout_eq1_coprimepP[u upq1]: coprimep p q.
+ have /contraR := irr_p _ (dvdp_gcdl p q); apply.
+ have: size (gcdp p q) &lt;= size q by apply: leq_gcdpr.
+ rewrite leqNgt; apply: contra; move/eqp_size -&gt;.
+ by rewrite (polySpred nz_p) ltnS size_poly.
+ suffices: x * toL u.2 = 1 by exists (toL u.2); rewrite mulrC.
+ congr (poly_rV _); rewrite toL_K modp_mul mulrC (canRL (addKr _) upq1).
+ by rewrite -mulNr modp_addl_mul_small ?size_poly1.
+pose ucrL := [comUnitRingType of ComRingType urL mulC].
+pose fL := FieldType (IdomainType ucrL (GRing.Field.IdomainMixin unitE)) unitE.
+exists [fieldExtType F of faL for fL]; first exact: mul1n.
+pose z : vL := toL 'X; set iota := in_alg _.
+have q_z q: rVpoly (map_poly iota q). [z] = q %% p.
+ elim/poly_ind: q =&gt; [|a q IHq].
+ by rewrite map_poly0 horner0 linear0 mod0p.
+ rewrite rmorphD rmorphM /= map_polyX map_polyC hornerMXaddC linearD /=.
+ rewrite linearZ /= L1K alg_polyC modp_add; congr (_ + _); last first.
+ by rewrite modp_small // size_polyC; case: (~~ _) =&gt; //; apply: ltnW.
+ by rewrite !toL_K IHq mulrC modp_mul mulrC modp_mul.
+exists z; first by rewrite /root -(can_eq (@rVpolyK _ )) q_z modpp linear0.
+apply/vspaceP=&gt; x; rewrite memvf; apply/Fadjoin_polyP.
+exists (map_poly iota (rVpoly x)).
+ by apply/polyOverP=&gt; i; rewrite coef_map memvZ ?mem1v.
+apply: (can_inj (@rVpolyK _ )).
+by rewrite q_z modp_small // -Dn ltnS size_poly.
+Qed.
+
+</div>
+<div class="code">
+</div>
+</div>
+
+<div id="footer">
+<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
+</div>
+
+</div>
+
+</body>
+</html> \ No newline at end of file