aboutsummaryrefslogtreecommitdiff
path: root/docs/htmldoc/mathcomp.algebra.mxpoly.html
diff options
context:
space:
mode:
authorCyril Cohen2019-10-16 11:26:43 +0200
committerCyril Cohen2019-10-16 11:26:43 +0200
commit6b59540a2460633df4e3d8347cb4dfe2fb3a3afb (patch)
tree1239c1d5553d51a7d73f2f8b465f6a23178ff8a0 /docs/htmldoc/mathcomp.algebra.mxpoly.html
parentdd82aaeae7e9478efc178ce8430986649555b032 (diff)
removing everything but index which redirects to the new page
Diffstat (limited to 'docs/htmldoc/mathcomp.algebra.mxpoly.html')
-rw-r--r--docs/htmldoc/mathcomp.algebra.mxpoly.html736
1 files changed, 0 insertions, 736 deletions
diff --git a/docs/htmldoc/mathcomp.algebra.mxpoly.html b/docs/htmldoc/mathcomp.algebra.mxpoly.html
deleted file mode 100644
index 81cbeb0..0000000
--- a/docs/htmldoc/mathcomp.algebra.mxpoly.html
+++ /dev/null
@@ -1,736 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<link href="coqdoc.css" rel="stylesheet" type="text/css" />
-<title>mathcomp.algebra.mxpoly</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library mathcomp.algebra.mxpoly</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/>
-
-<br/>
-</div>
-
-<div class="doc">
- This file provides basic support for formal computation with matrices,
- mainly results combining matrices and univariate polynomials, such as the
- Cayley-Hamilton theorem; it also contains an extension of the first order
- representation of algebra introduced in ssralg (GRing.term/formula).
- rVpoly v == the little-endian decoding of the row vector v as a
- polynomial p = \sum_i (v 0 i)%:P * 'X^i.
- poly_rV p == the partial inverse to rVpoly, for polynomials of degree
- less than d to 'rV_d (d is inferred from the context).
- Sylvester_mx p q == the Sylvester matrix of p and q.
- resultant p q == the resultant of p and q, i.e., \det (Sylvester_mx p q).
- horner_mx A == the morphism from {poly R} to 'M_n (n of the form n'.+1)
- mapping a (scalar) polynomial p to the value of its
- scalar matrix interpretation at A (this is an instance of
- the generic horner_morph construct defined in poly).
- powers_mx A d == the d x (n ^ 2) matrix whose rows are the mxvec encodings
- of the first d powers of A (n of the form n'.+1). Thus,
- vec_mx (v *m powers_mx A d) = horner_mx A (rVpoly v).
- char_poly A == the characteristic polynomial of A.
- char_poly_mx A == a matrix whose determinant is char_poly A.
- companionmx p == a matrix whose char_poly is p
- mxminpoly A == the minimal polynomial of A, i.e., the smallest monic
- polynomial that annihilates A (A must be nontrivial).
- degree_mxminpoly A == the (positive) degree of mxminpoly A.
- mx_inv_horner A == the inverse of horner_mx A for polynomials of degree
- smaller than degree_mxminpoly A.
- integralOver RtoK u &lt;-&gt; u is in the integral closure of the image of R
- under RtoK : R -&gt; K, i.e. u is a root of the image of a
- monic polynomial in R.
- algebraicOver FtoE u &lt;-&gt; u : E is algebraic over E; it is a root of the
- image of a nonzero polynomial under FtoE; as F must be a
- fieldType, this is equivalent to integralOver FtoE u.
- integralRange RtoK &lt;-&gt; the integral closure of the image of R contains
- all of K (:= forall u, integralOver RtoK u).
- This toolkit for building formal matrix expressions is packaged in the
- MatrixFormula submodule, and comprises the following:
- eval_mx e == GRing.eval lifted to matrices (:= map_mx (GRing.eval e)).
- mx_term A == GRing.Const lifted to matrices.
- mulmx_term A B == the formal product of two matrices of terms.
- mxrank_form m A == a GRing.formula asserting that the interpretation of
- the term matrix A has rank m.
- submx_form A B == a GRing.formula asserting that the row space of the
- interpretation of the term matrix A is included in the
- row space of the interpretation of B.
- seq_of_rV v == the seq corresponding to a row vector.
- row_env e == the flattening of a tensored environment e : seq 'rV_d.
- row_var F d k == the term vector of width d such that for e : seq 'rV[F]_d
- we have eval e 'X_k = eval_mx (row_env e) (row_var d k).
-</div>
-<div class="code">
-
-<br/>
-<span class="id" title="keyword">Set Implicit Arguments</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/>
-<span class="id" title="keyword">Import</span> <span class="id" title="var">Monoid.Theory</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/>
-
-<br/>
-<span class="id" title="keyword">Import</span> <span class="id" title="var">Pdiv.Idomain</span>.<br/>
-</div>
-
-<div class="doc">
- Row vector &lt;-&gt; bounded degree polynomial bijection
-</div>
-<div class="code">
-<span class="id" title="keyword">Section</span> <a name="RowPoly"><span class="id" title="section">RowPoly</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="RowPoly.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>) (<a name="RowPoly.d"><span class="id" title="variable">d</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>).<br/>
-<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> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#RowPoly.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_d</span></a>.<br/>
-<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#RowPoly.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="rVpoly"><span class="id" title="definition">rVpoly</span></a> <span class="id" title="var">v</span> := <a class="idref" href="mathcomp.algebra.poly.html#e7c928d7996da3748fbd8a7e6d560557"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.poly.html#e7c928d7996da3748fbd8a7e6d560557"><span class="id" title="notation">poly_</span></a><a class="idref" href="mathcomp.algebra.poly.html#e7c928d7996da3748fbd8a7e6d560557"><span class="id" title="notation">(</span></a><span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.poly.html#e7c928d7996da3748fbd8a7e6d560557"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#RowPoly.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.poly.html#e7c928d7996da3748fbd8a7e6d560557"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.poly.html#e7c928d7996da3748fbd8a7e6d560557"><span class="id" title="notation">(</span></a><span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#insub"><span class="id" title="definition">insub</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a> <span class="id" title="keyword">is</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#Some"><span class="id" title="constructor">Some</span></a> <span class="id" title="var">i</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a> 0 <span class="id" title="var">i</span> <span class="id" title="keyword">else</span> 0<a class="idref" href="mathcomp.algebra.poly.html#e7c928d7996da3748fbd8a7e6d560557"><span class="id" title="notation">)</span></a>.<br/>
-<span class="id" title="keyword">Definition</span> <a name="poly_rV"><span class="id" title="definition">poly_rV</span></a> <span class="id" title="var">p</span> := <a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">row_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#RowPoly.d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_i</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="coef_rVpoly"><span class="id" title="lemma">coef_rVpoly</span></a> <span class="id" title="var">v</span> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><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.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#insub"><span class="id" title="definition">insub</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a> <span class="id" title="keyword">is</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#Some"><span class="id" title="constructor">Some</span></a> <span class="id" title="var">i</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a> 0 <span class="id" title="var">i</span> <span class="id" title="keyword">else</span> 0.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="coef_rVpoly_ord"><span class="id" title="lemma">coef_rVpoly_ord</span></a> <span class="id" title="var">v</span> (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_d</span></a>) : <a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><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.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a> 0 <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="rVpoly_delta"><span class="id" title="lemma">rVpoly_delta</span></a> <span class="id" title="var">i</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">X</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="rVpolyK"><span class="id" title="lemma">rVpolyK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <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>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="poly_rV_K"><span class="id" title="lemma">poly_rV_K</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#RowPoly.d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.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.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="poly_rV_is_linear"><span class="id" title="lemma">poly_rV_is_linear</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear"><span class="id" title="abbreviation">linear</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#poly_rV"><span class="id" title="definition">poly_rV</span></a>.<br/>
- <span class="id" title="keyword">Canonical</span> <span class="id" title="var">poly_rV_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.algebra.mxpoly.html#poly_rV_is_linear"><span class="id" title="lemma">poly_rV_is_linear</span></a>.<br/>
-<span class="id" title="keyword">Canonical</span> <span class="id" title="var">poly_rV_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#poly_rV_is_linear"><span class="id" title="lemma">poly_rV_is_linear</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="rVpoly_is_linear"><span class="id" title="lemma">rVpoly_is_linear</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear"><span class="id" title="abbreviation">linear</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a>.<br/>
-<span class="id" title="keyword">Canonical</span> <span class="id" title="var">rVpoly_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.algebra.mxpoly.html#rVpoly_is_linear"><span class="id" title="lemma">rVpoly_is_linear</span></a>.<br/>
-<span class="id" title="keyword">Canonical</span> <span class="id" title="var">rVpoly_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly_is_linear"><span class="id" title="lemma">rVpoly_is_linear</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#RowPoly"><span class="id" title="section">RowPoly</span></a>.<br/>
-
-<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="Resultant"><span class="id" title="section">Resultant</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="Resultant.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>) (<a name="Resultant.p"><span class="id" title="variable">p</span></a> <a name="Resultant.q"><span class="id" title="variable">q</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Let</span> <a name="Resultant.dS"><span class="id" title="variable">dS</span></a> := (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Resultant.q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">).-1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Resultant.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">).-1</span></a>)%<span class="id" title="var">N</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="Sylvester_mx"><span class="id" title="definition">Sylvester_mx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#Resultant.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_dS</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#band"><span class="id" title="abbreviation">band</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Resultant.p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.algebra.mxpoly.html#band"><span class="id" title="abbreviation">band</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Resultant.q"><span class="id" title="variable">q</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="Sylvester_mxE"><span class="id" title="lemma">Sylvester_mxE</span></a> (<span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_dS</span></a>) :<br/>
-&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">S_</span> <span class="id" title="var">r</span> <span class="id" title="var">k</span> := <a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7825ccc99f23b0d30c9d40c317ba7af0"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#Sylvester_mx"><span class="id" title="definition">Sylvester_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#split"><span class="id" title="definition">split</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="keyword">with</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#inl"><span class="id" title="constructor">inl</span></a> <span class="id" title="var">k</span> ⇒ <a class="idref" href="mathcomp.algebra.mxpoly.html#S_"><span class="id" title="variable">S_</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Resultant.p"><span class="id" title="variable">p</span></a> <span class="id" title="var">k</span> | <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#inr"><span class="id" title="constructor">inr</span></a> <span class="id" title="var">k</span> ⇒ <a class="idref" href="mathcomp.algebra.mxpoly.html#S_"><span class="id" title="variable">S_</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Resultant.q"><span class="id" title="variable">q</span></a> <span class="id" title="var">k</span> <span class="id" title="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="resultant"><span class="id" title="definition">resultant</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Sylvester_mx"><span class="id" title="definition">Sylvester_mx</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#Resultant"><span class="id" title="section">Resultant</span></a>.<br/>
-
-<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="resultant_in_ideal"><span class="id" title="lemma">resultant_in_ideal</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.comRingType"><span class="id" title="abbreviation">comRingType</span></a>) (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7f2a7ef2c63af7359b22787a9daf336e"><span class="id" title="notation">&gt;</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7f2a7ef2c63af7359b22787a9daf336e"><span class="id" title="notation">&gt;</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">{</span></a><span class="id" title="var">uv</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#uv"><span class="id" title="variable">uv</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#00fe0eaf5e6949f0a31725357afa4bba"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#uv"><span class="id" title="variable">uv</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#00fe0eaf5e6949f0a31725357afa4bba"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#resultant"><span class="id" title="definition">resultant</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#uv"><span class="id" title="variable">uv</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#uv"><span class="id" title="variable">uv</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Specif.html#f92718946b2f68c8f7100be4d6b45f82"><span class="id" title="notation">}</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="resultant_eq0"><span class="id" title="lemma">resultant_eq0</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>) (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#resultant"><span class="id" title="definition">resultant</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.polydiv.html#Pdiv.Idomain.gcdp"><span class="id" title="definition">gcdp</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7f2a7ef2c63af7359b22787a9daf336e"><span class="id" title="notation">&gt;</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="HornerMx"><span class="id" title="section">HornerMx</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="HornerMx.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.comRingType"><span class="id" title="abbreviation">comRingType</span></a>) (<a name="HornerMx.n'"><span class="id" title="variable">n'</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>).<br/>
-<span class="id" title="keyword">Variable</span> <a name="HornerMx.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#HornerMx.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>.<br/>
-<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#HornerMx.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="horner_mx"><span class="id" title="definition">horner_mx</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">a</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx_comm"><span class="id" title="lemma">scalar_mx_comm</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#HornerMx.A"><span class="id" title="variable">A</span></a>).<br/>
-<span class="id" title="keyword">Canonical</span> <span class="id" title="var">horner_mx_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#1f39c3338430de1e4f0dd19d42cfade9"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#1f39c3338430de1e4f0dd19d42cfade9"><span class="id" title="notation">additive</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#1f39c3338430de1e4f0dd19d42cfade9"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#1f39c3338430de1e4f0dd19d42cfade9"><span class="id" title="notation">]</span></a>.<br/>
-<span class="id" title="keyword">Canonical</span> <span class="id" title="var">horner_mx_rmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#f59994a9f1c6ff43f3de0a3cea89bb6b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f59994a9f1c6ff43f3de0a3cea89bb6b"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#f59994a9f1c6ff43f3de0a3cea89bb6b"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f59994a9f1c6ff43f3de0a3cea89bb6b"><span class="id" title="notation">]</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="horner_mx_C"><span class="id" title="lemma">horner_mx_C</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="horner_mx_X"><span class="id" title="lemma">horner_mx_X</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#HornerMx.A"><span class="id" title="variable">A</span></a>. <br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="horner_mxZ"><span class="id" title="lemma">horner_mxZ</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.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Canonical</span> <span class="id" title="var">horner_mx_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.algebra.mxpoly.html#horner_mxZ"><span class="id" title="lemma">horner_mxZ</span></a>.<br/>
-<span class="id" title="keyword">Canonical</span> <span class="id" title="var">horner_mx_lrmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#d17433407f88fd9a1e0740e2eddd6566"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d17433407f88fd9a1e0740e2eddd6566"><span class="id" title="notation">lrmorphism</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d17433407f88fd9a1e0740e2eddd6566"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d17433407f88fd9a1e0740e2eddd6566"><span class="id" title="notation">]</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="powers_mx"><span class="id" title="definition">powers_mx</span></a> <span class="id" title="var">d</span> := <a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#HornerMx.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="horner_rVpoly"><span class="id" title="lemma">horner_rVpoly</span></a> <span class="id" title="var">m</span> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_m</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> (<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#u"><span class="id" title="variable">u</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#powers_mx"><span class="id" title="definition">powers_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#HornerMx"><span class="id" title="section">HornerMx</span></a>.<br/>
-
-<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="CharPoly"><span class="id" title="section">CharPoly</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="CharPoly.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>) (<a name="CharPoly.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="CharPoly.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>).<br/>
-<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="char_poly_mx"><span class="id" title="definition">char_poly_mx</span></a> := <a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">X</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#map_mx"><span class="id" title="definition">map_mx</span></a> (@<a class="idref" href="mathcomp.algebra.poly.html#polyC"><span class="id" title="definition">polyC</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.R"><span class="id" title="variable">R</span></a>) <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.A"><span class="id" title="variable">A</span></a>.<br/>
-<span class="id" title="keyword">Definition</span> <a name="char_poly"><span class="id" title="definition">char_poly</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly_mx"><span class="id" title="definition">char_poly_mx</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Let</span> <a name="CharPoly.diagA"><span class="id" title="variable">diagA</span></a> := <a class="idref" href="mathcomp.ssreflect.fintype.html#2ea807d068496425ebd93f2c454c8460"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#2ea807d068496425ebd93f2c454c8460"><span class="id" title="notation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#2ea807d068496425ebd93f2c454c8460"><span class="id" title="notation">|</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#2ea807d068496425ebd93f2c454c8460"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#2ea807d068496425ebd93f2c454c8460"><span class="id" title="notation">]</span></a>.<br/>
-<span class="id" title="keyword">Let</span> <a name="CharPoly.size_diagA"><span class="id" title="variable">size_diagA</span></a> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.diagA"><span class="id" title="variable">diagA</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.n"><span class="id" title="variable">n</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Let</span> <a name="CharPoly.split_diagA"><span class="id" title="variable">split_diagA</span></a> :<br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">q</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#20f16c1d55d1e4ca9bb0e0513dd4b06a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#20f16c1d55d1e4ca9bb0e0513dd4b06a"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#20f16c1d55d1e4ca9bb0e0513dd4b06a"><span class="id" title="notation">(</span></a><span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#20f16c1d55d1e4ca9bb0e0513dd4b06a"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.diagA"><span class="id" title="variable">diagA</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#20f16c1d55d1e4ca9bb0e0513dd4b06a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#20f16c1d55d1e4ca9bb0e0513dd4b06a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#20f16c1d55d1e4ca9bb0e0513dd4b06a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="size_char_poly"><span class="id" title="lemma">size_char_poly</span></a> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="char_poly_monic"><span class="id" title="lemma">char_poly_monic</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="char_poly_trace"><span class="id" title="lemma">char_poly_trace</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7f2a7ef2c63af7359b22787a9daf336e"><span class="id" title="notation">&gt;</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.A"><span class="id" title="variable">A</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="char_poly_det"><span class="id" title="lemma">char_poly_det</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_0</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">(</span></a>- 1<a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly.A"><span class="id" title="variable">A</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#CharPoly"><span class="id" title="section">CharPoly</span></a>.<br/>
-
-<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mx_poly_ring_isom"><span class="id" title="lemma">mx_poly_ring_isom</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>) <span class="id" title="var">n'</span> (<span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.mxpoly.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">∃</span></a> <span class="id" title="var">phi</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">,</span></a><br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">[/\</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#bijective"><span class="id" title="inductive">bijective</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#phi"><span class="id" title="variable">phi</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">,</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">∀</span> <span class="id" title="var">p</span>, <a class="idref" href="mathcomp.algebra.mxpoly.html#phi"><span class="id" title="variable">phi</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx"><span class="id" title="definition">scalar_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">,</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">∀</span> <span class="id" title="var">A</span>, <a class="idref" href="mathcomp.algebra.mxpoly.html#phi"><span class="id" title="variable">phi</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#map_mx"><span class="id" title="definition">map_mx</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyC"><span class="id" title="definition">polyC</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">&amp;</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">A</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> <span class="id" title="var">k</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#phi"><span class="id" title="variable">phi</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_k</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">]</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Theorem</span> <a name="Cayley_Hamilton"><span class="id" title="lemma">Cayley_Hamilton</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.comRingType"><span class="id" title="abbreviation">comRingType</span></a>) <span class="id" title="var">n'</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="eigenvalue_root_char"><span class="id" title="lemma">eigenvalue_root_char</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">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) <span class="id" title="var">a</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxalgebra.html#eigenvalue"><span class="id" title="definition">eigenvalue</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><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.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="companionmx"><span class="id" title="definition">companionmx</span></a> {<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>} (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a>) (<span class="id" title="var">d</span> := <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">).-1</span></a>) :=<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">)</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#28a3089bb29d95d7bdc98c2c73b31552"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#28a3089bb29d95d7bdc98c2c73b31552"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#28a3089bb29d95d7bdc98c2c73b31552"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#28a3089bb29d95d7bdc98c2c73b31552"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">R</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="companionmxK"><span class="id" title="lemma">companionmxK</span></a> {<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.comRingType"><span class="id" title="abbreviation">comRingType</span></a>} (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) :<br/>
-&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#companionmx"><span class="id" title="definition">companionmx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mulmx_delta_companion"><span class="id" title="lemma">mulmx_delta_companion</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a>)<br/>
-&nbsp;&nbsp;(<span class="id" title="var">i</span>: <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">).-1</span></a>) (<span class="id" title="var">i_small</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#00fe0eaf5e6949f0a31725357afa4bba"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">).-1</span></a>):<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#companionmx"><span class="id" title="definition">companionmx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 (<a class="idref" href="mathcomp.ssreflect.fintype.html#Ordinal"><span class="id" title="constructor">Ordinal</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i_small"><span class="id" title="variable">i_small</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV__</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="MinPoly"><span class="id" title="section">MinPoly</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="MinPoly.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="MinPoly.n'"><span class="id" title="variable">n'</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>).<br/>
-<span class="id" title="keyword">Variable</span> <a name="MinPoly.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>.<br/>
-<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Fact</span> <a name="degree_mxminpoly_proof"><span class="id" title="lemma">degree_mxminpoly_proof</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">∃</span></a> <span class="id" title="var">d</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b8af73c258a533909a2acba13114d67c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b8af73c258a533909a2acba13114d67c"><span class="id" title="notation">rank</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b8af73c258a533909a2acba13114d67c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#powers_mx"><span class="id" title="definition">powers_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b8af73c258a533909a2acba13114d67c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="variable">d</span></a>.<br/>
- <span class="id" title="keyword">Definition</span> <a name="degree_mxminpoly"><span class="id" title="definition">degree_mxminpoly</span></a> := <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ex_minn"><span class="id" title="definition">ex_minn</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#degree_mxminpoly_proof"><span class="id" title="lemma">degree_mxminpoly_proof</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mxminpoly_nonconstant"><span class="id" title="lemma">mxminpoly_nonconstant</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="abbreviation">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7f2a7ef2c63af7359b22787a9daf336e"><span class="id" title="notation">&gt;</span></a> 0.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="minpoly_mx1"><span class="id" title="lemma">minpoly_mx1</span></a> : (1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a>)%<span class="id" title="var">MS</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="minpoly_mx_free"><span class="id" title="lemma">minpoly_mx_free</span></a> : <a class="idref" href="mathcomp.algebra.mxalgebra.html#row_free"><span class="id" title="definition">row_free</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="horner_mx_mem"><span class="id" title="lemma">horner_mx_mem</span></a> <span class="id" title="var">p</span> : (<a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a>)%<span class="id" title="var">MS</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="mx_inv_horner"><span class="id" title="definition">mx_inv_horner</span></a> <span class="id" title="var">B</span> := <a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#pinvmx"><span class="id" title="definition">pinvmx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mx_inv_horner0"><span class="id" title="lemma">mx_inv_horner0</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#mx_inv_horner"><span class="id" title="definition">mx_inv_horner</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mx_inv_hornerK"><span class="id" title="lemma">mx_inv_hornerK</span></a> <span class="id" title="var">B</span> : (<a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a>)%<span class="id" title="var">MS</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#mx_inv_horner"><span class="id" title="definition">mx_inv_horner</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="minpoly_mxM"><span class="id" title="lemma">minpoly_mxM</span></a> <span class="id" title="var">B</span> <span class="id" title="var">C</span> : (<a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#C"><span class="id" title="variable">C</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#C"><span class="id" title="variable">C</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b07e6617bc8db0b83b350e09f8851b51"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a>)%<span class="id" title="var">MS</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="minpoly_mx_ring"><span class="id" title="lemma">minpoly_mx_ring</span></a> : <a class="idref" href="mathcomp.algebra.mxalgebra.html#mxring"><span class="id" title="definition">mxring</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#Ad"><span class="id" title="abbreviation">Ad</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="mxminpoly"><span class="id" title="definition">mxminpoly</span></a> := <a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">X</span></a><a class="idref" href="mathcomp.algebra.poly.html#e809881bcf0cc80f806c17b9ef433187"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="abbreviation">d</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#mx_inv_horner"><span class="id" title="definition">mx_inv_horner</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="abbreviation">d</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="size_mxminpoly"><span class="id" title="lemma">size_mxminpoly</span></a> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p_A"><span class="id" title="abbreviation">p_A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="abbreviation">d</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mxminpoly_monic"><span class="id" title="lemma">mxminpoly_monic</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#p_A"><span class="id" title="abbreviation">p_A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="size_mod_mxminpoly"><span class="id" title="lemma">size_mod_mxminpoly</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d8832071e7663562cc14f17c6edf99dc"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p_A"><span class="id" title="abbreviation">p_A</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="abbreviation">d</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mx_root_minpoly"><span class="id" title="lemma">mx_root_minpoly</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p_A"><span class="id" title="abbreviation">p_A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="horner_rVpolyK"><span class="id" title="lemma">horner_rVpolyK</span></a> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_d</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#mx_inv_horner"><span class="id" title="definition">mx_inv_horner</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> (<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#u"><span class="id" title="variable">u</span></a>)) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="horner_mxK"><span class="id" title="lemma">horner_mxK</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#mx_inv_horner"><span class="id" title="definition">mx_inv_horner</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#d8832071e7663562cc14f17c6edf99dc"><span class="id" title="notation">%%</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p_A"><span class="id" title="abbreviation">p_A</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mxminpoly_min"><span class="id" title="lemma">mxminpoly_min</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p_A"><span class="id" title="abbreviation">p_A</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#64fc6df2b95b79b2107dd5d7f2014b97"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="horner_rVpoly_inj"><span class="id" title="lemma">horner_rVpoly_inj</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mxminpoly_linear_is_scalar"><span class="id" title="lemma">mxminpoly_linear_is_scalar</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#d"><span class="id" title="abbreviation">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#is_scalar_mx"><span class="id" title="definition">is_scalar_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mxminpoly_dvd_char"><span class="id" title="lemma">mxminpoly_dvd_char</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#p_A"><span class="id" title="abbreviation">p_A</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#64fc6df2b95b79b2107dd5d7f2014b97"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="eigenvalue_root_min"><span class="id" title="lemma">eigenvalue_root_min</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.mxalgebra.html#eigenvalue"><span class="id" title="definition">eigenvalue</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><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.mxpoly.html#p_A"><span class="id" title="abbreviation">p_A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MinPoly"><span class="id" title="section">MinPoly</span></a>.<br/>
-
-<br/>
-
-<br/>
-
-<br/>
-</div>
-
-<div class="doc">
- Parametricity.
-</div>
-<div class="code">
-<span class="id" title="keyword">Section</span> <a name="MapRingMatrix"><span class="id" title="section">MapRingMatrix</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="MapRingMatrix.aR"><span class="id" title="variable">aR</span></a> <a name="MapRingMatrix.rR"><span class="id" title="variable">rR</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>) (<a name="MapRingMatrix.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#aR"><span class="id" title="variable">aR</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rR"><span class="id" title="variable">rR</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>).<br/>
-<span class="id" title="keyword">Variables</span> (<a name="MapRingMatrix.d"><span class="id" title="variable">d</span></a> <a name="MapRingMatrix.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="MapRingMatrix.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MapRingMatrix.aR"><span class="id" title="variable">aR</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_rVpoly"><span class="id" title="lemma">map_rVpoly</span></a> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_d</span></a>) : <a class="idref" href="mathcomp.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> (<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#u"><span class="id" title="variable">u</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rVpoly"><span class="id" title="definition">rVpoly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_poly_rV"><span class="id" title="lemma">map_poly_rV</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</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.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</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.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_d</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_char_poly_mx"><span class="id" title="lemma">map_char_poly_mx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#map_mx"><span class="id" title="definition">map_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly_mx"><span class="id" title="definition">char_poly_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapRingMatrix.A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly_mx"><span class="id" title="definition">char_poly_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapRingMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_char_poly"><span class="id" title="lemma">map_char_poly</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapRingMatrix.A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#char_poly"><span class="id" title="definition">char_poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapRingMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapRingMatrix"><span class="id" title="section">MapRingMatrix</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="MapResultant"><span class="id" title="section">MapResultant</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_resultant"><span class="id" title="lemma">map_resultant</span></a> (<span class="id" title="var">aR</span> <span class="id" title="var">rR</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>) (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#aR"><span class="id" title="variable">aR</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rR"><span class="id" title="variable">rR</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>) <span class="id" title="var">p</span> <span class="id" title="var">q</span> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#lead_coef"><span class="id" title="definition">lead_coef</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#resultant"><span class="id" title="definition">resultant</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#resultant"><span class="id" title="definition">resultant</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.mxpoly.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapResultant"><span class="id" title="section">MapResultant</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="MapComRing"><span class="id" title="section">MapComRing</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="MapComRing.aR"><span class="id" title="variable">aR</span></a> <a name="MapComRing.rR"><span class="id" title="variable">rR</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.comRingType"><span class="id" title="abbreviation">comRingType</span></a>) (<a name="MapComRing.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#aR"><span class="id" title="variable">aR</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rR"><span class="id" title="variable">rR</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>).<br/>
-<span class="id" title="keyword">Variables</span> (<a name="MapComRing.n'"><span class="id" title="variable">n'</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="MapComRing.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MapComRing.aR"><span class="id" title="variable">aR</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_powers_mx"><span class="id" title="lemma">map_powers_mx</span></a> <span class="id" title="var">e</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#powers_mx"><span class="id" title="definition">powers_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapComRing.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#powers_mx"><span class="id" title="definition">powers_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapComRing.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_horner_mx"><span class="id" title="lemma">map_horner_mx</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapComRing.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#horner_mx"><span class="id" title="definition">horner_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapComRing.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e4e440bd0e6055cffe6740e4a836968e"><span class="id" title="notation">f</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapComRing"><span class="id" title="section">MapComRing</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="MapField"><span class="id" title="section">MapField</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="MapField.aF"><span class="id" title="variable">aF</span></a> <a name="MapField.rF"><span class="id" title="variable">rF</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="MapField.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#aF"><span class="id" title="variable">aF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#rF"><span class="id" title="variable">rF</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>).<br/>
-<span class="id" title="keyword">Variables</span> (<a name="MapField.n'"><span class="id" title="variable">n'</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="MapField.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.aF"><span class="id" title="variable">aF</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) (<a name="MapField.p"><span class="id" title="variable">p</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.aF"><span class="id" title="variable">aF</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_mx_companion"><span class="id" title="lemma">map_mx_companion</span></a> (<span class="id" title="var">e</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#congr1"><span class="id" title="definition">congr1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#predn"><span class="id" title="abbreviation">predn</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#size_map_poly"><span class="id" title="lemma">size_map_poly</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span>)) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#companionmx"><span class="id" title="definition">companionmx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#companionmx"><span class="id" title="definition">companionmx</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.p"><span class="id" title="variable">p</span></a>)).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="companion_map_poly"><span class="id" title="lemma">companion_map_poly</span></a> (<span class="id" title="var">e</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#congr1"><span class="id" title="definition">congr1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#predn"><span class="id" title="abbreviation">predn</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#size_map_poly"><span class="id" title="lemma">size_map_poly</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span>))) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#companionmx"><span class="id" title="definition">companionmx</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.p"><span class="id" title="variable">p</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#companionmx"><span class="id" title="definition">companionmx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">f</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="degree_mxminpoly_map"><span class="id" title="lemma">degree_mxminpoly_map</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#degree_mxminpoly"><span class="id" title="definition">degree_mxminpoly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#degree_mxminpoly"><span class="id" title="definition">degree_mxminpoly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.A"><span class="id" title="variable">A</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="mxminpoly_map"><span class="id" title="lemma">mxminpoly_map</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#mxminpoly"><span class="id" title="definition">mxminpoly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#mxminpoly"><span class="id" title="definition">mxminpoly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.A"><span class="id" title="variable">A</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="map_mx_inv_horner"><span class="id" title="lemma">map_mx_inv_horner</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#fp"><span class="id" title="abbreviation">fp</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#mx_inv_horner"><span class="id" title="definition">mx_inv_horner</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#mx_inv_horner"><span class="id" title="definition">mx_inv_horner</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#5f1925a9c24ff4e03a5528db5ad9eddc"><span class="id" title="notation">f</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MapField"><span class="id" title="section">MapField</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="IntegralOverRing"><span class="id" title="section">IntegralOverRing</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="integralOver"><span class="id" title="definition">integralOver</span></a> (<span class="id" title="var">R</span> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>) (<span class="id" title="var">RtoK</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#K"><span class="id" title="variable">K</span></a>) (<span class="id" title="var">z</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#K"><span class="id" title="variable">K</span></a>) :=<br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">p</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.mxpoly.html#z"><span class="id" title="variable">z</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="integralRange"><span class="id" title="definition">integralRange</span></a> <span class="id" title="var">R</span> <span class="id" title="var">K</span> <span class="id" title="var">RtoK</span> := <span class="id" title="keyword">∀</span> <span class="id" title="var">z</span>, @<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#z"><span class="id" title="variable">z</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="IntegralOverRing.B"><span class="id" title="variable">B</span></a> <a name="IntegralOverRing.R"><span class="id" title="variable">R</span></a> <a name="IntegralOverRing.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>) (<a name="IntegralOverRing.BtoR"><span class="id" title="variable">BtoR</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a>) (<a name="IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_rmorph"><span class="id" title="lemma">integral_rmorph</span></a> <span class="id" title="var">x</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.BtoR"><span class="id" title="variable">BtoR</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.BtoR"><span class="id" title="variable">BtoR</span></a>) (<a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_id"><span class="id" title="lemma">integral_id</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_nat"><span class="id" title="lemma">integral_nat</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">R</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral0"><span class="id" title="lemma">integral0</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> 0. <br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral1"><span class="id" title="lemma">integral1</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> 1. <br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_poly"><span class="id" title="lemma">integral_poly</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">i</span>, <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_i</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing.RtoK"><span class="id" title="variable">RtoK</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverRing"><span class="id" title="section">IntegralOverRing</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="IntegralOverComRing"><span class="id" title="section">IntegralOverComRing</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="IntegralOverComRing.R"><span class="id" title="variable">R</span></a> <a name="IntegralOverComRing.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.comRingType"><span class="id" title="abbreviation">comRingType</span></a>) (<a name="IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_horner_root"><span class="id" title="lemma">integral_horner_root</span></a> <span class="id" title="var">w</span> (<span class="id" title="var">p</span> <span class="id" title="var">q</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><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.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#w"><span class="id" title="variable">w</span></a><a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">]</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_root_monic"><span class="id" title="lemma">integral_root_monic</span></a> <span class="id" title="var">u</span> <span class="id" title="var">p</span> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#c94c2df86ca03f22f8f8b739cd7e1e88"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><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.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Hint Resolve</span> (<a class="idref" href="mathcomp.algebra.mxpoly.html#integral0"><span class="id" title="lemma">integral0</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a>) (<a class="idref" href="mathcomp.algebra.mxpoly.html#integral1"><span class="id" title="lemma">integral1</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a>) (@<a class="idref" href="mathcomp.algebra.poly.html#monicXsubC"><span class="id" title="lemma">monicXsubC</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</span></a>) : <span class="id" title="var">core</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Let</span> <a name="IntegralOverComRing.XsubC0"><span class="id" title="variable">XsubC0</span></a> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</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#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a>) <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>. <br/>
-<span class="id" title="keyword">Let</span> <a name="IntegralOverComRing.intR_XsubC"><span class="id" title="variable">intR_XsubC</span></a> <span class="id" title="var">u</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#dc2ed3a32abac1baa27cfc93ddc4e844"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#8b14e41ab5fcce2460b8672da1456d67"><span class="id" title="notation">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_opp"><span class="id" title="lemma">integral_opp</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_horner"><span class="id" title="lemma">integral_horner</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.poly.html#c2ef4fdf7ae62c36654f85f0d2a6c874"><span class="id" title="notation">}</span></a>) <span class="id" title="var">u</span> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.poly.html#e4361ce58e4de0a4b9786d0011b61316"><span class="id" title="notation">]</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_sub"><span class="id" title="lemma">integral_sub</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_add"><span class="id" title="lemma">integral_add</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_mul"><span class="id" title="lemma">integral_mul</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing.RtoK"><span class="id" title="variable">RtoK</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverComRing"><span class="id" title="section">IntegralOverComRing</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="IntegralOverField"><span class="id" title="section">IntegralOverField</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="IntegralOverField.F"><span class="id" title="variable">F</span></a> <a name="IntegralOverField.E"><span class="id" title="variable">E</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="algebraicOver"><span class="id" title="definition">algebraicOver</span></a> (<span class="id" title="var">fFtoE</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.E"><span class="id" title="variable">E</span></a>) <span class="id" title="var">u</span> :=<br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">p</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#3df228c109f14f0423b4fccc967ee1ac"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#fFtoE"><span class="id" title="variable">fFtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a>) <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Notation</span> <a name="mk_mon"><span class="id" title="abbreviation">mk_mon</span></a> <span class="id" title="var">p</span> := (<a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><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> <span class="id" title="var">p</span><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <span class="id" title="var">p</span>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_algebraic"><span class="id" title="lemma">integral_algebraic</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic_id"><span class="id" title="lemma">algebraic_id</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic0"><span class="id" title="lemma">algebraic0</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> 0.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic1"><span class="id" title="lemma">algebraic1</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> 1.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic_opp"><span class="id" title="lemma">algebraic_opp</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic_add"><span class="id" title="lemma">algebraic_add</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic_sub"><span class="id" title="lemma">algebraic_sub</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic_mul"><span class="id" title="lemma">algebraic_mul</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic_inv"><span class="id" title="lemma">algebraic_inv</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="algebraic_div"><span class="id" title="lemma">algebraic_div</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#algebraicOver"><span class="id" title="definition">algebraicOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#69c431a9c94f6f30a655bd7ddb59037b"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_inv"><span class="id" title="lemma">integral_inv</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_div"><span class="id" title="lemma">integral_div</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#69c431a9c94f6f30a655bd7ddb59037b"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#y"><span class="id" title="variable">y</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="integral_root"><span class="id" title="lemma">integral_root</span></a> <span class="id" title="var">p</span> <span class="id" title="var">u</span> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField.FtoE"><span class="id" title="variable">FtoE</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#IntegralOverField"><span class="id" title="section">IntegralOverField</span></a>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
- Lifting term, formula, envs and eval to matrices. Wlog, and for the sake
- of simplicity, we only lift (tensor) envs to row vectors; we can always
- use mxvec/vec_mx to store and retrieve matrices.
- We don't provide definitions for addition, subtraction, scaling, etc,
- because they have simple matrix expressions.
-</div>
-<div class="code">
-<span class="id" title="keyword">Module</span> <a name="MatrixFormula"><span class="id" title="module">MatrixFormula</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="MatrixFormula.MatrixFormula"><span class="id" title="section">MatrixFormula</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variable</span> <a name="MatrixFormula.MatrixFormula.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>.<br/>
-
-<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.F"><span class="id" title="variable">F</span></a>) := @<a class="idref" href="mathcomp.algebra.matrix.html#map_mx"><span class="id" title="definition">map_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.term"><span class="id" title="abbreviation">term</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.F"><span class="id" title="variable">F</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval"><span class="id" title="abbreviation">eval</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="MatrixFormula.mx_term"><span class="id" title="definition">mx_term</span></a> := @<a class="idref" href="mathcomp.algebra.matrix.html#map_mx"><span class="id" title="definition">map_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.term"><span class="id" title="abbreviation">term</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Const"><span class="id" title="constructor">GRing.Const</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.eval_mx_term"><span class="id" title="lemma">eval_mx_term</span></a> <span class="id" title="var">e</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.mx_term"><span class="id" title="definition">mx_term</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="MatrixFormula.mulmx_term"><span class="id" title="definition">mulmx_term</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.term"><span class="id" title="abbreviation">term</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :=<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">,</span></a> <span class="id" title="var">k</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#379a79a86133b2d1cd9cb43efa183ecb"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#379a79a86133b2d1cd9cb43efa183ecb"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#379a79a86133b2d1cd9cb43efa183ecb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.Add"><span class="id" title="abbreviation">Add</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#379a79a86133b2d1cd9cb43efa183ecb"><span class="id" title="notation">/</span></a>0<a class="idref" href="mathcomp.ssreflect.bigop.html#379a79a86133b2d1cd9cb43efa183ecb"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#379a79a86133b2d1cd9cb43efa183ecb"><span class="id" title="notation">_j</span></a> <a class="idref" href="mathcomp.ssreflect.bigop.html#379a79a86133b2d1cd9cb43efa183ecb"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0f66e0377386facac088dbe9d64fe464"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#379a79a86133b2d1cd9cb43efa183ecb"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">T</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.eval_mulmx"><span class="id" title="lemma">eval_mulmx</span></a> <span class="id" title="var">e</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.term"><span class="id" title="abbreviation">term</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.mulmx_term"><span class="id" title="definition">mulmx_term</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#B"><span class="id" title="variable">B</span></a>.<br/>
-
-<br/>
-
-<br/>
-<span class="id" title="keyword">Let</span> <a name="MatrixFormula.MatrixFormula.Schur"><span class="id" title="variable">Schur</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.term"><span class="id" title="abbreviation">term</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a>1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> 1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">a</span> := <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> 0 0) :=<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#drsubmx"><span class="id" title="definition">drsubmx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#5cb99c63f36860400b899961ab21258a"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#43ec4b364d04e6bb82d286dda6431508"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0f66e0377386facac088dbe9d64fe464"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> 0%<span class="id" title="var">R</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0f66e0377386facac088dbe9d64fe464"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> 0%<span class="id" title="var">R</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#j"><span class="id" title="variable">j</span></a>)%<span class="id" title="var">T</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Fixpoint</span> <a name="MatrixFormula.mxrank_form"><span class="id" title="definition">mxrank_form</span></a> (<span class="id" title="var">r</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.form"><span class="id" title="abbreviation">form</span></a> :=<br/>
-&nbsp;&nbsp;<span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a>, <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.form"><span class="id" title="abbreviation">form</span></a> <span class="id" title="keyword">with</span><br/>
-&nbsp;&nbsp;| <span class="id" title="var">m'</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>, <span class="id" title="var">n'</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> ⇒ <span class="id" title="keyword">fun</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a>1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <span class="id" title="var">m'</span><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> 1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <span class="id" title="var">n'</span><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> ⇒<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">nzA</span> <span class="id" title="var">k</span> := <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ce954c803c52ae7afaee301d1d68e733"><span class="id" title="notation">!=</span></a> 0 <span class="id" title="tactic">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">xSchur</span> <span class="id" title="var">k</span> := <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Schur"><span class="id" title="variable">Schur</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a> 0%<span class="id" title="var">R</span> (<a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> 0%<span class="id" title="var">R</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>)) <span class="id" title="tactic">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">recf</span> <span class="id" title="var">k</span> := <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.Bool"><span class="id" title="abbreviation">Bool</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7f2a7ef2c63af7359b22787a9daf336e"><span class="id" title="notation">&gt;</span></a> 0) <a class="idref" href="mathcomp.algebra.ssralg.html#5a500d4ce4c6eea4df7cd2e3cacc0360"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#mxrank_form"><span class="id" title="definition">mxrank_form</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#xSchur"><span class="id" title="variable">xSchur</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a>) <span class="id" title="tactic">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pick"><span class="id" title="definition">GRing.Pick</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#nzA"><span class="id" title="variable">nzA</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#recf"><span class="id" title="variable">recf</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.Bool"><span class="id" title="abbreviation">Bool</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">N</span>))<br/>
-&nbsp;&nbsp;| <span class="id" title="var">_</span>, <span class="id" title="var">_</span> ⇒ <span class="id" title="keyword">fun</span> <span class="id" title="var">_</span> ⇒ <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.Bool"><span class="id" title="abbreviation">Bool</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">N</span>)<br/>
-&nbsp;&nbsp;<span class="id" title="keyword">end</span>%<span class="id" title="var">T</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.mxrank_form_qf"><span class="id" title="lemma">mxrank_form_qf</span></a> <span class="id" title="var">r</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.qf_form"><span class="id" title="abbreviation">qf_form</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.mxrank_form"><span class="id" title="definition">mxrank_form</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.eval_mxrank"><span class="id" title="lemma">eval_mxrank</span></a> <span class="id" title="var">e</span> <span class="id" title="var">r</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.mxrank_form"><span class="id" title="definition">mxrank_form</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b8af73c258a533909a2acba13114d67c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b8af73c258a533909a2acba13114d67c"><span class="id" title="notation">rank</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#b8af73c258a533909a2acba13114d67c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#b8af73c258a533909a2acba13114d67c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.eval_vec_mx"><span class="id" title="lemma">eval_vec_mx</span></a> <span class="id" title="var">e</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">)</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#u"><span class="id" title="variable">u</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.eval_mxvec"><span class="id" title="lemma">eval_mxvec</span></a> <span class="id" title="var">e</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#A"><span class="id" title="variable">A</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="MatrixFormula.MatrixFormula.Subsetmx"><span class="id" title="section">Subsetmx</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variables</span> (<a name="MatrixFormula.MatrixFormula.Subsetmx.m1"><span class="id" title="variable">m1</span></a> <a name="MatrixFormula.MatrixFormula.Subsetmx.m2"><span class="id" title="variable">m2</span></a> <a name="MatrixFormula.MatrixFormula.Subsetmx.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="MatrixFormula.MatrixFormula.Subsetmx.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.term"><span class="id" title="abbreviation">term</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<a name="MatrixFormula.MatrixFormula.Subsetmx.B"><span class="id" title="variable">B</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.term"><span class="id" title="abbreviation">term</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="MatrixFormula.submx_form"><span class="id" title="definition">submx_form</span></a> :=<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.And"><span class="id" title="abbreviation">And</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.True"><span class="id" title="abbreviation">True</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">(</span></a><span class="id" title="var">r</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#afef6bddeda988bbc365e556241d5732"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.mxrank_form"><span class="id" title="definition">mxrank_form</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.B"><span class="id" title="variable">B</span></a>) <a class="idref" href="mathcomp.algebra.ssralg.html#b7075a427ea950c442d03d47d831421c"><span class="id" title="notation">==&gt;</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.mxrank_form"><span class="id" title="definition">mxrank_form</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.B"><span class="id" title="variable">B</span></a>)%<span class="id" title="var">T</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.eval_col_mx"><span class="id" title="lemma">eval_col_mx</span></a> <span class="id" title="var">e</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.B"><span class="id" title="variable">B</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.A"><span class="id" title="variable">A</span></a>) (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.B"><span class="id" title="variable">B</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.submx_form_qf"><span class="id" title="lemma">submx_form_qf</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.qf_form"><span class="id" title="abbreviation">qf_form</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.submx_form"><span class="id" title="definition">submx_form</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.eval_submx"><span class="id" title="lemma">eval_submx</span></a> <span class="id" title="var">e</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.qf_eval"><span class="id" title="abbreviation">qf_eval</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.submx_form"><span class="id" title="definition">submx_form</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#09a21fbfc35503eeecaca8720742f7ab"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx.B"><span class="id" title="variable">B</span></a>)%<span class="id" title="var">MS</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Subsetmx"><span class="id" title="section">Subsetmx</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Section</span> <a name="MatrixFormula.MatrixFormula.Env"><span class="id" title="section">Env</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Variable</span> <a name="MatrixFormula.MatrixFormula.Env.d"><span class="id" title="variable">d</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="MatrixFormula.seq_of_rV"><span class="id" title="definition">seq_of_rV</span></a> (<span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_d</span></a>) : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.F"><span class="id" title="variable">F</span></a> := <a class="idref" href="mathcomp.ssreflect.finfun.html#fgraph"><span class="id" title="definition">fgraph</span></a> <a class="idref" href="mathcomp.ssreflect.finfun.html#486743bb05c6aa8b9d64fd3cec29ee79"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#486743bb05c6aa8b9d64fd3cec29ee79"><span class="id" title="notation">ffun</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.finfun.html#486743bb05c6aa8b9d64fd3cec29ee79"><span class="id" title="notation">⇒</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a> 0 <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#486743bb05c6aa8b9d64fd3cec29ee79"><span class="id" title="notation">]</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.size_seq_of_rV"><span class="id" title="lemma">size_seq_of_rV</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.algebra.mxpoly.html#MatrixFormula.seq_of_rV"><span class="id" title="definition">seq_of_rV</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Env.d"><span class="id" title="variable">d</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.nth_seq_of_rV"><span class="id" title="lemma">nth_seq_of_rV</span></a> <span class="id" title="var">x0</span> <span class="id" title="var">v</span> (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_d</span></a>) : <a class="idref" href="mathcomp.ssreflect.seq.html#nth"><span class="id" title="definition">nth</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#x0"><span class="id" title="variable">x0</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.seq_of_rV"><span class="id" title="definition">seq_of_rV</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a>) <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a> 0 <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="MatrixFormula.row_var"><span class="id" title="definition">row_var</span></a> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.term"><span class="id" title="abbreviation">term</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_d</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">row_i</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#4469cceefa45bf6eb9c3a2c83154c5db"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4469cceefa45bf6eb9c3a2c83154c5db"><span class="id" title="notation">X_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4469cceefa45bf6eb9c3a2c83154c5db"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Env.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4469cceefa45bf6eb9c3a2c83154c5db"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">T</span>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="MatrixFormula.row_env"><span class="id" title="definition">row_env</span></a> (<span class="id" title="var">e</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_d</span></a>) := <a class="idref" href="mathcomp.ssreflect.seq.html#flatten"><span class="id" title="definition">flatten</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.seq_of_rV"><span class="id" title="definition">seq_of_rV</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.nth_row_env"><span class="id" title="lemma">nth_row_env</span></a> <span class="id" title="var">e</span> <span class="id" title="var">k</span> (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_d</span></a>) : <a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.row_env"><span class="id" title="definition">row_env</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Env.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_k</span></a> 0 <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.eval_row_var"><span class="id" title="lemma">eval_row_var</span></a> <span class="id" title="var">e</span> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.eval_mx"><span class="id" title="definition">eval_mx</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.row_env"><span class="id" title="definition">row_env</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a>) (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.row_var"><span class="id" title="definition">row_var</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#82d810f9f90b79e8fe98d90a63070c32"><span class="id" title="notation">_k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_d</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">Definition</span> <a name="MatrixFormula.Exists_row_form"><span class="id" title="definition">Exists_row_form</span></a> <span class="id" title="var">k</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.form"><span class="id" title="abbreviation">form</span></a>) :=<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#foldr"><span class="id" title="definition">foldr</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Exists"><span class="id" title="constructor">GRing.Exists</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#codom"><span class="id" title="definition">codom</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_d</span></a> ⇒ <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Env.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">N</span>).<br/>
-
-<br/>
-<span class="id" title="keyword">Lemma</span> <a name="MatrixFormula.Exists_rowP"><span class="id" title="lemma">Exists_rowP</span></a> <span class="id" title="var">e</span> <span class="id" title="var">k</span> <span class="id" title="var">f</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Env.d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#7f2a7ef2c63af7359b22787a9daf336e"><span class="id" title="notation">&gt;</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/>
-&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">∃</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_d</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.holds"><span class="id" title="abbreviation">holds</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.row_env"><span class="id" title="definition">row_env</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0 <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#v"><span class="id" title="variable">v</span></a>)) <a class="idref" href="mathcomp.algebra.mxpoly.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">)</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.holds"><span class="id" title="abbreviation">holds</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.row_env"><span class="id" title="definition">row_env</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#e"><span class="id" title="variable">e</span></a>) (<a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.Exists_row_form"><span class="id" title="definition">Exists_row_form</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.mxpoly.html#f"><span class="id" title="variable">f</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula.Env"><span class="id" title="section">Env</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula.MatrixFormula"><span class="id" title="section">MatrixFormula</span></a>.<br/>
-
-<br/>
-<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.mxpoly.html#MatrixFormula"><span class="id" title="module">MatrixFormula</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html> \ No newline at end of file